| changeset 48891 | c0eafbd55de3 |
| parent 48776 | 37cd53e69840 |
| child 49339 | d1fcb4de8349 |
| 48890:d72ca5742f80 | 48891:c0eafbd55de3 |
|---|---|
8 imports Pure "~~/src/Tools/Code_Generator" |
8 imports Pure "~~/src/Tools/Code_Generator" |
9 keywords |
9 keywords |
10 "try" "solve_direct" "quickcheck" |
10 "try" "solve_direct" "quickcheck" |
11 "print_coercions" "print_coercion_maps" "print_claset" "print_induct_rules" :: diag and |
11 "print_coercions" "print_coercion_maps" "print_claset" "print_induct_rules" :: diag and |
12 "quickcheck_params" :: thy_decl |
12 "quickcheck_params" :: thy_decl |
13 uses |
|
14 ("Tools/hologic.ML") |
|
15 "~~/src/Tools/misc_legacy.ML" |
|
16 "~~/src/Tools/try.ML" |
|
17 "~~/src/Tools/quickcheck.ML" |
|
18 "~~/src/Tools/solve_direct.ML" |
|
19 "~~/src/Tools/IsaPlanner/zipper.ML" |
|
20 "~~/src/Tools/IsaPlanner/isand.ML" |
|
21 "~~/src/Tools/IsaPlanner/rw_tools.ML" |
|
22 "~~/src/Tools/IsaPlanner/rw_inst.ML" |
|
23 "~~/src/Provers/hypsubst.ML" |
|
24 "~~/src/Provers/splitter.ML" |
|
25 "~~/src/Provers/classical.ML" |
|
26 "~~/src/Provers/blast.ML" |
|
27 "~~/src/Provers/clasimp.ML" |
|
28 "~~/src/Tools/coherent.ML" |
|
29 "~~/src/Tools/eqsubst.ML" |
|
30 "~~/src/Provers/quantifier1.ML" |
|
31 ("Tools/simpdata.ML") |
|
32 "~~/src/Tools/atomize_elim.ML" |
|
33 "~~/src/Tools/induct.ML" |
|
34 "~~/src/Tools/cong_tac.ML" |
|
35 "~~/src/Tools/intuitionistic.ML" |
|
36 "~~/src/Tools/project_rule.ML" |
|
37 ("~~/src/Tools/induction.ML") |
|
38 ("~~/src/Tools/induct_tacs.ML") |
|
39 ("Tools/cnf_funcs.ML") |
|
40 "~~/src/Tools/subtyping.ML" |
|
41 "~~/src/Tools/case_product.ML" |
|
42 begin |
13 begin |
14 |
|
15 ML_file "~~/src/Tools/misc_legacy.ML" |
|
16 ML_file "~~/src/Tools/try.ML" |
|
17 ML_file "~~/src/Tools/quickcheck.ML" |
|
18 ML_file "~~/src/Tools/solve_direct.ML" |
|
19 ML_file "~~/src/Tools/IsaPlanner/zipper.ML" |
|
20 ML_file "~~/src/Tools/IsaPlanner/isand.ML" |
|
21 ML_file "~~/src/Tools/IsaPlanner/rw_tools.ML" |
|
22 ML_file "~~/src/Tools/IsaPlanner/rw_inst.ML" |
|
23 ML_file "~~/src/Provers/hypsubst.ML" |
|
24 ML_file "~~/src/Provers/splitter.ML" |
|
25 ML_file "~~/src/Provers/classical.ML" |
|
26 ML_file "~~/src/Provers/blast.ML" |
|
27 ML_file "~~/src/Provers/clasimp.ML" |
|
28 ML_file "~~/src/Tools/coherent.ML" |
|
29 ML_file "~~/src/Tools/eqsubst.ML" |
|
30 ML_file "~~/src/Provers/quantifier1.ML" |
|
31 ML_file "~~/src/Tools/atomize_elim.ML" |
|
32 ML_file "~~/src/Tools/induct.ML" |
|
33 ML_file "~~/src/Tools/cong_tac.ML" |
|
34 ML_file "~~/src/Tools/intuitionistic.ML" |
|
35 ML_file "~~/src/Tools/project_rule.ML" |
|
36 ML_file "~~/src/Tools/subtyping.ML" |
|
37 ML_file "~~/src/Tools/case_product.ML" |
|
43 |
38 |
44 setup {* |
39 setup {* |
45 Intuitionistic.method_setup @{binding iprover} |
40 Intuitionistic.method_setup @{binding iprover} |
46 #> Quickcheck.setup |
41 #> Quickcheck.setup |
47 #> Solve_Direct.setup |
42 #> Solve_Direct.setup |
700 |
695 |
701 lemmas [trans] = trans |
696 lemmas [trans] = trans |
702 and [sym] = sym not_sym |
697 and [sym] = sym not_sym |
703 and [Pure.elim?] = iffD1 iffD2 impE |
698 and [Pure.elim?] = iffD1 iffD2 impE |
704 |
699 |
705 use "Tools/hologic.ML" |
700 ML_file "Tools/hologic.ML" |
706 |
701 |
707 |
702 |
708 subsubsection {* Atomizing meta-level connectives *} |
703 subsubsection {* Atomizing meta-level connectives *} |
709 |
704 |
710 axiomatization where |
705 axiomatization where |
1191 |
1186 |
1192 lemma ex_comm: |
1187 lemma ex_comm: |
1193 "(\<exists>x y. P x y) = (\<exists>y x. P x y)" |
1188 "(\<exists>x y. P x y) = (\<exists>y x. P x y)" |
1194 by blast |
1189 by blast |
1195 |
1190 |
1196 use "Tools/simpdata.ML" |
1191 ML_file "Tools/simpdata.ML" |
1197 ML {* open Simpdata *} |
1192 ML {* open Simpdata *} |
1198 |
1193 |
1199 setup {* Simplifier.map_simpset_global (K HOL_basic_ss) *} |
1194 setup {* Simplifier.map_simpset_global (K HOL_basic_ss) *} |
1200 |
1195 |
1201 simproc_setup defined_Ex ("EX x. P x") = {* fn _ => Quantifier1.rearrange_ex *} |
1196 simproc_setup defined_Ex ("EX x. P x") = {* fn _ => Quantifier1.rearrange_ex *} |
1479 | dest_def _ = NONE |
1474 | dest_def _ = NONE |
1480 val trivial_tac = match_tac @{thms induct_trueI} |
1475 val trivial_tac = match_tac @{thms induct_trueI} |
1481 ) |
1476 ) |
1482 *} |
1477 *} |
1483 |
1478 |
1484 use "~~/src/Tools/induction.ML" |
1479 ML_file "~~/src/Tools/induction.ML" |
1485 |
1480 |
1486 setup {* |
1481 setup {* |
1487 Induct.setup #> Induction.setup #> |
1482 Induct.setup #> Induction.setup #> |
1488 Context.theory_map (Induct.map_simpset (fn ss => ss |
1483 Context.theory_map (Induct.map_simpset (fn ss => ss |
1489 addsimprocs |
1484 addsimprocs |
1561 lemma [induct_simp]: "(x = x) = True" |
1556 lemma [induct_simp]: "(x = x) = True" |
1562 by (rule simp_thms) |
1557 by (rule simp_thms) |
1563 |
1558 |
1564 hide_const induct_forall induct_implies induct_equal induct_conj induct_true induct_false |
1559 hide_const induct_forall induct_implies induct_equal induct_conj induct_true induct_false |
1565 |
1560 |
1566 use "~~/src/Tools/induct_tacs.ML" |
1561 ML_file "~~/src/Tools/induct_tacs.ML" |
1567 setup Induct_Tacs.setup |
1562 setup Induct_Tacs.setup |
1568 |
1563 |
1569 |
1564 |
1570 subsubsection {* Coherent logic *} |
1565 subsubsection {* Coherent logic *} |
1571 |
1566 |
1699 val subst = @{thm subst} |
1694 val subst = @{thm subst} |
1700 val sym = @{thm sym} |
1695 val sym = @{thm sym} |
1701 val trans = @{thm trans} |
1696 val trans = @{thm trans} |
1702 *} |
1697 *} |
1703 |
1698 |
1704 use "Tools/cnf_funcs.ML" |
1699 ML_file "Tools/cnf_funcs.ML" |
1705 |
1700 |
1706 subsection {* Code generator setup *} |
1701 subsection {* Code generator setup *} |
1707 |
1702 |
1708 subsubsection {* Generic code generator preprocessor setup *} |
1703 subsubsection {* Generic code generator preprocessor setup *} |
1709 |
1704 |