equal
deleted
inserted
replaced
38 | SOME a => a |
38 | SOME a => a |
39 val proof = snd (ProofKernel.import_proof thyname thmname thy) thy |
39 val proof = snd (ProofKernel.import_proof thyname thmname thy) thy |
40 val hol4thm = snd (Replay.replay_proof int_thms thyname thmname proof thy) |
40 val hol4thm = snd (Replay.replay_proof int_thms thyname thmname proof thy) |
41 val thm = snd (ProofKernel.to_isa_thm hol4thm) |
41 val thm = snd (ProofKernel.to_isa_thm hol4thm) |
42 val rew = ProofKernel.rewrite_hol4_term (concl_of thm) thy |
42 val rew = ProofKernel.rewrite_hol4_term (concl_of thm) thy |
43 val thm = equal_elim rew thm |
43 val thm = Thm.equal_elim rew thm |
44 val prew = ProofKernel.rewrite_hol4_term prem thy |
44 val prew = ProofKernel.rewrite_hol4_term prem thy |
45 val prem' = #2 (Logic.dest_equals (prop_of prew)) |
45 val prem' = #2 (Logic.dest_equals (prop_of prew)) |
46 val _ = message ("Import proved " ^ Display.string_of_thm ctxt thm) |
46 val _ = message ("Import proved " ^ Display.string_of_thm ctxt thm) |
47 val thm = ProofKernel.disambiguate_frees thm |
47 val thm = ProofKernel.disambiguate_frees thm |
48 val _ = message ("Disambiguate: " ^ Display.string_of_thm ctxt thm) |
48 val _ = message ("Disambiguate: " ^ Display.string_of_thm ctxt thm) |
51 SOME (_,thm) => |
51 SOME (_,thm) => |
52 let |
52 let |
53 val _ = if prem' aconv (prop_of thm) |
53 val _ = if prem' aconv (prop_of thm) |
54 then message "import: Terms match up" |
54 then message "import: Terms match up" |
55 else message "import: Terms DO NOT match up" |
55 else message "import: Terms DO NOT match up" |
56 val thm' = equal_elim (symmetric prew) thm |
56 val thm' = Thm.equal_elim (Thm.symmetric prew) thm |
57 val res = Thm.bicompose true (false,thm',0) 1 th |
57 val res = Thm.bicompose true (false,thm',0) 1 th |
58 in |
58 in |
59 res |
59 res |
60 end |
60 end |
61 | NONE => (message "import: set_prop didn't succeed"; no_tac th) |
61 | NONE => (message "import: set_prop didn't succeed"; no_tac th) |