src/HOL/Import/import.ML
changeset 36945 9bec62c10714
parent 33522 737589bb9bb8
child 42361 23f352990944
equal deleted inserted replaced
36944:dbf831a50e4a 36945:9bec62c10714
    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)