317 |> fold Variable.declare_term props |
317 |> fold Variable.declare_term props |
318 |> fold_map ProofContext.inferred_param xs; |
318 |> fold_map ProofContext.inferred_param xs; |
319 val asm = Term.list_all_free (parms, Logic.list_implies (props, thesis)); |
319 val asm = Term.list_all_free (parms, Logic.list_implies (props, thesis)); |
320 in |
320 in |
321 ctxt' |> (snd o ProofContext.add_fixes_i (map (fn x => (x, NONE, NoSyn)) xs)); |
321 ctxt' |> (snd o ProofContext.add_fixes_i (map (fn x => (x, NONE, NoSyn)) xs)); |
322 ctxt' |> ProofContext.add_assms_i ProofContext.assume_export |
322 ctxt' |> ProofContext.add_assms_i Assumption.assume_export |
323 [((name, [ContextRules.intro_query NONE]), [(asm, [])])] |
323 [((name, [ContextRules.intro_query NONE]), [(asm, [])])] |
324 |>> (fn [(_, [th])] => th) |
324 |>> (fn [(_, [th])] => th) |
325 end; |
325 end; |
326 val (ths, ctxt') = ctxt |
326 val (ths, ctxt') = ctxt |
327 |> (snd o ProofContext.add_fixes_i [(AutoBind.thesisN, NONE, NoSyn)]) |
327 |> (snd o ProofContext.add_fixes_i [(AutoBind.thesisN, NONE, NoSyn)]) |