equal
deleted
inserted
replaced
19 (* -------------------------------------------------------------------------*) |
19 (* -------------------------------------------------------------------------*) |
20 (* type ('a)lift is pointed *) |
20 (* type ('a)lift is pointed *) |
21 (* ------------------------------------------------------------------------ *) |
21 (* ------------------------------------------------------------------------ *) |
22 |
22 |
23 goal Lift2.thy "Undef << x"; |
23 goal Lift2.thy "Undef << x"; |
24 by (simp_tac (!simpset addsimps [inst_lift_po]) 1); |
24 by (simp_tac (simpset() addsimps [inst_lift_po]) 1); |
25 qed"minimal_lift"; |
25 qed"minimal_lift"; |
26 |
26 |
27 bind_thm ("UU_lift_def",minimal_lift RS minimal2UU RS sym); |
27 bind_thm ("UU_lift_def",minimal_lift RS minimal2UU RS sym); |
28 |
28 |
29 qed_goal "least_lift" thy "? x::'a lift.!y. x<<y" |
29 qed_goal "least_lift" thy "? x::'a lift.!y. x<<y" |
81 by (etac spec 1); |
81 by (etac spec 1); |
82 by (rtac sym 1); |
82 by (rtac sym 1); |
83 by (etac spec 1); |
83 by (etac spec 1); |
84 |
84 |
85 by (subgoal_tac "!x y. x<<(y::('a)lift) --> x=Undef | x=y" 1); |
85 by (subgoal_tac "!x y. x<<(y::('a)lift) --> x=Undef | x=y" 1); |
86 by (simp_tac (!simpset addsimps [inst_lift_po]) 2); |
86 by (simp_tac (simpset() addsimps [inst_lift_po]) 2); |
87 by (rtac (chain_mono2_po RS exE) 1); |
87 by (rtac (chain_mono2_po RS exE) 1); |
88 by (Fast_tac 1); |
88 by (Fast_tac 1); |
89 by (atac 1); |
89 by (atac 1); |
90 by (res_inst_tac [("x","Suc(x)")] exI 1); |
90 by (res_inst_tac [("x","Suc(x)")] exI 1); |
91 by (strip_tac 1); |
91 by (strip_tac 1); |