src/HOL/HOL.thy
changeset 48891 c0eafbd55de3
parent 48776 37cd53e69840
child 49339 d1fcb4de8349
equal deleted inserted replaced
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