Verification and Formal Methods
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Formal Methods
SE 5302: Formal Methods Course Instructor: Parasara Sridhar Duggirala, Ph.D. Catalog Description. 3 credits. This course is designed to provide students with an introduction to formal methods as a framework for the specification, design, and verification of software-intensive embedded systems. Topics include automata theory, model checking, theorem proving, and system specification. Examples are driven by cyber-physical systems. The course is addressed to students in engineering who have had at least a year of software or embedded systems design experience. Pre- Requisites: SE 5100 or SE 5101 or SE 5102 and at least one year of software or embedded systems design experience. Course Delivery Method. The course will be offered online, asynchronously, in small recorded modules according to the course schedule and syllabus. Direct and live communication with the instructor will be available each week, according to the class schedule, for discussion, questions, examples, and quizzes. Attendance at live sessions is required, and you must notify the instructor in advance if you cannot attend. A social networking tool called Slack will be used to communicate with students and the instructor between live sessions. Course Objective. This course is designed to provide students with an introduction to formal methods as a framework for the specification, design, and verification of software- intensive embedded systems. Topics include automata theory, model checking, theorem proving, and system specification. Examples are driven by control systems and software systems. Anticipated Student Outcomes. By the end of the course, a student will be able to (1) Gain familiarity with current system design flows in industry used for embedded system design, implementation and verification. -
August 2018 FACS a C T S
Issue 2018-1 August 2018 FACS A C T S The Newsletter of the Formal Aspects of Computing Science (FACS) Specialist Group ISSN 0950-1231 FACS FACTS Issue 2018-1 August 2018 About FACS FACTS FACS FACTS (ISSN: 0950-1231) is the newsletter of the BCS Specialist Group on Formal Aspects of Computing Science (FACS). FACS FACTS is distributed in electronic form to all FACS members. Submissions to FACS FACTS are always welcome. Please visit the newsletter area of the BCS FACS website for further details at: http://www.bcs.org/category/12461 Back issues of FACS FACTS are available for download from: http://www.bcs.org/content/conWebDoc/33135 The FACS FACTS Team Newsletter Editors Tim Denvir [email protected] Brian Monahan [email protected] Editorial Team Jonathan Bowen, John Cooke, Tim Denvir, Brian Monahan, Margaret West. Contributors to this issue Jonathan Bowen, John Cooke, Tim Denvir, Sofia Meacham. Brian Monahan, Bill Stoddart, Botond Virginas, Margaret West BCS-FACS websites BCS: http://www.bcs-facs.org LinkedIn: http://www.linkedin.com/groups?gid=2427579 Facebook: http://www.facebook.com/pages/BCS-FACS/120243984688255 Wikipedia: http://en.wikipedia.org/wiki/BCS-FACS If you have any questions about BCS-FACS, please send these to Paul Boca [email protected] 2 FACS FACTS Issue 2018-1 August 2018 Editorial Dear readers, welcome to our first issue of FACS FACTS for 2018. This year, 2018, marks the 40th anniversary of FACS. At least one editor recalls an article by Dan Simpson, member of the editorial team at the time, FACS at 10 in 1988. -
4Th International Symposium on Unifying Theories of Programming
Website Call for Papers http://utp12.lri.fr/ Interest in the fundamental problem of the combination of formal notations and theories of programming has grown consistently in recent Chairs years. The theories define, in various different ways, many common Marie-Claude Gaudel ([email protected]) notions, such as abstraction, refinement, choice, termination, feasibility, Burkhart Wolff ([email protected]) concurrency and communication. Despite these differences, such theories may be unified in a way which greatly facilitates their study and Organisation Chair comparison. Moreover, such a unification offers a means of combining different languages describing various facets and artifacts of software Abderrahmane Feliachi ([email protected]) development in a seamless, logically consistent way. Hoare and He's Unifying Theories of Programming (UTP) is widely acknowledged one Invited Speakers of the most significant such unification approaches to have emerged in the last 15 years. Jim Woodcock, University of York, UK. Based on their pioneering work, the aims of the UTP Symposium Jeremy Gibbons, series are to continue reaffirming the significance of the ongoing UTP University of Oxford, UK. project and to stimulate efforts to advance it by providing a focus for the sharing of results by those already actively contributing, and to raise Important Dates awareness of the benefits of such unifying theoretical frameworks among the wider computer science and software engineering Paper submission: March 31, 2012 communities. Notification: May 14, 2012 Camera-ready: June 4, 2012 To this end the Symposium welcomes contributions on all the themes Symposium: August 27-28, 2012 that can be related to the Unifying Theories of Programming. -
Formal Methods for Biological Systems: Languages, Algorithms, and Applications Qinsi Wang CMU-CS-16-129 September 2016
Formal Methods for Biological Systems: Languages, Algorithms, and Applications Qinsi Wang CMU-CS-16-129 September 2016 School of Computer Science Computer Science Department Carnegie Mellon University Pittsburgh, PA Thesis Committee Edmund M. Clarke, Chair Stephen Brookes Marta Zofia Kwiatkowska, University of Oxford Frank Pfenning Natasa Miskov-Zivanov, University of Pittsburgh Submitted in partial fulfillment of the requirements for the Degree of Doctor of Philosophy Copyright c 2016 Qinsi Wang This research was sponsored by the National Science Foundation under grant numbers CNS-0926181 and CNS- 1035813, the Army Research Laboratory under grant numbers FA95501210146 and FA955015C0030, the Defense Advanced Research Projects Agency under grant number FA875012C0204, the Office of Naval Research under grant number N000141310090, the Semiconductor Research Corporation under grant number 2008-TJ-1860, and the Mi- croelectronics Advanced Research Corporation (DARPA) under grant number 2009-DT-2049. The views and conclusions contained in this document are those of the author and should not be interpreted as rep- resenting the official policies, either expressed or implied, of any sponsoring institution, the U.S. government or any other entity. Keywords: Model checking, Formal specification, Formal Analysis, Boolean networks, Qual- itative networks, Rule-based modeling, Multiscale hybrid rule-based modeling, Hybrid systems, Stochastic hybrid systems, Symbolic model checking, Bounded model checking, Statistical model checking, Bounded reachability, Probabilistic bounded reachability, Parameter estimation, Sensi- tivity analysis, Statistical tests, Pancreatic cancer, Phage-based bacteria killing, Prostate cancer treatment, C. elegans For My Beloved Mom & Dad iv Abstract As biomedical research advances into more complicated systems, there is an in- creasing need to model and analyze these systems to better understand them. -
On a New Notion of Partial Refinement
On a New Notion of Partial Refinement Emil Sekerinski Tian Zhang McMaster University McMaster University Hamilton, Canada Hamilton, Canada [email protected] [email protected] Formal specification techniques allow expressing idealized specifications, which abstract from re- strictions that may arise in implementations. However, partial implementations are universal in soft- ware development due to practical limitations. Our goal is to contribute to a method of program refinement that allows for partial implementations. For programs with a normal and an exceptional exit, we propose a new notion of partial refinement which allows an implementation to terminate ex- ceptionally if the desired results cannot be achieved, provided the initial state is maintained. Partial refinement leads to a systematic method of developing programs with exception handling. 1 Introduction In software development, specifications are meant to be concise by stating abstractly only the intention of a program rather than elaborating on a possible implementation. However, practical restrictions can prevent idealized specifications from being fully implemented. In general, there are three sources of partiality in implementations: there may be inherent limitations of the implementation, some features may intentionally not (yet) be implemented, or there may be a genuine fault. As an example of inherent limitations of an implementation, consider a class for the analysis of a collection of integers. The operations are initialization, inserting an integer, and summing all its elements. Assume that int is a type for machine-representable integers, bounded by MIN and MAX, and machine arithmetic is bounded, i.e. an overflow caused by arithmetic operations on int is detected and raises an exception, as available in x86 assembly language [11] and .NET [20]. -
\Chapter{Phoenix Foundation}
Making Smartcards Secure Susan Stepney Logica UK Ltd. ([email protected]) In the early 1990s, platform seven (at that time part of the National Westminster Bank) started developing an innovative Smartcard-based electronic cash system, Mondex. A Smartcard is a credit-card-sized plastic card with a computer chip, which allows it to be programmed for various applications. Mondex is an application designed to work like electronic cash, which, unlike say an electronic cheque, has no third party authentication or authorisation involved in a transaction. The cost of third party clearing of an electronic transaction cannot be brought much below tens of pence, which makes it infeasible for low value cash-like transactions, such as buying a pint of milk or a newspaper, or use in vending machines, or in public telephone boxes. Mondex was designed to solve this problem, by having no third party involvement, and no per-transaction cost. Once the issuing bank has loaded electronic cash into the system, it has very little further control over it -- just like real cash. Because of this lack of third party control, it is vitally important that the security of the card can not be broken, otherwise computer-literate criminals could “electronically print” money with ease. So platform seven decided to develop the full Mondex product to the very highest standards. There are many standards and guidelines for developing software and systems to high levels of assurance. In the past, these have been mainly the domain of the military and security services, with their interest in safety critical and security critical systems. -
A Systematic Literature Review of the Use of Formal Methods in Medical Software Systems∗
JOURNAL OF SOFTWARE: EVOLUTION AND PROCESS J. Softw. Evol. and Proc. 2017; 00:1–23 Published online in Wiley InterScience (www.interscience.wiley.com). DOI: 10.1002/smr A Systematic Literature Review of the use of Formal Methods in Medical Software Systems∗ Silvia Bonfanti∗, Angelo Gargantini1, Atif Mashkoor2 ∗University of Bergamo, [email protected] 1University of Bergamo, [email protected] 2Software Competence Center Hagenberg GmbH, [email protected] SUMMARY The use of formal methods is often recommended to guarantee the provision of necessary services and to assess the correctness of critical properties, such as functional safety, cybersecurity and reliability, in medical and health-care devices. In the past, several formal and rigorous methods have been proposed and consequently applied for trustworthy development of medical software and systems. In this paper, we perform a systematic literature review on the available state of the art in this domain. We collect the relevant literature on the use of formal methods for modeling, design, development, verification and validation of software-intensive medical systems. We apply standard systematic literature review techniques and run several queries in well-known repositories in order to obtain information that can be useful for people who are either already working in this field or planning to start. Our study covers both quantitative and qualitative aspects of the subject. Copyright c 2017 John Wiley & Sons, Ltd. Received . KEY WORDS: Formal Methods, Systematic Literature Review, Medical Device Software 1. INTRODUCTION In modern medical devices, human safety depends upon the correct operation of software controlling the device: software malfunctioning can cause injuries to, or even the death of, patients. -
FORMAL METHODS: BENEFITS, CHALLENGES and FUTURE DIRECTION Mona Batra1, Amit Malik2, Dr
Volume 4, No. 5, May 2013 Journal of Global Research in Computer Science REVIEW ARTICLE Available Online at www.jgrcs.info FORMAL METHODS: BENEFITS, CHALLENGES AND FUTURE DIRECTION Mona Batra1, Amit Malik2, Dr. Meenu Dave3 1 M. Tech. Scholar Department of Computer Science, Jagan Nath University, Jaipur, India [email protected] 2Sr. Analyst, HCL Technologies Ltd. , Noida-201304, India [email protected] 3Assistant Professor Department of Computer Science, Jagan Nath University, Jaipur, India [email protected] Abstract: There is an increasing demand of current information systems to incorporate the use of a higher degree of formalism in the development process. Formal Methods consist of a set of tools and techniques based on mathematical model and formal logic that are used to specify and verify requirements and designs for hardware and software systems. This paper presents a detailed analysis of formal methods along with their goals and benefits followed by limitations. This research work is aimed to help the software engineers to identify the use of formal methods at different stages of software development, with special reference to the requirements phase. Keywords- Formal Methods, Requirements Engineering, Formal Specification, Feasibility Analysis etc. of mathematics in design and construction to ensure product INTRODUCTION quality is common practice in established engineering disciplines, such as bridge or aircraft building, and even In today’s commercial environment, the primary measure of computer (hardware) construction, where one applies success of software projects is the extent to which a mathematically expressed physical and other natural laws to software system fulfills the purpose, which it is intended for. -
Do Formal Methods Improve Code Quality?
Do Formal Methods Improve Code Quality? Shari Lawrence Pfleeger Les Hatton Centre for Software Reliability Programming Research Ltd. Northampton Square Glenbrook House, 1/11 Molesey Road London EC1V 0HB Hersham, Surrey KT12 4RH England England phone: +44 171 477-8426 +44 932 888080 fax: +44 171 477-8585 +44 932 888081 email: [email protected] [email protected] Abstract Formal methods are advocated on many projects, in the hope that their use will improve the quality of the resulting software. However, to date there has been little quantitative evidence of their effectiveness, especially for safety-critical applications. We examined the code and development records for a large air traffic control support system to see if the use of formal methods made a measurable difference. In this paper, we show that formal specification, in concert with thorough unit testing and careful reviews, can lead to high-quality code. But we also show that improved measurement and record-keeping could have made analysis easier and the results more clear-cut. As practitioners and researchers, we continue to look for methods and tools that help us to improve our software development processes and products. Articles in IEEE Software and elsewhere focus on candidate technologies that promise increased productivity, better quality, lower cost or enhanced customer satisfaction. But we are reminded that these methods and tools should be tested empirically and rigorously to determine if they make a quantifiable difference to software we produce.1,2 Often, such evaluation is not considered until after the technology has been used, making careful, quantitative analysis difficult if not impossible. -
A Debate on Teaching Computing Science
Teaching Computing Science t the ACM Computer Science Conference last Strategic Defense Initiative. William Scherlis is February, Edsger Dijkstra gave an invited talk known for his articulate advocacy of formal methods called “On the Cruelty of Really Teaching in computer science. M. H. van Emden is known for Computing Science.” He challenged some of his contributions in programming languages and the basic assumptions on which our curricula philosophical insights into science. Jacques Cohen Aare based and provoked a lot of discussion. The edi- is known for his work with programming languages tors of Comwunications received several recommenda- and logic programming and is a member of the Edi- tions to publish his talk in these pages. His comments torial Panel of this magazine. Richard Hamming brought into the foreground some of the background received the Turing Award in 1968 and is well known of controversy that surrounds the issue of what be- for his work in communications and coding theory. longs in the core of a computer science curriculum. Richard M. Karp received the Turing Award in 1985 To give full airing to the controversy, we invited and is known for his contributions in the design of Dijkstra to engage in a debate with selected col- algorithms. Terry Winograd is well known for his leagues, each of whom would contribute a short early work in artificial intelligence and recent work critique of his position, with Dijkstra himself making in the principles of design. a closing statement. He graciously accepted this offer. I am grateful to these people for participating in We invited people from a variety of specialties, this debate and to Professor Dijkstra for creating the backgrounds, and interpretations to provide their opening. -
Transformation Rules for Z
Transformation Rules for Z Mark Utting∗ Petra Maliky Ian Toyn January 7, 2010 Abstract Z is a formal specification language combining typed set theory, predicate calculus, and a schema calculus. This paper describes an extension of Z that allows transformation and reasoning rules to be written in a Z-like notation. This gives a high-level, declarative, way of specifying transformations of Z terms, which makes it easier to build new Z manipulation tools. We describe the syntax and semantics of these rules, plus some example reasoning engines that use sets of rules to manipulate Z terms. The utility of these rules is demonstrated by discussing two sets of rules. One set defines expansion of Z schema expressions. The other set is used by the ZLive animator to preprocess Z expressions into a form more suitable for animation. 1 Introduction The Z notation [23, 30, 15] is a formal specification language that combines typed set theory, predicate calculus, and a schema calculus. It has been widely used for the design and specification of computing systems [12, 5, 24, 7]. For illustration purposes, consider the Z specification of a birthday book derived from [23]|we go through this example in some detail to introduce Z, to point out a few ways in which ISO Standard Z differs from the earlier Z notation, and to illustrate some of the Z transformations that our rules support. section birthdaybook parents standard toolkit This defines a new Z section called birthdaybook. By declaring standard toolkit as a parent, defini- tions for symbols like 7! (partial function) are included for later use. -
Top Ten Ways to Make Formal Methods for HPC Practical
Top Ten Ways to Make Formal Methods for HPC Practical Ganesh Gopalakrishnan and Robert M. Kirby School of Computing, University of Utah, Salt Lake City, UT 84112 http://www.cs.utah.edu/fv { fganesh,[email protected] ABSTRACT such as deadlocks and resource leaks. Barring a few ex- Almost all fundamental advances in science and engineer- ceptions [2], debugging challenges associated with MPI pro- ing crucially depend on the availability of extremely capable gramming have not been very much discussed in the formal high performance computing (HPC) systems. Future HPC verification literature. The primary debugging approach for systems will increasingly be based on heterogeneous multi- MPI is still one of running an MPI application on a specific core CPUs, and their programming will involve multiple con- platform, feeding it a collection of test inputs, and seeing currency models. These developments can make concurrent if anything goes wrong. This approach may seem to work programming and optimization of HPC platforms and ap- | largely due to the uniformity of the platform hardware, plications very error-prone. Therefore, significant advances libraries, and programming styles employed in this area. By must occur in verification methods for HPC. We present ten avoiding aggressive styles of MPI programming and staying important formal methods research thrusts that can accel- within safe practices, today's HPC application developers erate these advances. can often compensate for the lack of rigorous testing and reasoning approaches. At present, HPC application developers and the Com- 1. FORMAL METHODS AND HPC puter Science research community are relatively unaware of High performance computing (HPC) is one of the pillars what is going on each others' research areas.