src/HOL/Inductive.thy
changeset 48891 c0eafbd55de3
parent 48357 828ace4f75ab
child 50302 9149a07a6c67
equal deleted inserted replaced
48890:d72ca5742f80 48891:c0eafbd55de3
     9 keywords
     9 keywords
    10   "inductive" "coinductive" :: thy_decl and
    10   "inductive" "coinductive" :: thy_decl and
    11   "inductive_cases" "inductive_simps" :: thy_script and "monos" and
    11   "inductive_cases" "inductive_simps" :: thy_script and "monos" and
    12   "rep_datatype" :: thy_goal and
    12   "rep_datatype" :: thy_goal and
    13   "primrec" :: thy_decl
    13   "primrec" :: thy_decl
    14 uses
       
    15   ("Tools/inductive.ML")
       
    16   ("Tools/Datatype/datatype_aux.ML")
       
    17   ("Tools/Datatype/datatype_prop.ML")
       
    18   ("Tools/Datatype/datatype_data.ML")
       
    19   ("Tools/Datatype/datatype_case.ML")
       
    20   ("Tools/Datatype/rep_datatype.ML")
       
    21   ("Tools/Datatype/datatype_codegen.ML")
       
    22   ("Tools/Datatype/primrec.ML")
       
    23 begin
    14 begin
    24 
    15 
    25 subsection {* Least and greatest fixed points *}
    16 subsection {* Least and greatest fixed points *}
    26 
    17 
    27 context complete_lattice
    18 context complete_lattice
   262 
   253 
   263 theorems basic_monos =
   254 theorems basic_monos =
   264   subset_refl imp_refl disj_mono conj_mono ex_mono all_mono if_bool_eq_conj
   255   subset_refl imp_refl disj_mono conj_mono ex_mono all_mono if_bool_eq_conj
   265   Collect_mono in_mono vimage_mono
   256   Collect_mono in_mono vimage_mono
   266 
   257 
   267 use "Tools/inductive.ML"
   258 ML_file "Tools/inductive.ML"
   268 setup Inductive.setup
   259 setup Inductive.setup
   269 
   260 
   270 theorems [mono] =
   261 theorems [mono] =
   271   imp_refl disj_mono conj_mono ex_mono all_mono if_bool_eq_conj
   262   imp_refl disj_mono conj_mono ex_mono all_mono if_bool_eq_conj
   272   imp_mono not_mono
   263   imp_mono not_mono
   276 
   267 
   277 subsection {* Inductive datatypes and primitive recursion *}
   268 subsection {* Inductive datatypes and primitive recursion *}
   278 
   269 
   279 text {* Package setup. *}
   270 text {* Package setup. *}
   280 
   271 
   281 use "Tools/Datatype/datatype_aux.ML"
   272 ML_file "Tools/Datatype/datatype_aux.ML"
   282 use "Tools/Datatype/datatype_prop.ML"
   273 ML_file "Tools/Datatype/datatype_prop.ML"
   283 use "Tools/Datatype/datatype_data.ML" setup Datatype_Data.setup
   274 ML_file "Tools/Datatype/datatype_data.ML" setup Datatype_Data.setup
   284 use "Tools/Datatype/datatype_case.ML" setup Datatype_Case.setup
   275 ML_file "Tools/Datatype/datatype_case.ML" setup Datatype_Case.setup
   285 use "Tools/Datatype/rep_datatype.ML"
   276 ML_file "Tools/Datatype/rep_datatype.ML"
   286 use "Tools/Datatype/datatype_codegen.ML" setup Datatype_Codegen.setup
   277 ML_file "Tools/Datatype/datatype_codegen.ML" setup Datatype_Codegen.setup
   287 use "Tools/Datatype/primrec.ML"
   278 ML_file "Tools/Datatype/primrec.ML"
   288 
   279 
   289 text{* Lambda-abstractions with pattern matching: *}
   280 text{* Lambda-abstractions with pattern matching: *}
   290 
   281 
   291 syntax
   282 syntax
   292   "_lam_pats_syntax" :: "cases_syn => 'a => 'b"               ("(%_)" 10)
   283   "_lam_pats_syntax" :: "cases_syn => 'a => 'b"               ("(%_)" 10)