1 / 18

CVCL Lite: An Efficient Theorem Prover Based on Combination of Decision Procedures

CVCL Lite: An Efficient Theorem Prover Based on Combination of Decision Procedures. Presented by: Sergey Berezin Stanford University, U.S.A. What is CVC Lite?. Validity Checker: G ² f First-Order Logic with interpreted theories Arithmetic, uninterpreted functions, arrays, etc.

lindley
Download Presentation

CVCL Lite: An Efficient Theorem Prover Based on Combination of Decision Procedures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CVCL Lite:An Efficient Theorem Prover Based on Combination of Decision Procedures Presented by: Sergey Berezin Stanford University, U.S.A.

  2. What is CVC Lite? • Validity Checker: G ² f • First-Order Logic with interpreted theories • Arithmetic, uninterpreted functions, arrays, etc. • Theorem Prover based on multiple DPs • C++ library for use in other tools

  3. People Project leaders: • Sergey Berezin, Clark Barrett, David Dill Developers and contributors: • Daniel Wichs • Ying Hu • Mark Zavislak • Jim Zhuang • Deepak Goyal • Jake Donham • Sean McLaughlin • Vijay Ganesh

  4. Outline • Theoretical Basis • CVCL from User's Point of View • C++ library • Command line • Theory API • Architecture and Functionality • Important Design Decisions

  5. Logic • Many-sorted FOL + Theories x=y ) a[i]+2*y < f(rec.f, 15-3*b[j+1]) • Partial functions (e.g. x/y) • Quantifiers (experimental) • Validity Problem: • Is f valid under the set of assumptions G ? G²f

  6. Theoretical Basis: Combination of Decision Procedures • Clark Barret's thesis • Fusion of Nelson-Oppen + Shostak methods • Vijay Ganesh's extension of Ghilardi's method: T1[ T2 ² f T1[ T2 [:f ² ? (T1[G1) [ (T2[G2) ² ? Ti[Gi[ Ck ² Ck+1, i2{1,2} Ck are positive ground clauses

  7. Outline • Theoretical Basis • CVCL from User's Point of View • C++ library • Command line • Theory API • Architecture and Functionality • Important Design Decisions

  8. CVCL as C++ Library • API: ValidityChecker class • Provides functionality: • Create terms and formulas as CVCL Expr • Solve G²f • Manipulate logical context G

  9. CVCL Executable Parser & Command Processor CVCL library CVCL API User Input Command Line Executable • PVS-like input language • Parser and command processor • implemented on top of C++ API

  10. Theory API(For New Decision Procedures) • "Hackability" – very important! • All functionality implemented locally in DP • No changes to the Core files CVCL Library CVCL Core Theory API Arith Arrays UF

  11. Outline • Theoretical Basis • CVCL from User's Point of View • Command line • C++ library • Theory API • Architecture and Functionality • Important Design Decisions

  12. CVCL Core SAT Solver Union-Find DB Fact Queue Notify List Arith Arrays UF CVC Lite Architecture

  13. (BCP; DP)* s1 s2 s3 :s2 (BCP; DP)* (BCP; DP)* (BCP; DP)* :s3 SAT Solver + DPs BCP: Unit Clauses DP: Ti[Gi[ Ck² Ck+1 Backtracking Mechanism! ? ?

  14. Other Important Features • Efficient backtracking mechanism • Partial Functions and Subtypes • Kleene semantics (most general) • Quantifiers (experimental) • Symbolic Simulator (in progress) • Proof Production

  15. Outline • Theoretical Basis • CVCL from User's Point of View • Command line • C++ library • Theory API • Architecture and Functionality • Important Design Decisions

  16. Theorems and Proof Rules • Computing with proof rules • Every proven formula is a Theorem object • Theorems are constructed with Proof Rules • Proof rules comprise Trusted Code • Soundness checked on-the-fly • Transparent assumption tracking and proof production • Automatically up-to-date

  17. Adding Decision Procedures • Core files need not be modified • All functionality is coded locally in DP • Type checking • TCCs (partial functions) • Specialized expressions • Parsing aid • Pretty-printing • Distribution of responsibility among developers

  18. Thank you!

More Related