equal
deleted
inserted
replaced
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)", |