equal
deleted
inserted
replaced
4 |
4 |
5 header {* The datatype of finite lists *} |
5 header {* The datatype of finite lists *} |
6 |
6 |
7 theory List |
7 theory List |
8 imports Plain Presburger Code_Numeral Quotient ATP |
8 imports Plain Presburger Code_Numeral Quotient ATP |
9 uses |
|
10 ("Tools/list_code.ML") |
|
11 ("Tools/list_to_set_comprehension.ML") |
|
12 begin |
9 begin |
13 |
10 |
14 datatype 'a list = |
11 datatype 'a list = |
15 Nil ("[]") |
12 Nil ("[]") |
16 | Cons 'a "'a list" (infixr "#" 65) |
13 | Cons 'a "'a list" (infixr "#" 65) |
483 (* |
480 (* |
484 term "[(x,y). x\<leftarrow>xs, let xx = x+x, y\<leftarrow>ys, y \<noteq> xx]" |
481 term "[(x,y). x\<leftarrow>xs, let xx = x+x, y\<leftarrow>ys, y \<noteq> xx]" |
485 *) |
482 *) |
486 |
483 |
487 |
484 |
488 use "Tools/list_to_set_comprehension.ML" |
485 ML_file "Tools/list_to_set_comprehension.ML" |
489 |
486 |
490 simproc_setup list_to_set_comprehension ("set xs") = {* K List_to_Set_Comprehension.simproc *} |
487 simproc_setup list_to_set_comprehension ("set xs") = {* K List_to_Set_Comprehension.simproc *} |
491 |
488 |
492 code_datatype set coset |
489 code_datatype set coset |
493 |
490 |
5520 hide_const (open) member null maps map_filter all_interval_nat all_interval_int |
5517 hide_const (open) member null maps map_filter all_interval_nat all_interval_int |
5521 |
5518 |
5522 |
5519 |
5523 subsubsection {* Pretty lists *} |
5520 subsubsection {* Pretty lists *} |
5524 |
5521 |
5525 use "Tools/list_code.ML" |
5522 ML_file "Tools/list_code.ML" |
5526 |
5523 |
5527 code_type list |
5524 code_type list |
5528 (SML "_ list") |
5525 (SML "_ list") |
5529 (OCaml "_ list") |
5526 (OCaml "_ list") |
5530 (Haskell "![(_)]") |
5527 (Haskell "![(_)]") |