src/HOLCF/Lift2.ML
changeset 4098 71e05eb27fb6
parent 3842 b55686a7b22c
child 4721 c8a8482a8124
equal deleted inserted replaced
4097:ddd1c18121e0 4098:71e05eb27fb6
    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);