equal
deleted
inserted
replaced
12 ("Tools/Datatype/datatype.ML") |
12 ("Tools/Datatype/datatype.ML") |
13 ("Tools/inductive_realizer.ML") |
13 ("Tools/inductive_realizer.ML") |
14 ("Tools/Datatype/datatype_realizer.ML") |
14 ("Tools/Datatype/datatype_realizer.ML") |
15 begin |
15 begin |
16 |
16 |
17 subsection {* Prelude: lifting over function space *} |
|
18 |
|
19 enriched_type map_fun: map_fun |
|
20 by (simp_all add: fun_eq_iff) |
|
21 |
|
22 |
|
23 subsection {* The datatype universe *} |
17 subsection {* The datatype universe *} |
24 |
18 |
25 definition "Node = {p. EX f x k. p = (f :: nat => 'b + nat, x ::'a + nat) & f k = Inr 0}" |
19 definition "Node = {p. EX f x k. p = (f :: nat => 'b + nat, x ::'a + nat) & f k = Inr 0}" |
26 |
20 |
27 typedef (open) ('a, 'b) node = "Node :: ((nat => 'b + nat) * ('a + nat)) set" |
21 typedef (open) ('a, 'b) node = "Node :: ((nat => 'b + nat) * ('a + nat)) set" |
530 |
524 |
531 use "Tools/Datatype/datatype_realizer.ML" |
525 use "Tools/Datatype/datatype_realizer.ML" |
532 setup Datatype_Realizer.setup |
526 setup Datatype_Realizer.setup |
533 |
527 |
534 end |
528 end |
|
529 |