src/CCL/Hered.thy
changeset 27208 5fe899199f85
parent 27146 443c19953137
child 27239 f2f42f9fa09d
equal deleted inserted replaced
27207:548e2d3105b9 27208:5fe899199f85
    95   apply (erule HTT_def [THEN def_coinduct])
    95   apply (erule HTT_def [THEN def_coinduct])
    96   apply assumption
    96   apply assumption
    97   done
    97   done
    98 
    98 
    99 ML {*
    99 ML {*
   100   fun HTT_coinduct_tac s i = res_inst_tac [("R", s)] @{thm HTT_coinduct} i
   100   fun HTT_coinduct_tac ctxt s i =
       
   101     RuleInsts.res_inst_tac ctxt [(("R", 0), s)] @{thm HTT_coinduct} i
   101 *}
   102 *}
   102 
   103 
   103 lemma HTT_coinduct3:
   104 lemma HTT_coinduct3:
   104   "[|  t : R;   R <= HTTgen(lfp(%x. HTTgen(x) Un R Un HTT)) |] ==> t : HTT"
   105   "[|  t : R;   R <= HTTgen(lfp(%x. HTTgen(x) Un R Un HTT)) |] ==> t : HTT"
   105   apply (erule HTTgen_mono [THEN [3] HTT_def [THEN def_coinduct3]])
   106   apply (erule HTTgen_mono [THEN [3] HTT_def [THEN def_coinduct3]])
   107   done
   108   done
   108 
   109 
   109 ML {*
   110 ML {*
   110 val HTT_coinduct3_raw = rewrite_rule [@{thm HTTgen_def}] @{thm HTT_coinduct3}
   111 val HTT_coinduct3_raw = rewrite_rule [@{thm HTTgen_def}] @{thm HTT_coinduct3}
   111 
   112 
   112 fun HTT_coinduct3_tac s i = res_inst_tac [("R",s)] @{thm HTT_coinduct3} i
   113 fun HTT_coinduct3_tac ctxt s i =
       
   114   RuleInsts.res_inst_tac ctxt [(("R", 0), s)] @{thm HTT_coinduct3} i
   113 
   115 
   114 val HTTgenIs =
   116 val HTTgenIs =
   115   map (mk_genIs @{theory} @{thms data_defs} @{thm HTTgenXH} @{thm HTTgen_mono})
   117   map (mk_genIs @{theory} @{thms data_defs} @{thm HTTgenXH} @{thm HTTgen_mono})
   116   ["true : HTTgen(R)",
   118   ["true : HTTgen(R)",
   117    "false : HTTgen(R)",
   119    "false : HTTgen(R)",