Computer Aided Verification

Last updated

In computer science, the International Conference on Computer-Aided Verification (CAV) is an annual academic conference on the theory and practice of computer-aided formal analysis of software and hardware systems, broadly known as formal methods. Among the important results originally published in CAV are techniques in model checking, such as Counterexample-Guided Abstraction Refinement (CEGAR) [1] and partial order reduction. [2] [3] It is often ranked among the top conferences in computer science. [4] [5]

Contents

The first CAV was held in 1989 in Grenoble, France. The CAV proceedings (1989-present) are published by Springer Science+Business Media. They have been open access since 2018. [6] [7] [8]

See also

Related Research Articles

<span class="mw-page-title-main">Model checking</span> Computer science field

In computer science, model checking or property checking is a method for checking whether a finite-state model of a system meets a given specification. This is typically associated with hardware or software systems, where the specification contains liveness requirements as well as safety requirements.

The Berkeley Lazy Abstraction Software verification Tool (BLAST) is a software model checking tool for C programs. The task addressed by BLAST is the need to check whether software satisfies the behavioral requirements of its associated interfaces. BLAST employs counterexample-driven automatic abstraction refinement to construct an abstract model that is then model-checked for safety properties. The abstraction is constructed on the fly, and only to the requested precision.

A group signature scheme is a method for allowing a member of a group to anonymously sign a message on behalf of the group. The concept was first introduced by David Chaum and Eugene van Heyst in 1991. For example, a group signature scheme could be used by an employee of a large company where it is sufficient for a verifier to know a message was signed by an employee, but not which particular employee signed it. Another application is for keycard access to restricted areas where it is inappropriate to track individual employee's movements, but necessary to secure areas to only employees in the group.

In computer science and mathematical logic, satisfiability modulo theories (SMT) is the problem of determining whether a mathematical formula is satisfiable. It generalizes the Boolean satisfiability problem (SAT) to more complex formulas involving real numbers, integers, and/or various data structures such as lists, arrays, bit vectors, and strings. The name is derived from the fact that these expressions are interpreted within ("modulo") a certain formal theory in first-order logic with equality. SMT solvers are tools that aim to solve the SMT problem for a practical subset of inputs. SMT solvers such as Z3 and cvc5 have been used as a building block for a wide range of applications across computer science, including in automated theorem proving, program analysis, program verification, and software testing.

The European Joint Conferences on Theory and Practice of Software (ETAPS) is a confederation of (currently) four computer science conferences taking place annually at one conference site, usually end of March or April. Three of the four conferences are top ranked in software engineering and one (ESOP) is top ranked in programming languages.

WoLLIC, the Workshop on Logic, Language, Information and Computation is an academic conference in the field of pure and applied logic and theoretical computer science. WoLLIC has been organised annually since 1994, typically in June or July; the conference is scientifically sponsored by the Association for Logic, Language and Information, the Association for Symbolic Logic, the European Association for Theoretical Computer Science and the European Association for Computer Science Logic.

Extended static checking (ESC) is a collective name in computer science for a range of techniques for statically checking the correctness of various program constraints. ESC can be thought of as an extended form of type checking. As with type checking, ESC is performed automatically at compile time. This distinguishes it from more general approaches to the formal verification of software, which typically rely on human-generated proofs. Furthermore, it promotes practicality over soundness, in that it aims to dramatically reduce the number of false positives at the cost of introducing some false negatives. ESC can identify a range of errors that are currently outside the scope of a type checker, including division by zero, array out of bounds, integer overflow and null dereferences.

<span class="mw-page-title-main">Peter Ružička</span> Slovak scientist

Peter Ružička was a Slovak computer scientist and mathematician who worked in the fields of distributed computing and computer networks. He was a professor at the Comenius University, Faculty of Mathematics, Physics and Informatics working in several research areas of theoretical computer science throughout his long career.

Helmut Veith was an Austrian computer scientist who worked on the areas of computer-aided verification, software engineering, computer security, and logic in computer science. He was a Professor of Informatics at the Vienna University of Technology, Austria.

In automata theory, a self-verifying finite automaton (SVFA) is a special kind of a nondeterministic finite automaton (NFA) with a symmetric kind of nondeterminism introduced by Hromkovič and Schnitger. Generally, in self-verifying nondeterminism, each computation path is concluded with any of the three possible answers: yes, no, and I do not know. For each input string, no two paths may give contradictory answers, namely both answers yes and no on the same input are not possible. At least one path must give answer yes or no, and if it is yes then the string is considered accepted. SVFA accept the same class of languages as deterministic finite automata (DFA) and NFA but have different state complexity.

<span class="mw-page-title-main">Klaus Peter Jantke</span>

Klaus Peter Jantke is a German mathematician, computer scientist, university teacher and academic researcher focusing on Artificial intelligence, Educational technology, Game studies and gamification.

Runtime predictive analysis is a runtime verification technique in computer science for detecting property violations in program executions inferred from an observed execution. An important class of predictive analysis methods has been developed for detecting concurrency errors in concurrent programs, where a runtime monitor is used to predict errors which did not happen in the observed run, but can happen in an alternative execution of the same program. The predictive capability comes from the fact that the analysis is performed on an abstract model extracted online from the observed execution, which admits a class of executions beyond the observed one.

<span class="mw-page-title-main">Doron A. Peled</span> Israeli computer scientist

Doron A. Peled is a computer science Professor at Bar-Ilan University. His research interests include formal methods, model checking, program synthesis and runtime verification. With Edmund M. Clarke and Orna Grumberg, he is the coauthor of the book Model Checking and the author of the book Software Reliability Methods.

The International Symposium on Experimental Algorithms (SEA), previously known as Workshop on Experimental Algorithms (WEA), is a computer science conference in the area of algorithm engineering.

In cryptography, a round or round function is a basic transformation that is repeated (iterated) multiple times inside the algorithm. Splitting a large algorithmic function into rounds simplifies both implementation and cryptanalysis.

Lenore D. Zuck is an Israeli-American computer scientist whose research involves formal methods in software engineering, as well as information privacy. She is a research professor of computer science at the University of Illinois Chicago.

<span class="mw-page-title-main">Kenneth L. McMillan</span> American computer scientist

Kenneth L. McMillan is an American computer scientist working in the area of formal methods, logic, and programming languages. He is a professor in the computer science department at the University of Texas at Austin, where he holds the Admiral B.R. Inman Centennial Chair in Computing Theory.

In computer science and mathematical logic, Cooperating Validity Checker (CVC) is a family of satisfiability modulo theories (SMT) solvers. The latest major versions of CVC are CVC4 and CVC5 ; earlier versions include CVC, CVC Lite, and CVC3. Both CVC4 and cvc5 support the SMT-LIB and TPTP input formats for solving SMT problems, and the SyGuS-IF format for program synthesis. Both CVC4 and cvc5 can output proofs that can be independently checked in the LFSC format, cvc5 additionally supports the Alethe and Lean 4 formats. cvc5 has bindings for C++, Python, and Java.

In the context of computer science, the C Bounded Model Checker (CBMC) is a bounded model checker for C programs. It was the first such tool.

Counterexample-guided abstraction refinement (CEGAR) is a technique for symbolic model checking. It is also applied in modal logic tableau calculi algorithms to optimise their efficiency.

References

  1. Clarke, Edmund M.; et al. (2000). "Counterexample-Guided Abstraction Refinement". Computer Aided Verification. Lecture Notes in Computer Science. Vol. 1855. pp. 154–169. doi:10.1007/10722167_15. ISBN   978-3-540-67770-3.
  2. Valmari, Antti (1990). "A Stubborn Attack On State Explosion". Computer-Aided Verification. Lecture Notes in Computer Science. Vol. 531. pp. 156–165. doi:10.1007/BFb0023729. ISBN   978-3-540-54477-7.
  3. Godefroid, Patrice (1990). "Using Partial Orders to Improve Automatic Verification Methods". Computer-Aided Verification. Lecture Notes in Computer Science. Vol. 531. pp. 176–185. doi:10.1007/BFb0023731. ISBN   978-3-540-54477-7.
  4. "Ranked Conference List (2010)". Australian Research Council. Archived from the original on 27 February 2012. Retrieved 3 January 2012.
  5. "Top conferences in Software Engineering". Microsoft Academic Search. Archived from the original on 29 June 2013. Retrieved 3 January 2012.
  6. Chockler, Hana; Weissenbacher, Georg, eds. (2018). "Computer Aided Verification". Lecture Notes in Computer Science. doi:10.1007/978-3-319-96142-2. ISSN   0302-9743.
  7. Majumdar, Rupak; Kunčak, Viktor, eds. (2017). "Computer Aided Verification". Lecture Notes in Computer Science. doi:10.1007/978-3-319-63390-9. ISSN   0302-9743.
  8. Enea, Constantin; Lal, Akash, eds. (2023). "Computer Aided Verification". Lecture Notes in Computer Science. doi:10.1007/978-3-031-37703-7. ISSN   0302-9743.