equal
deleted
inserted
replaced
10 |
10 |
11 (* for compatibility with old HOLCF-Version *) |
11 (* for compatibility with old HOLCF-Version *) |
12 qed_goal "inst_cprod_po" thy "(op <<)=(%x y.fst x<<fst y & snd x<<snd y)" |
12 qed_goal "inst_cprod_po" thy "(op <<)=(%x y.fst x<<fst y & snd x<<snd y)" |
13 (fn prems => |
13 (fn prems => |
14 [ |
14 [ |
15 (fold_goals_tac [po_def,less_cprod_def]), |
15 (fold_goals_tac [less_cprod_def]), |
16 (rtac refl 1) |
16 (rtac refl 1) |
17 ]); |
17 ]); |
18 |
18 |
19 qed_goalw "less_cprod4c" thy [inst_cprod_po RS eq_reflection] |
19 qed_goalw "less_cprod4c" thy [inst_cprod_po RS eq_reflection] |
20 "(x1,y1) << (x2,y2) ==> x1 << x2 & y1 << y2" |
20 "(x1,y1) << (x2,y2) ==> x1 << x2 & y1 << y2" |
69 (fn prems => |
69 (fn prems => |
70 [ |
70 [ |
71 (asm_simp_tac (!simpset addsimps [inst_cprod_po]) 1) |
71 (asm_simp_tac (!simpset addsimps [inst_cprod_po]) 1) |
72 ]); |
72 ]); |
73 |
73 |
74 qed_goal "monofun_pair" thy "[|x1<<x2; y1<<y2|] ==> (x1,y1) << (x2,y2)" |
74 qed_goal "monofun_pair" thy "[|x1<<x2; y1<<y2|] ==> (x1::'a::cpo,y1::'b::cpo)<<(x2,y2)" |
75 (fn prems => |
75 (fn prems => |
76 [ |
76 [ |
77 (cut_facts_tac prems 1), |
77 (cut_facts_tac prems 1), |
78 (rtac trans_less 1), |
78 (rtac trans_less 1), |
79 (rtac (monofun_pair1 RS monofunE RS spec RS spec RS mp RS |
79 (rtac (monofun_pair1 RS monofunE RS spec RS spec RS mp RS |