src/Pure/thm.ML
changeset 70834 614ca81fa28e
parent 70827 730251503341
child 70835 2d991e01a671
equal deleted inserted replaced
70833:e30911cfbd7b 70834:614ca81fa28e
  1041     fun invoke_oracle arg =
  1041     fun invoke_oracle arg =
  1042       let val Cterm {cert = cert2, t = prop, T, maxidx, sorts} = oracle_fn arg in
  1042       let val Cterm {cert = cert2, t = prop, T, maxidx, sorts} = oracle_fn arg in
  1043         if T <> propT then
  1043         if T <> propT then
  1044           raise THM ("Oracle's result must have type prop: " ^ name, 0, [])
  1044           raise THM ("Oracle's result must have type prop: " ^ name, 0, [])
  1045         else
  1045         else
  1046           let val (oracle, prf) = Proofterm.oracle_proof name prop in
  1046           let
       
  1047             val oracle = Proofterm.make_oracle name prop;
       
  1048             val prf = if ! Proofterm.proofs = 2 then Proofterm.oracle_proof name prop else MinProof;
       
  1049           in
  1047             Thm (make_deriv [] [oracle] [] prf,
  1050             Thm (make_deriv [] [oracle] [] prf,
  1048              {cert = Context.join_certificate (Context.Certificate thy', cert2),
  1051              {cert = Context.join_certificate (Context.Certificate thy', cert2),
  1049               tags = [],
  1052               tags = [],
  1050               maxidx = maxidx,
  1053               maxidx = maxidx,
  1051               constraints = [],
  1054               constraints = [],