SLIDE 1
Truly Modular (Co)datatypes
for
Jasmin Blanchette Johannes Hölzl Andreas Lochbihler Lorenz Panny Andrei Popescu Dmitriy Traytel
SLIDE 2 ’89 H O L
M e l h a m
’93 P V S
O w r e , S h a n k a r
C
P a u l i n
r i n g
’94 H O L
G u n t e r
I s a b e l l e / Z F
P a u l s
’95 H O L L i g h t
H a r r i s
’96 C
G i m é n e z
’99 I s a b e l l e / H O L
B e r g h
e r , W e n z e l
’02 P V S
O w r e , S h a n k a r
’08 A g d a
N
e l l
’12 I s a b e l l e / H O L
T r a y t e l e t a l .
’13 A g d a
A b e l e t a l .
’14 I s a b e l l e / H O L
DATATYPES CODATATYPES
SLIDE 3
Disclaimer Isabelle/HOL was not harmed by the introduction of new axioms to achieve the following
SLIDE 4
SLIDE 5
SLIDE 6
SLIDE 7
SLIDE 8
SLIDE 9
SLIDE 10
SLIDE 11
SLIDE 12
SLIDE 13
SLIDE 14
SLIDE 15
Outline
Examples Bounded Natural Functors (Co)datatypes Primitive (Co)recursion Closing Remarks
SLIDE 16
Outline
Examples Bounded Natural Functors (Co)datatypes Primitive (Co)recursion Closing Remarks
SLIDE 17
BNF = type + polymorphic constants (map, set, bound, relator) + theorems
SLIDE 18
SLIDE 19
SLIDE 20
SLIDE 21
SLIDE 22
BNF = a semantic criterion for legal rhs of a (co)datatype declaration
SLIDE 23
BNF = a semantic criterion for legal rhs of a (co)datatype declaration
SLIDE 24
_× _ _+ _ _ fset _ cset _ mset
τ ⇒ _
Manually registered BNFs
SLIDE 25 _× _ _+ _ _ fset _ cset _ mset
τ ⇒ _
compositions of BNFs
unit+_×_
datatypes
_ list
codatatypes
_ llist
Manually registered BNFs Automatically derived BNFs
SLIDE 26 _× _ _+ _ _ fset _ cset _ mset
τ ⇒ _
_ ⇒ τ _ set compositions of BNFs
unit+_×_
datatypes
_ list
codatatypes
_ llist
Manually registered BNFs Non- BNFs Automatically derived BNFs
SLIDE 27
Outline
Examples Bounded Natural Functors (Co)datatypes Primitive (Co)recursion Closing Remarks
SLIDE 28
SLIDE 29
SLIDE 30
SLIDE 31
SLIDE 32
SLIDE 33
SLIDE 34
SLIDE 35
SLIDE 36
SLIDE 37
SLIDE 38
SLIDE 39
SLIDE 40
SLIDE 41
SLIDE 42
SLIDE 43
SLIDE 44
SLIDE 45
SLIDE 46
SLIDE 47
SLIDE 48
SLIDE 49
SLIDE 50
SLIDE 51
SLIDE 52
SLIDE 53
Outline
Examples Bounded Natural Functors (Co)datatypes Primitive (Co)recursion Closing Remarks
SLIDE 54
SLIDE 55
SLIDE 56
SLIDE 57
SLIDE 58
SLIDE 59
SLIDE 60
SLIDE 61
SLIDE 62
SLIDE 63
Outline
Examples Bounded Natural Functors (Co)datatypes Primitive (Co)recursion Closing Remarks
SLIDE 64
Some Numbers
19 kLoC ML, 7 kLoC thy development size
SLIDE 65
Some Numbers
19 kLoC ML, 7 kLoC thy development size In the Coinductive library, we now prove 36% more lemmas in 11% fewer lines automation gains
SLIDE 66 Some Numbers
19 kLoC ML, 7 kLoC thy development size In the Coinductive library, we now prove 36% more lemmas in 11% fewer lines automation gains
new
performance: mutual (m = 15)
SLIDE 67 Some Numbers
19 kLoC ML, 7 kLoC thy development size In the Coinductive library, we now prove 36% more lemmas in 11% fewer lines automation gains
new
performance: mutual (m = 15)
new
performance: nested (n = 15)
SLIDE 68 Some Numbers
19 kLoC ML, 7 kLoC thy development size In the Coinductive library, we now prove 36% more lemmas in 11% fewer lines automation gains
new
performance: mutual (m = 15)
new
performance: nested (n = 15) The IsaFoR session Proof- Checker now compiles in 10 minutes instead of 50! performance: real world
René Thiemann
SLIDE 69
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
SLIDE 70
Truly Modular (Co)datatypes
for
Jasmin Blanchette Johannes Hölzl Andreas Lochbihler Lorenz Panny Andrei Popescu Dmitriy Traytel