equal
deleted
inserted
replaced
|
1 theory Code_Prolog_Examples |
|
2 imports Predicate_Compile_Alternative_Defs |
|
3 uses "~~/src/HOL/Tools/Predicate_Compile/code_prolog.ML" |
|
4 begin |
|
5 |
|
6 section {* Example append *} |
|
7 |
|
8 inductive append |
|
9 where |
|
10 "append [] ys ys" |
|
11 | "append xs ys zs ==> append (x # xs) ys (x # zs)" |
|
12 |
|
13 code_pred append . |
|
14 |
|
15 ML {* |
|
16 tracing (Code_Prolog.write_program (Code_Prolog.generate @{context} [@{const_name append}])) |
|
17 *} |
|
18 |
|
19 ML {* |
|
20 Code_Prolog.run (Code_Prolog.generate @{context} [@{const_name append}]) "append" ["X", "Y", "Z"] |
|
21 *} |
|
22 |
|
23 end |