Geri, Joseph Y. · CSUN ScholarWorks (California State University, Northridge) · 2014
A software product that does not perform as intended can cause serious damages.One of the methods to assure that it does indeed work as desired is by applying formal verification techniques to the software development process.Software verification is examined in terms of its progress to date, its potential for further progress, and in light of closely related issues.future implementations are explored.'" v Directions for OBJECTIVESThis thesis is a computer science research project that analyzes the field of software verification.The main objective is to explore the field's advancements, problems, and needs, and to establish the best approach to be undertaken in the upcoming developments in the field of software verification.I hope that through these explorations, my thesis will help direct the resources invested in the verification field to the most succes.sfulroad, where efforts will be most fruitful.
Cited by 0Open access
Martin H. Weik · 2000
Cited by 1
Grégoire Sutre · 2008
Cited by 0
Christakis, Maria, Polikarpova, Nadia, Duggirala, Parasara Sridhar et al. · Lecture notes in computer science · 2020
Cited by 4
Daniel Kroening · Frontiers in artificial intelligence and applications · 2009
This chapter covers an application of propositional satisfiability to program analysis. We focus on the discovery of programming flaws in low-level programs, such as embedded software. The loops in the program are unwound together with a property to form a formula, which is then converted into CNF. The method supports low-level programming constructs such as bit-wise operators or pointer arithmetic.
Cited by 1
H. Kopetz · 1979
Cited by 2
Wolfgang Goerigk · Electronic Notes in Theoretical Computer Science · 2001
We present lessons learned from using mechanical theorem proving for proof support in software verification, with trusted execution of programs in mind. We will use two realistic running examples, compiler verification, which is central if we want to prove that we can trust a piece of executable software, and an industrial project in which we proved the correctness of a safety critical expert system using (verified) runtime result verification. We will emphasize the role of partial program correctness and its preservation. And we will comment on high level control aspects, in particular on what we can and what we will not be able to prove for a concrete piece of executable software.
Cited by 0Open access
SANCHEZ-CABALLERO Samuel, SELLÉS Miguel Angel, PEYDRO Miguel Angel et al. · SHILAP Revista de lepidopterología · 2013
Cited by 0Open access
Zamani, Majid, Zufferey, Damien · MPG.PuRe (Max Planck Society) · 2019
Cited by 0
2008
Using the Process Algebra µCRL Recent work has looked at how Erlang programs could be modelchecked via translation into the process algebra µCRL. Rules for translating Erlang programs and OTP components into µCRL have been defined and investigated. However, in the existing work, no rule is defined for the translation of timeout events into µCRL. This could degrade the usability of the existing work as in some real applications, timeout events play a significant role in the system development. In this paper, by extending the existing work, we investigate the verification of timed Erlang/OTP components in µCRL. By using an explicit tick action in the µCRL specification, a discrete-time timing model is defined to support the translation of timed Erlang functions into µCRL. Two small examples are presented, which demonstrates the applications of the proposed approach.
Cited by 0
Rupak Majumdar, Michael Emmi · 2010
Software model checking is one approach to ensuring computer system reliability, though its practical applications have been limited to either small toy systems or shallow correctness criteria (e.g., null-pointer dereference freedom). To cope with real systems with an unbounded amount of objects (e.g., processes, memory locations), and complex temporal specifications (e.g., trace serializability), analyses incorporating a thus far un-obtained balance of precision and scalability must be sought; indeed the usual abstractions used in existing tools (e.g., SLAM, BLAST) do not suffice. Here we seek to achieve the balance by using software abstractions that precisely model implementation details for a small number of representative software objects. We perform precise propositional reasoning between few representative objects involved in each system interaction to discharge quantified first-order candidate invariants in the deductive verification framework. These abstractions enable the first ever automatic proofs of program properties such as reference counting memory safety for virtual memory and file systems, and strict serializability for transactional memory managers, for an arbitrary number of processes and memory locations.
Cited by 0
NSV 2019 New York, NY, Majid Zamani, Damien Zufferey · Lecture notes in computer science · 2019
Cited by 2
Stomp, Frank · The Mathematics Enthusiast · 2009
In this talk I will give a brief overview of the area of Formal Software Verification. Basically, in this area one mathematically verifies that a program satisfies its specification (requirements). Thus, formal verification ensures that code is correct. Since verification is carried out on a model of the original code, this may reduce errors in an actual software product. Except for verification, I will also mention structuring principles, and some of my current research projects.
Cited by 0
Haltermann, Jan Frederik · Carl von Ossiezky University of Oldenburg · 2025
Software plays an important role in our daily lives. To ensure that a program fulfills specific requirements, software verification is used. Cooperative software verification aims to combine the strengths of existing components on a conceptual level so that they work together in a loosely coupled manner to solve a task. This thesis presents a systematic analysis of the effects of using cooperative software verification. We develop and evaluate three concepts for cooperative software verification: The sequential concept, CoVEGI, allows components to cooperate on invariant generation, a core task in software verification. The cyclic concept is based on a decomposition of the widely used CEGAR scheme. In the decomposed version, C-CEGAR, three stateless components cooperate via existing verification artifacts. Finally, we propose the concept of ranged program analysis, which enables the parallel composition of arbitrary verifiers. We experimentally demonstrate the advantages of cooperative verification for each of the three approaches.
Cited by 0
Ofer Strichman · 2013
Abstract : The objective of this research effort was to study and develop a formal methodology for conducting automated or semiautomated software regression testing. To that end, we have developed and extended a regression verification tool (RVT) in various ways, which together improved tremendously its functionality, robustness and completeness. Recall that the main problem that RVT addresses is that of deciding whether two similar programs are equivalent under an arbitrary yet equal context, given some definition of equivalence. More precisely, given a (possibly partial) mapping between the functions of the two programs, the problem is to show which of them are equivalent in an arbitrary context. The basic definition of equivalence that we support is called partial equivalence, which means that two programs emit equal outputs given the same inputs, or at least one of them does not terminate. For most useful definitions of equivalence this problem is undecidable, as is the problem of partial correctness (what most people refer to as general program verification) in general.
Cited by 0
Hermann Kopetz · 1976
At the beginning of every software development some concepts of what the system should do are formulated. The verification of the software package produced constitutes confirmation that these concepts are in fact fulfilled.
Cited by 0
Jean-Christophe Filliâtre · International Journal on Software Tools for Technology Transfer · 2011
Cited by 60
Marta Kwiatkowska · Computer Science - Research and Development · 2013
Cited by 6
Frank Büchner · New Electronics · 2021
What engineers need to do in order to meet the requirements for software unit verification in IEC 62304.
Cited by 0
2005
Cited by 6