Cogent: Accurate theorem proving for program verification Many symbolic software verification engines such as Slam and ESC/Java rely on automatic theorem provers. The existing theorem provers, such as Simplify, lack precise support for important programming language constructs such as pointers, structures and unions. This paper describes a theorem prover, Cogent, that accurately supports all ANSI-C expressions. The prover’s implementation is based on a machine-level interpretation of expressions into propositional logic, and supports finite machine-level variables, bit operations, structures, unions, references, pointers and pointer arithmetic. When used by Slam during the model checking of over 300 benchmarks, Cogent’s improved accuracy reduced the number of Slam timeouts by half, increased the number of true errors found, and decreased the number of false errors

References in zbMATH (referenced in 11 articles , 1 standard article )

Showing results 1 to 11 of 11.
Sorted by year (citations)

  1. Biere, Armin; Kröning, Daniel: SAT-based model checking (2018)
  2. O’Connor, Liam; Chen, Zilin; Rizkallah, Christine; Amani, Sidney; Lim, Japheth; Murray, Toby; Nagashima, Yutaka; Sewell, Thomas; Klein, Gerwin: Refinement through restraint: bringing down the cost of verification (2016)
  3. Lo, Eric; Binnig, Carsten; Kossmann, Donald; Özsu, M. Tamer; Hon, Wing-Kai: A framework for testing DBMS features (2010) ioport
  4. Bryant, Randal E.; Kroening, Daniel; Ouaknine, Joël; Seshia, Sanjit A.; Strichman, Ofer; Brady, Bryan: An abstraction-based decision procedure for bit-vector arithmetic (2009) ioport
  5. Beyer, Dirk; Henzinger, Thomas A.; Jhala, Ranjit; Majumdar, Rupak: The software model checker blast (2007) ioport
  6. Clarke, Edmund; Jain, Himanshu; Kroening, Daniel: Verification of SpecC using predicate abstraction (2007)
  7. Engel, Christian; Hähnle, Reiner: Generating unit tests from formal proofs (2007)
  8. Leavens, Gary T.; Leino, K. Rustan M.; Müller, Peter: Specification and verification challenges for sequential object-oriented programs (2007)
  9. Kroening, Daniel; Sharygina, Natasha: Approximating predicate images for bit-vector logic (2006)
  10. Cook, Byron; Kroening, Daniel; Sharygina, Natasha: Cogent: Accurate theorem proving for program verification (2005)
  11. Cook, Byron; Kroening, Daniel; Sharygina, Natasha: Symbolic model checking for asynchronous Boolean programs (2005)