hipster integrating theory exploration in a proof
play

Hipster: Integrating Theory Exploration in a Proof Assistant Moa - PowerPoint PPT Presentation

Hipster: Integrating Theory Exploration in a Proof Assistant Moa Johansson Joint work with Dan Ros en, Nick Smallbone and Koen Claessen Chalmers University, Gothenburg, Sweden. Conference on Intelligent Computer Mathematics Coimbra,


  1. Hipster: Integrating Theory Exploration in a Proof Assistant Moa Johansson Joint work with Dan Ros´ en, Nick Smallbone and Koen Claessen Chalmers University, Gothenburg, Sweden. Conference on Intelligent Computer Mathematics Coimbra, Portugal 9 July 2014

  2. Introduction: Theory Exploration Theory Exploration Paradigm [Buchberger-2000]: • Theorems not proved in isolation. • Rather, explore whole theories: • Prove routine lemmas. • Proceed to more complex theorems. • Possibly backtrack and prove more lemmas. • New theories on top of old ones. • Interactive theorem proving: • Creative/hard steps left to user.

  3. Introduction: Theory Exploration Theory Exploration Paradigm [Buchberger-2000]: • Theorems not proved in isolation. • Rather, explore whole theories: • Prove routine lemmas. • Proceed to more complex theorems. • Possibly backtrack and prove more lemmas. • New theories on top of old ones. • Interactive theorem proving: • Creative/hard steps left to user. Our work: Automatically discover new and interesting lemmas in inductive theories.

  4. Inductive Theorem Proving and Theory Exploration Example Domain: Proofs by induction • Often need lemmas (also needing induction). • Hard to find automatically, e.g. generalisations. • Bottom-up approach: Create richer background theory first.

  5. Inductive Theorem Proving and Theory Exploration Example Domain: Proofs by induction • Often need lemmas (also needing induction). • Hard to find automatically, e.g. generalisations. • Bottom-up approach: Create richer background theory first. Background: HipSpec • Inductive prover for Haskell. • Generate (equational) conjectures. Tested, not proved. • Apply induction, then call off the shelf FO-provers.

  6. Hipster: Theory Exploration for Isabelle/HOL • Translate Isabelle/HOL theory to Haskell. • Use conjecture generation from HipSpec. • Currently only equational conjectures. • Prove in Isabelle (LCF-style). • Keep interesting theorems (need induction). • Discard if trivial proof.

  7. Hipster: Theory Exploration for Isabelle/HOL • Translate Isabelle/HOL theory to Haskell. • Use conjecture generation from HipSpec. • Currently only equational conjectures. • Prove in Isabelle (LCF-style). • Keep interesting theorems (need induction). • Discard if trivial proof. Demo: Exploring a theory about binary trees

  8. Hipster: Overview Isabelle Haskell theory Program Code generator Theorems Proved Theory Difficult Routine Conjectures exploration reasoning reasoning Failed Trivially proved? Discard

  9. Conjecture Generation in Haskell • Set of functions and variables . • All type-correct terms up to given depth. • Testing (many) random ground instances. • Evaluate and divide equivalence classes.

  10. Conjecture Generation in Haskell • Set of functions and variables . • All type-correct terms up to given depth. • Testing (many) random ground instances. • Evaluate and divide equivalence classes. Example: xs �→ [] , ys �→ [a] , zs �→ [b] Term Ground Instance Value (xs @ ys) @ zs xs @ (ys @ zs) xs @ [] xs

  11. Conjecture Generation in Haskell • Set of functions and variables . • All type-correct terms up to given depth. • Testing (many) random ground instances. • Evaluate and divide into equivalence classes. Example: xs �→ [] , ys �→ [a] , zs �→ [b] Term Ground Instance Value (xs @ ys) @ zs ([] @ [a]) @ [b] xs @ (ys @ zs) [] @ ([a] @ [b]) xs @ [] [] @ [] xs []

  12. Conjecture Generation in Haskell • Set of functions and variables . • All type-correct terms up to given depth. • Testing (many) random ground instances. • Evaluate and divide into equivalence classes. Example: xs �→ [] , ys �→ [a] , zs �→ [b] Term Ground Instance Value (xs @ ys) @ zs ([] @ [a]) @ [b] [a,b] xs @ (ys @ zs) [] @ ([a] @ [b]) [a,b] xs @ [] [] @ [] [] xs [] []

  13. Ongoing and Further Work • Experiments with different tactics for hard/routine reasoning. • Conditional lemmas: • Given a side condition, generate lemmas. • E.g. sorted(xs) ==> sorted(insert x xs)

  14. Conclusion • Automatically find and prove routine lemmas. • LCF-style re-checkable proofs. • Incremental exploration, store lemmas in libraries. • User can control search space. • Lemmas enhance automated tactics, e.g. Sledgehammer.

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend