src/HOL/Tools/SMT/z3_proof_reconstruction.ML
changeset 44058 ae85c5d64913
parent 43893 f3e75541cb78
child 44488 587bf61a00a1
equal deleted inserted replaced
44057:fda143b5c2f5 44058:ae85c5d64913
   268   val ccontr = Z3_Proof_Tools.precompose dest_ccontr @{thm ccontr}
   268   val ccontr = Z3_Proof_Tools.precompose dest_ccontr @{thm ccontr}
   269 in
   269 in
   270 fun lemma thm ct =
   270 fun lemma thm ct =
   271   let
   271   let
   272     val cu = Z3_Proof_Literals.negate (Thm.dest_arg ct)
   272     val cu = Z3_Proof_Literals.negate (Thm.dest_arg ct)
   273     val hyps = map_filter (try HOLogic.dest_Trueprop) (#hyps (Thm.rep_thm thm))
   273     val hyps = map_filter (try HOLogic.dest_Trueprop) (Thm.hyps_of thm)
   274     val th = Z3_Proof_Tools.under_assumption (intro hyps thm) cu
   274     val th = Z3_Proof_Tools.under_assumption (intro hyps thm) cu
   275   in Thm (Z3_Proof_Tools.compose ccontr th) end
   275   in Thm (Z3_Proof_Tools.compose ccontr th) end
   276 end
   276 end
   277 
   277 
   278 
   278