towards smart proof search for isabelle
play

Towards Smart Proof Search for Isabelle PSL and all that k e e - PowerPoint PPT Presentation

s a n w o n k y l A r e T m C I r N o f Towards Smart Proof Search for Isabelle PSL and all that k e e w t s a Yutaka Nagashima | Trustworthy System Research Group l l i t n March 2017 u www.csiro.au Example


  1. s a n w o n k y l A r e T m C I r N o f Towards Smart Proof Search for Isabelle PSL and all that k e e w t s a Yutaka Nagashima | Trustworthy System Research Group l l i t n March 2017 u www.csiro.au

  2. Example proof at Data61 • Click to edit Master text styles • Second level – Third level – Fourth level • Fifth level taken from: https://github.com/seL4/seL4 Presentation title | Presenter name 2

  3. PSL and try-hard for Isabelle/HOL The percentage of automatically proved obligations out of 1526 proof obligations (timeout = 300s) 100% Part 2 28% 73% 75% Not specific to Isabelle! Other ITPs / Logic Programming 16% 57% 20% Part 1 50% 25% 0% try_hard sledgehammer Towards Smart Proof Search. | Yutaka Nagashima 3

  4. Isabelle/HOL before PSL proof goal context tactic / sub-tool error-message It's blatantly clear subgoals no sub-goal! You stupid machine, that what I tell you is true (Michael Norrish) Towards Smart Proof Search. | Yutaka Nagashima 4

  5. PSL (Proof Strategy Language) meta-tool tactics approach quickcheck sledgehammer programming language runtime tactic extensible generation (Eisbach) PSL efficient proof extensive generation parallel native Isabelle proof search almost no code clutter!! search proof script low memory usage Towards Smart Proof Search. | Yutaka Nagashima 5

  6. Isabelle/HOL with PSL proof goal proof goal context context strategy tactic / sub-tool PSL proved theorem / Much less interaction with efficient tactic subgoals / message Isabelle. Towards Smart Proof Search. | Yutaka Nagashima 6

  7. Tactics 1 goal preproces goal goal imp principle of explosion False P imp tactic Case 1 Case 2 new goal goal imp goal Case 3 subgoal 1 imp subgoal 2 imp imp goal PSL and all that. | Yutaka Nagashima 7

  8. Tactics 2 , , : thm goal preproces goal goal imp tactic [ ] Case 1 Case 2 new goal goal imp goal Case 3 subgoal 1 imp subgoal 2 imp imp goal PSL and all that. | Yutaka Nagashima 8

  9. Tactics 2 goal preproces goal goal imp tactic Case 4 (failure = empty list) [ ] PSL and all that. | Yutaka Nagashima 9

  10. Tactics 3 [ , ,…] goal :: thm tactic goal 1:: thm goal 2 :: thm Lazy fun tactic :: thm -> [ thm ] OR simp auto simp induct auto simp REPEAT THEN induct auto PSL and all that. | Yutaka Nagashima 10

  11. Tactical (THEN) goal :: thm tactic1 THEN tactic1 tactic2 [ , ,…] goal 1 goal 2 giant tactic? tactic2 tactic2 tactic2 goal 1-1 [ ] [ ,…] @[ ,…]@[… goal 2-1 Towards Smart Proof Search. | Yutaka Nagashima 11

  12. Giant tactic giant tactic? force auto OR OR simp fast OR problem 1: Default problem 2: Giant tactics are too weak! tactics are too slow! problem 3: Sledgehammer and quick-check are not tactics! Towards Smart Proof Search. | Yutaka Nagashima 12

  13. Thens [Dynamic(Induct), Auto, IsSolved] runtime interpretation (InductA ++ InductB ++ …) THEN auto THEN is_solved goal Dynamic ( Induct ) Auto sequential combination (THEN) IsSolved non-determinism Towards Smart Proof Search. | Yutaka Nagashima 13

  14. Monadic interpretation type ‘a tactic = ‘a -> ‘a monad type tactic = thm -> thm Seq.seq explicit tree construction? writer monad + non-deterministic monad goal pointer? Dynamic ( Induct ) Auto efficient proof scripts as “state” IsSolved Towards Smart Proof Search. | Yutaka Nagashima 14

  15. Sledgehammer as tactic problem 3: Sledgehammer and quick-check are not tactics! They work on Proof.state not on thm. type ‘a tactic = 'a -> ‘a nondet_state_monad type tactic = P.state -> P.state nondet_state_monad parallel persistant hammering PThenOne Thens [Dyn (Induct), Thens[Hammer+ , IsSolved]] Towards Smart Proof Search. | Yutaka Nagashima 15

  16. try_hard: the default strategy strategy Try_Hard = Ors [Thens [Subgoal, Basic], Thens [DInductTac, Auto_Solve], strategy Basic = Thens [DCaseTac, Auto_Solve], Ors [ Thens [Subgoal, Advanced], Auto_Solve, Thens [DCaseTac, Solve_Many], Blast_Solve, Thens [DInductTac, Solve_Many] ] FF_Solve, Thens [IntroClasses, Auto_Solve], Thens [Transfer, Auto_Solve], Thens [Normalization, IsSolved], Thens [DInduct, Auto_Solve], Thens [Hammer, IsSolved], Thens [DCases, Auto_Solve], Thens [DCoinduction, Auto_Solve], Thens [Auto, RepeatN(Hammer), IsSolved], Thens [DAuto, IsSolved]] PSL and all that. | Yutaka Nagashima 16

  17. PSL: Demo

  18. PSL and try-hard for Isabelle/HOL The percentage of automatically proved obligations out of 1526 proof obligations (timeout = 300s) 100% try_smart Part 2 28% 73% 75% 16% 57% 20% Part 1 50% 25% 0% try_hard sledgehammer Towards Smart Proof Search. | Yutaka Nagashima 18

  19. PaMpeR: Proof Method proof goal and context as a vector of boolean values Recommendation System huge and complex proof goal proof goal ? context strategy context assertions Regression PaMpeR Algorithm Proof Data Type class mechanism? Base Recursively defined constant? proof method e.g. AFP & seL4 recommendation:: (proof method * double) list Towards Smart Proof Search. | Yutaka Nagashima 19

  20. PaMpeR: Demo Affine_Arithmetic/Affine_Approximation

  21. Future work: try-hard to try-smart PaMpeR proof goal context proof goal context proof goal context small strategy tactic / sub-tool try_smart PSL efficient tactic state monad transformer runtime tactic generation Even better than PSL. Towards Smart Proof Search. | Yutaka Nagashima 21

  22. Isabelle/PSL on Github ( https://github.com/data61/PSL ) Leave a star if you like. I want you to use PSL / adopt the idea Lean/PSL coming soon(?) Isabelle/PaMpeR on Github (still work in progress) Towards Smart Proof Search. | Yutaka Nagashima 22

  23. Thank You TS/ProofEngineering Yutaka Nagashima 
 Engineer www.csiro.au

Recommend


More recommend