| author | wenzelm |
| Sun, 22 Mar 2015 12:45:34 +0100 | |
| changeset 59774 | d1b83f7ff6fe |
| parent 59733 | cd945dc13bec |
| child 59842 | 9fda99b3d5ee |
| permissions | -rw-r--r-- |
| 31378 | 1 |
|
2 |
(* Author: Florian Haftmann, TU Muenchen *) |
|
| 21917 | 3 |
|
| 58889 | 4 |
section {* A huge collection of equations to generate code from *}
|
| 21917 | 5 |
|
|
37695
71e84a203c19
introduced distinct session HOL-Codegenerator_Test
haftmann
parents:
37407
diff
changeset
|
6 |
theory Candidates |
| 21917 | 7 |
imports |
| 27421 | 8 |
Complex_Main |
|
51160
599ff65b85e2
systematic conversions between nat and nibble/char;
haftmann
parents:
49077
diff
changeset
|
9 |
"~~/src/HOL/Library/Library" |
|
51161
6ed12ae3b3e1
attempt to re-establish conventions which theories are loaded into the grand unified library theory;
haftmann
parents:
51160
diff
changeset
|
10 |
"~~/src/HOL/Library/Sublist_Order" |
| 51173 | 11 |
"~~/src/HOL/Number_Theory/Eratosthenes" |
| 35303 | 12 |
"~~/src/HOL/ex/Records" |
| 21917 | 13 |
begin |
14 |
||
|
59484
a130ae7a9398
slightly more standard code setup for String.literal, with explicit special case in predicate compiler
haftmann
parents:
58889
diff
changeset
|
15 |
setup \<open> |
|
a130ae7a9398
slightly more standard code setup for String.literal, with explicit special case in predicate compiler
haftmann
parents:
58889
diff
changeset
|
16 |
let |
|
a130ae7a9398
slightly more standard code setup for String.literal, with explicit special case in predicate compiler
haftmann
parents:
58889
diff
changeset
|
17 |
val tycos = (#log_types o Type.rep_tsig o Sign.tsig_of) @{theory};
|
|
a130ae7a9398
slightly more standard code setup for String.literal, with explicit special case in predicate compiler
haftmann
parents:
58889
diff
changeset
|
18 |
val consts = map_filter (try (curry (Axclass.param_of_inst @{theory})
|
|
a130ae7a9398
slightly more standard code setup for String.literal, with explicit special case in predicate compiler
haftmann
parents:
58889
diff
changeset
|
19 |
@{const_name "Quickcheck_Narrowing.partial_term_of"})) tycos;
|
|
a130ae7a9398
slightly more standard code setup for String.literal, with explicit special case in predicate compiler
haftmann
parents:
58889
diff
changeset
|
20 |
in fold Code.del_eqns consts end |
|
a130ae7a9398
slightly more standard code setup for String.literal, with explicit special case in predicate compiler
haftmann
parents:
58889
diff
changeset
|
21 |
\<close> -- \<open>drop technical stuff from @{text Quickcheck_Narrowing} which is tailored towards Haskell\<close>
|
|
a130ae7a9398
slightly more standard code setup for String.literal, with explicit special case in predicate compiler
haftmann
parents:
58889
diff
changeset
|
22 |
|
|
51161
6ed12ae3b3e1
attempt to re-establish conventions which theories are loaded into the grand unified library theory;
haftmann
parents:
51160
diff
changeset
|
23 |
inductive sublist :: "'a list \<Rightarrow> 'a list \<Rightarrow> bool" |
|
6ed12ae3b3e1
attempt to re-establish conventions which theories are loaded into the grand unified library theory;
haftmann
parents:
51160
diff
changeset
|
24 |
where |
|
6ed12ae3b3e1
attempt to re-establish conventions which theories are loaded into the grand unified library theory;
haftmann
parents:
51160
diff
changeset
|
25 |
empty: "sublist [] xs" |
|
6ed12ae3b3e1
attempt to re-establish conventions which theories are loaded into the grand unified library theory;
haftmann
parents:
51160
diff
changeset
|
26 |
| drop: "sublist ys xs \<Longrightarrow> sublist ys (x # xs)" |
|
6ed12ae3b3e1
attempt to re-establish conventions which theories are loaded into the grand unified library theory;
haftmann
parents:
51160
diff
changeset
|
27 |
| take: "sublist ys xs \<Longrightarrow> sublist (x # ys) (x # xs)" |
| 33500 | 28 |
|
29 |
code_pred sublist . |
|
30 |
||
|
51161
6ed12ae3b3e1
attempt to re-establish conventions which theories are loaded into the grand unified library theory;
haftmann
parents:
51160
diff
changeset
|
31 |
code_reserved SML upto -- {* avoid popular infix *}
|
| 31378 | 32 |
|
| 21917 | 33 |
end |