towards machine learning induction for isabelle hol
play

Towards Machine Learning Induction for Isabelle/HOL This work was - PowerPoint PPT Presentation

git clone https://github.com/data61/PSL Towards Machine Learning Induction for Isabelle/HOL This work was supported by the project AI&Reasoning (reg. no. CZ.02.1.01/0.0/0.0/15_003/0000466). Yutaka Nagashima University of Innsbruck Czech


  1. git clone https://github.com/data61/PSL goal apply (induct xs) apply (induct) apply (induct xs rule: Demo.sep.induct) Dynamic ( Induct ) Auto apply (auto) apply (auto) apply (auto) done IsSolved

  2. git clone https://github.com/data61/PSL 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], 16 percentage point performance Thens [Normalization, IsSolved], improvement compared to sledgehammer Thens [DInduct, Auto_Solve], Thens [Hammer, IsSolved], Thens [DCases, Auto_Solve], but the search space explodes Thens [DCoinduction, Auto_Solve], Thens [Auto, RepeatN(Hammer), IsSolved], Thens [DAuto, IsSolved]] PaMpeR: Proof Method Recommendation

  3. preparation phase How does PaMpeR work? recommendation phase

  4. preparation phase large proof corpora AFP and standard library How does PaMpeR work? recommendation phase proof ? state proof engineer

  5. preparation phase large proof corpora AFP and standard library How does Archive of Formal Proofs (https://www.isa-afp.org) PaMpeR work? recommendation phase proof ? state proof engineer

  6. preparation phase large proof corpora AFP and standard library How does PaMpeR work? recommendation phase proof ? state proof engineer

  7. full feature extractor preparation phase large proof corpora 6021 CPU hours AFP and standard library 108 assertions How does PaMpeR work? recommendation phase proof ? state proof engineer

  8. database ( 425334 data points ) full feature extractor preparation phase large proof corpora :: ( tactic_name, [ bool ] ) 6021 CPU hours AFP and standard library 108 assertions How does PaMpeR work? recommendation phase proof ? state proof engineer

  9. database ( 425334 data points ) full feature extractor preparation phase large proof corpora :: ( tactic_name, [ bool ] ) preprocess 6021 CPU hours AFP and standard library 108 assertions How does decision tree construction PaMpeR work? recommendation phase proof ? state proof engineer

  10. database ( 425334 data points ) full feature extractor preparation phase large proof corpora :: ( tactic_name, [ bool ] ) preprocess 6021 CPU hours AFP and standard library 108 assertions How does decision tree construction PaMpeR work? fast feature extractor recommendation phase proof ? state proof engineer

  11. database ( 425334 data points ) full feature extractor preparation phase large proof corpora :: ( tactic_name, [ bool ] ) preprocess 6021 CPU hours AFP and standard library 108 assertions How does decision tree construction PaMpeR work? fast feature extractor recommendation phase feature vector proof ? state proof engineer

  12. database ( 425334 data points ) full feature extractor preparation phase large proof corpora :: ( tactic_name, [ bool ] ) preprocess 6021 CPU hours AFP and standard library 108 assertions How does decision tree construction PaMpeR work? fast feature extractor recommendation phase feature vector proof ? state lookup proof engineer proof method recommendation

  13. database ( 425334 data points ) full feature extractor preparation phase large proof corpora :: ( tactic_name, [ bool ] ) preprocess 6021 CPU hours AFP and standard library ? 108 assertions How does decision tree construction PaMpeR work? fast feature extractor recommendation phase feature vector proof ? state lookup proof engineer proof method recommendation

  14. git clone https://github.com/data61/PSL AITP2018 review ? anonymous reviewer

  15. git clone https://github.com/data61/PSL AITP2018 review Proof Method Recommendation, PaMpeR! ? anonymous reviewer

  16. git clone https://github.com/data61/PSL AITP2018 review Proof Method Recommendation, PaMpeR! I have doubts about various approaches proposed in the paper. ? anonymous reviewer

  17. git clone https://github.com/data61/PSL AITP2018 review Proof Method Recommendation, PaMpeR! I have doubts about various approaches proposed in the paper. ? anonymous reviewer

  18. git clone https://github.com/data61/PSL AITP2018 review Proof Method Recommendation, PaMpeR! I have doubts about various approaches proposed in the paper. ? New users of Isabelle are facing many challenges from - writing their first definitions, - stating suitable theorem statements, and - anonymous producing properly structured proofs. reviewer

  19. git clone https://github.com/data61/PSL AITP2018 review Proof Method Recommendation, PaMpeR! I have doubts about various approaches proposed in the paper. ? New users of Isabelle are facing many challenges from - writing their first definitions, - stating suitable theorem statements, and - anonymous producing properly structured proofs. reviewer Proof methods are merely the bits at the bottom of that.

  20. git clone https://github.com/data61/PSL AITP2018 review Proof Method Recommendation, PaMpeR! I have doubts about various approaches proposed in the paper. ? New users of Isabelle are facing many challenges from - writing their first definitions, - stating suitable theorem statements, and - anonymous producing properly structured proofs. reviewer Proof methods are merely the bits at the bottom of that. I was writing how to prove not how to specify!

  21. git clone https://github.com/data61/PSL AITP2018 review Proof Method Recommendation, PaMpeR! I have doubts about various approaches proposed in the paper. ? New users of Isabelle are facing many challenges from - writing their first definitions, - stating suitable theorem statements, and - anonymous producing properly structured proofs. reviewer Proof methods are merely the bits at the bottom of that. I was writing how to prove not how to specify!

  22. git clone https://github.com/data61/PSL AITP2018 review Proof Method Recommendation, PaMpeR! I have doubts about various approaches proposed in the paper. ? New users of Isabelle are facing many challenges from - writing their first definitions, - stating suitable theorem statements, and - anonymous producing properly structured proofs. reviewer Proof methods are merely the bits at the bottom of that. I was writing how to prove not how to specify! Proof Goal Transformer, PGT!

  23. git clone https://github.com/data61/PSL PSL with PGT PGT

  24. git clone https://github.com/data61/PSL PSL with PGT proof goal sub-optimal for proof automation context PGT strategy PGT

  25. git clone https://github.com/data61/PSL PSL with PGT proof goal sub-optimal proof goal context for proof automation tactic / sub-tool context PGT strategy PGT

  26. git clone https://github.com/data61/PSL PSL with PGT proof goal sub-optimal proof goal context for proof automation tactic / sub-tool context PGT strategy PGT proved theorem / subgoals / message

  27. git clone https://github.com/data61/PSL PSL with PGT proof goal sub-optimal proof goal context for proof automation tactic / sub-tool context PGT strategy PGT proof for the original goal, proved theorem / and auxiliary lemma subgoals / message optimal for proof automation

  28. git clone https://github.com/data61/PSL PSL with PGT proof goal sub-optimal proof goal context for proof automation tactic / sub-tool context PGT strategy PGT proof for the original goal, proved theorem / and auxiliary lemma subgoals / message DEMO! optimal for proof automation

  29. git clone https://github.com/data61/PSL goal Conjecture Fastforce Quickcheck DInd DInd

  30. git clone https://github.com/data61/PSL goal Conjecture Fastforce Quickcheck DInd DInd

  31. git clone https://github.com/data61/PSL goal Conjecture Fastforce Quickcheck DInd DInd

  32. git clone https://github.com/data61/PSL goal Conjecture Fastforce Quickcheck DInd DInd

  33. git clone https://github.com/data61/PSL goal Conjecture Fastforce Quickcheck DInd DInd

  34. git clone https://github.com/data61/PSL goal Conjecture Fastforce Quickcheck DInd DInd

  35. git clone https://github.com/data61/PSL goal Conjecture Fastforce Quickcheck DInd DInd

  36. git clone https://github.com/data61/PSL goal Conjecture Fastforce Quickcheck DInd DInd

  37. git clone https://github.com/data61/PSL goal Conjecture Fastforce Quickcheck DInd DInd

  38. PSL can find how to apply induction for easy problems. git clone https://github.com/data61/PSL Success story

  39. PSL can find how to apply induction for easy problems. PaMpeR recommends which proof methods to use. git clone https://github.com/data61/PSL Success story

  40. PSL can find how to apply induction for easy problems. PaMpeR recommends which proof methods to use. PGT produces useful auxiliary lemmas. git clone https://github.com/data61/PSL Success story

  41. PSL can find how to apply induction for easy problems. PaMpeR recommends which proof methods to use. PGT produces useful auxiliary lemmas. git clone https://github.com/data61/PSL Success story CADE2017

  42. PSL can find how to apply induction for easy problems. PaMpeR recommends which proof methods to use. PGT produces useful auxiliary lemmas. git clone https://github.com/data61/PSL Success story CADE2017 ASE2018

  43. PSL can find how to apply induction for easy problems. PaMpeR recommends which proof methods to use. PGT produces useful auxiliary lemmas. git clone https://github.com/data61/PSL Success story CADE2017 ASE2018 CICM2018 (best system award)

  44. PSL can find how to apply induction for easy problems. PaMpeR recommends which proof methods to use. PGT produces useful auxiliary lemmas. git clone https://github.com/data61/PSL Too good to be true?

  45. PSL can find how to apply PaMpeR recommends which proof methods to use. PGT produces useful auxiliary lemmas. induction for easy problems. git clone https://github.com/data61/PSL Too good to be true? h c r a e s f o o r p a s e t e l p m o c L S P f i y l n o a s e t e l p m o c T G P h t i w L S P f i y l n o h c r a e s f o o r p

  46. PSL can find how to apply PaMpeR recommends which PGT produces useful auxiliary lemmas. induction for easy problems. proof methods to use. git clone https://github.com/data61/PSL Too good to be true? h c r a e s f o o r p a s e t e l p m o c L S P f i y l n o d n e m m o c e r t o n s e o d R e p M a P t u b s d o h t e m f o o r p r o f s t n e m u g r a a s e t e l p m o c T G P h t i w L S P f i y l n o h c r a e s f o o r p

  47. PSL can find how to apply PaMpeR recommends which PGT produces useful auxiliary lemmas. induction for easy problems. proof methods to use. git clone https://github.com/data61/PSL Too good to be true? h c r a e s f o o r p a s e t e l p m o c L S P f i y l n o d n e m m o c e r t o n s e o d R e p M a P t u b s d o h t e m f o o Recommend how to r p r o f s t n e m u g r a apply induction without completing a proof. a s e t e l p m o c T G P h t i w L S P f i y l n o h c r a e s f o o r p

  48. PSL can find how to apply PaMpeR recommends which PGT produces useful auxiliary lemmas. induction for easy problems. proof methods to use. git clone https://github.com/data61/PSL Too good to be true? h c r a e s f o o r p a s e t e l p m o c L S P f i y l n o d n e m m o c e r t o n s e o d R e p M a P t u b s d o h t e m f o o Recommend how to r p r o f s t n e m u g r a apply induction without completing a proof. a s e t e l p m o c T G P h t i w L S P f i y MeLoId: Machine l n o h c r a e s f o o r p Learning Induction

  49. preparation phase active mining [ ( apply(induct x arbitrary: y), used ), ( apply(induct y arbitrary: x), not ), lemma “foo x y = bar x y” ( apply(induct arbitrary: y), used ), apply(induct x arbitrary: y) ( apply(induct x rule: bar.induct), not ),… ] large proof corpora [ ( [1,0,0,1,…1], used ), ( [0,1,0,1,…1], not ), full feature ( [1,1,0,0,…1], used ), extractor ( [0,1,0,0,…1], not ), … ] AFP and standard library decision tree about 40 assertions construction How does written in ML MeLoId work? recommendation phase fast feature extractor [ [1,1,0,1,…1], Dynamic [ apply(induct s), [0,0,0,1,…1], (Induct) lemma “f s t ==> g s u” apply(induct t), [1,1,1,0,…1], apply(induct u), [1,1,0,1,…1], … ] apply(induct s t arbitrary: u), … ] proof ? state lookup proof [ (0.3, apply(induct s t arbitrary: u)) engineer (0.2, apply(induct s t)), (0.15, apply(induct t arbitrary: u)), (0.11, apply(induct u)), … ]

  50. preparation phase active mining [ ( apply(induct x arbitrary: y), used ), ( apply(induct y arbitrary: x), not ), lemma “foo x y = bar x y” ( apply(induct arbitrary: y), used ), apply(induct x arbitrary: y) ( apply(induct x rule: bar.induct), not ),… ] large proof corpora [ ( [1,0,0,1,…1], used ), ( [0,1,0,1,…1], not ), full feature ( [1,1,0,0,…1], used ), extractor ( [0,1,0,0,…1], not ), … ] AFP and standard library decision tree about 40 assertions construction How does written in ML MeLoId work? Writing useful assertions in ML is very tricky. => Domain specific language for writing assertions! recommendation phase fast feature extractor [ [1,1,0,1,…1], Dynamic [ apply(induct s), [0,0,0,1,…1], (Induct) lemma “f s t ==> g s u” apply(induct t), [1,1,1,0,…1], apply(induct u), [1,1,0,1,…1], … ] apply(induct s t arbitrary: u), … ] proof ? state lookup proof [ (0.3, apply(induct s t arbitrary: u)) engineer (0.2, apply(induct s t)), (0.15, apply(induct t arbitrary: u)), (0.11, apply(induct u)), … ]

  51. preparation phase active mining [ ( apply(induct x arbitrary: y), used ), ( apply(induct y arbitrary: x), not ), lemma “foo x y = bar x y” ( apply(induct arbitrary: y), used ), apply(induct x arbitrary: y) ( apply(induct x rule: bar.induct), not ),… ] large proof corpora [ ( [1,0,0,1,…1], used ), ( [0,1,0,1,…1], not ), full feature ( [1,1,0,0,…1], used ), extractor ( [0,1,0,0,…1], not ), … ] AFP and standard library decision tree about 40 assertions construction How does written in ML MeLoId work? Writing useful assertions in ML is very tricky. => Domain specific language for writing assertions! recommendation phase fast feature extractor WIP! [ [1,1,0,1,…1], Dynamic [ apply(induct s), [0,0,0,1,…1], (Induct) lemma “f s t ==> g s u” apply(induct t), [1,1,1,0,…1], apply(induct u), [1,1,0,1,…1], … ] apply(induct s t arbitrary: u), … ] proof ? state lookup proof [ (0.3, apply(induct s t arbitrary: u)) engineer (0.2, apply(induct s t)), (0.15, apply(induct t arbitrary: u)), (0.11, apply(induct u)), … ]

  52. git clone https://github.com/data61/PSL Thank you!

  53. git clone https://github.com/data61/PSL Thank you! Leave a star at GitHub for PSL!

  54. git clone https://github.com/data61/PSL Thank you! Leave a star at GitHub for PSL! Let’s write a review paper “AITP deserves High-Performance Computing, Too!”

  55. git clone https://github.com/data61/PSL Thank you! Leave a star at GitHub for PSL! Let’s write a review paper “AITP deserves High-Performance Computing, Too!” PaMpeR’s feature extractor?

  56. git clone https://github.com/data61/PSL Time

  57. git clone https://github.com/data61/PSL 1986~ Isabelle Time

  58. git clone https://github.com/data61/PSL 1986~ Isabelle Time 2004~ AFP

  59. git clone https://github.com/data61/PSL 2017~ PaMpeR 1986~ Isabelle Time 2004~ AFP

Recommend


More recommend