equal
deleted
inserted
replaced
5 |
5 |
6 Lemmas and tactics for using the rule coinduct3 on [= and =. |
6 Lemmas and tactics for using the rule coinduct3 on [= and =. |
7 *) |
7 *) |
8 |
8 |
9 val [mono,prem] = goal Lfp.thy "[| mono(f); a : f(lfp(f)) |] ==> a : lfp(f)"; |
9 val [mono,prem] = goal Lfp.thy "[| mono(f); a : f(lfp(f)) |] ==> a : lfp(f)"; |
10 br ((mono RS lfp_Tarski) RS ssubst) 1; |
10 by (rtac ((mono RS lfp_Tarski) RS ssubst) 1); |
11 br prem 1; |
11 by (rtac prem 1); |
12 val lfpI = result(); |
12 val lfpI = result(); |
13 |
13 |
14 val prems = goal CCL.thy "[| a=a'; a' : A |] ==> a : A"; |
14 val prems = goal CCL.thy "[| a=a'; a' : A |] ==> a : A"; |
15 by (simp_tac (term_ss addsimps prems) 1); |
15 by (simp_tac (term_ss addsimps prems) 1); |
16 val ssubst_single = result(); |
16 val ssubst_single = result(); |
39 @ prems)) 1)]); |
39 @ prems)) 1)]); |
40 |
40 |
41 (** POgen **) |
41 (** POgen **) |
42 |
42 |
43 goal Term.thy "<a,a> : PO"; |
43 goal Term.thy "<a,a> : PO"; |
44 br (po_refl RS (XH_to_D PO_iff)) 1; |
44 by (rtac (po_refl RS (XH_to_D PO_iff)) 1); |
45 val PO_refl = result(); |
45 val PO_refl = result(); |
46 |
46 |
47 val POgenIs = map (mk_genIs Term.thy data_defs POgenXH POgen_mono) |
47 val POgenIs = map (mk_genIs Term.thy data_defs POgenXH POgen_mono) |
48 ["<true,true> : POgen(R)", |
48 ["<true,true> : POgen(R)", |
49 "<false,false> : POgen(R)", |
49 "<false,false> : POgen(R)", |
69 (POgenIs RL [POgen_mono RS ci3_AgenI]) @ [POgen_mono RS ci3_RI]) i)); |
69 (POgenIs RL [POgen_mono RS ci3_AgenI]) @ [POgen_mono RS ci3_RI]) i)); |
70 |
70 |
71 (** EQgen **) |
71 (** EQgen **) |
72 |
72 |
73 goal Term.thy "<a,a> : EQ"; |
73 goal Term.thy "<a,a> : EQ"; |
74 br (refl RS (EQ_iff RS iffD1)) 1; |
74 by (rtac (refl RS (EQ_iff RS iffD1)) 1); |
75 val EQ_refl = result(); |
75 val EQ_refl = result(); |
76 |
76 |
77 val EQgenIs = map (mk_genIs Term.thy data_defs EQgenXH EQgen_mono) |
77 val EQgenIs = map (mk_genIs Term.thy data_defs EQgenXH EQgen_mono) |
78 ["<true,true> : EQgen(R)", |
78 ["<true,true> : EQgen(R)", |
79 "<false,false> : EQgen(R)", |
79 "<false,false> : EQgen(R)", |