Truly Modular (Co)datatypes for Jasmin Blanchette Johannes Hölzl Andreas Lochbihler Lorenz Panny Andrei Popescu Dmitriy Traytel
D ATATYPES l e z n e g W . n a l i , r r h e t o f e o M l h e - g t n n y r i o e a l u s B T r a r i a r L L L P r k q a O O n O H a o t h H H H h m C S r a e g / / / , e e h e t e i r n e l w L l l l u l l l M O G e e e L L S L b b b O O O V a a a H s s H P H s I I I ’96 ’02 ’08 ’13 ’89 ’93 ’94 ’95 ’99 ’12 ’14 C A A I P s o V g g a d d b q S a a e G l O l e i N A m w b o / é r e e r Z n e , l e l e S l F z t h a a l n . P k a a u r l s o n C ODATATYPES
Disclaimer Isabelle/HOL was not harmed by the introduction of new axioms to achieve the following
Outline Examples Bounded Natural Functors (Co)datatypes Primitive (Co)recursion Closing Remarks
Outline Examples Bounded Natural Functors (Co)datatypes Primitive (Co)recursion Closing Remarks
BNF = type + polymorphic constants (map, set, bound, relator) + theorems
BNF = a semantic criterion for legal rhs of a (co)datatype declaration
BNF = a semantic criterion for legal rhs of a (co)datatype declaration
_ × _ _ fset Manually _ mset _ + _ registered BNFs τ ⇒ _ _ cset
_ × _ _ fset Manually _ mset _ + _ registered BNFs τ ⇒ _ _ cset compositions of BNFs codatatypes unit + _ × _ _ llist Automatically datatypes derived _ list BNFs
_ × _ _ fset Manually _ mset _ + _ registered BNFs τ ⇒ _ _ ⇒ τ _ cset Non- BNFs _ set compositions of BNFs codatatypes unit + _ × _ _ llist Automatically datatypes derived _ list BNFs
Outline Examples Bounded Natural Functors (Co)datatypes Primitive (Co)recursion Closing Remarks
Outline Examples Bounded Natural Functors (Co)datatypes Primitive (Co)recursion Closing Remarks
Outline Examples Bounded Natural Functors (Co)datatypes Primitive (Co)recursion Closing Remarks
Some Numbers development size 19 kLoC ML, 7 kLoC thy
Some Numbers development size 19 kLoC ML, 7 kLoC thy automation gains In the Coinductive library, we now prove 36% more lemmas in 11% fewer lines
Some Numbers performance: mutual (m = 15) new old ≈ 2 . 5 development size 19 kLoC ML, 7 kLoC thy automation gains In the Coinductive library, we now prove 36% more lemmas in 11% fewer lines
Some Numbers performance: mutual (m = 15) new old ≈ 2 . 5 development size 19 kLoC ML, 7 kLoC thy performance: nested (n = 15) new old = 0 . 04 automation gains In the Coinductive library, we now prove 36% more lemmas in 11% fewer lines
Some Numbers performance: mutual (m = 15) new old ≈ 2 . 5 development size 19 kLoC ML, 7 kLoC thy performance: nested (n = 15) new old = 0 . 04 automation gains In the Coinductive library, we now prove 36% more lemmas in 11% fewer lines performance: real world The IsaFoR session Proof- Checker now compiles in 10 minutes instead of 50! René Thiemann
Related Talks Lochbihler, Hölzl (next talk) Recursive Functions on Lazy Lists via Domains and Topologies Blanchette, Popescu, Traytel (tomorrow 12:15) Cardinals in Isabelle/HOL Blanchette, Popescu, Traytel (Saturday 11:45, IJCAR) Unified Classical Logic Completeness: A Coinductive Pearl
Truly Modular (Co)datatypes for Jasmin Blanchette Johannes Hölzl Andreas Lochbihler Lorenz Panny Andrei Popescu Dmitriy Traytel
Recommend
More recommend