1 / 13

Component-based Proof Assistant

Component-based Proof Assistant. Frenkel Smeijers. Outline. Proof assistant FoolProof. Proof assistant. Interactive construction of proofs Based on typed lambda-calculi Based on propositions as types, proofs as terms principle Formal basis of e.g. Coq, Cocktail. Propositions as Types.

rae
Download Presentation

Component-based Proof Assistant

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. Component-based Proof Assistant Frenkel Smeijers

  2. Outline • Proof assistant • FoolProof

  3. Proof assistant • Interactive construction of proofs • Based on typed lambda-calculi • Based on propositions as types, proofs as terms principle • Formal basis of e.g. Coq, Cocktail

  4. Propositions as Types • Unifying approach to lambda calculi and logic • Based on “isomorphism” between types and propositions • Judgment ├ M: τhas two interpretations: • In context , term M has type τ • In context , term M encodes proof of proposition τ

  5. ( I) , x: σ├ M: τ ├ (λx: σ. M): σ  τ ( E)  ├ M: στ ├ N: σ ├ MN: τ (var) ├ M: σ if (M: σ)   Similar correspondences between  and  + and   and   and  ( I) , P├ Q ├ P  Q ( E)  ├ P  Q  ├ P ├ Q (var) ├ P if P   Type deduction vs. logical deduction

  6. x : P y : Q x : P (λy: Q. x) : Q P (λx: P. (λy: Q . x) : P  (Q  P) P Q P Q  P P  (Q  P) Propositions as types example

  7. Interactive construction of terms λ : P(QP) x: P λ : QP y: Q x: P • This is an example of structure editing with bound variables

  8. FoolProof • Component library • Delphi • Components for: • Lexical scanning • Syntax highlighting • Parsing • Tree building • Structure editing • Textual views • Structural views • Context management

  9. FoolProof: distinguishing facilities • “Small and simple” components that fit into a general framework (e.g. Delphi, JBuilder, Visual Studio) • Manipulation of binding structures • Copying, substitution, unification etc. • Context management • Context: structured collection of names and their properties • Management: manipulating contexts in a well-formedness preserving way

  10. FoolProof Test Environment

  11. My proof assistant • Based on abstract descriptions by Marco Brassé • Research usability of FoolProof components • Not an automatic prover • Intended to become FoolProof component itself

  12. Subtasks • Recall typed lambda calculi (as far as necessary) • Study existing proof assistants (Coq, Cocktail, …), Brassé’s notes, FoolProof • Abstract and concrete design of new proof assistant • Implement and integrate

  13. Questions?

More Related