GACAL

GACAL verifies C programs by exploring execution traces to identify conjectured invariants and applying the ACL2s theorem prover to establish program correctness.


Key Features:

  • Invariant Search: Systematically searches execution traces of C programs to identify candidate invariants.
  • Theorem Proving with ACL2s: Uses the ACL2s theorem prover to formally verify candidate invariants.
  • Iterative Verification Process: Performs iterative discovery and verification, beginning with simpler invariants and progressively addressing more complex ones.
  • Integration with External Tools: Connects to external tools via the interface provided by ACL2s to extend verification capabilities.

Scientific Applications:

  • C Program Verification: Verifying correctness and detecting logical errors in C programs through invariant-based proofs.
  • Bioinformatics Algorithm Validation: Validating correctness and reliability of computational algorithms used in bioinformatics.

Methodology:

Explores the space of possible invariants using traces from the input C program; identifies candidate invariants; employs the ACL2s theorem prover via its interface to verify invariants; iterates from simpler to more complex invariants.

Details

Tool Type:
command-line tool
Programming Languages:
C
Added:
1/18/2021
Last Updated:
11/24/2024

Operations

Publications

[No authors listed]. GACAL: Conjecture-Based Verification. Tools and Algorithms for the Construction and Analysis of Systems. 2020;12079:388.

PMCID: PMC7480696