equal
deleted
inserted
replaced
36 fun dest_eq (Const("Proof",_) $ (Const("op =",_) $ t $ u) $ _) = (t,u); |
36 fun dest_eq (Const("Proof",_) $ (Const("op =",_) $ t $ u) $ _) = (t,u); |
37 |
37 |
38 val imp_intr = impI |
38 val imp_intr = impI |
39 |
39 |
40 (*etac rev_cut_eq moves an equality to be the last premise. *) |
40 (*etac rev_cut_eq moves an equality to be the last premise. *) |
41 val rev_cut_eq = prove_goal (the_context ()) |
41 val rev_cut_eq = prove_goal @{theory} |
42 "[| p:a=b; !!x. x:a=b ==> f(x):R |] ==> ?p:R" |
42 "[| p:a=b; !!x. x:a=b ==> f(x):R |] ==> ?p:R" |
43 (fn prems => [ REPEAT(resolve_tac prems 1) ]); |
43 (fn prems => [ REPEAT(resolve_tac prems 1) ]); |
44 |
44 |
45 val rev_mp = rev_mp |
45 val rev_mp = rev_mp |
46 val subst = subst |
46 val subst = subst |
47 val sym = sym |
47 val sym = sym |
48 val thin_refl = prove_goal (the_context ()) |
48 val thin_refl = prove_goal @{theory} "!!X. [|p:x=x; PROP W|] ==> PROP W" (K [atac 1]); |
49 "!!X. [|p:x=x; PROP W|] ==> PROP W" (K [atac 1]); |
|
50 end; |
49 end; |
51 |
50 |
52 structure Hypsubst = HypsubstFun(Hypsubst_Data); |
51 structure Hypsubst = HypsubstFun(Hypsubst_Data); |
53 open Hypsubst; |
52 open Hypsubst; |
54 *} |
53 *} |