src/HOL/Tools/Lifting/lifting_def_code_dt.ML
changeset 60379 51d9dcd71ad7
parent 60239 755e11e2e15d
child 60485 aa4989ee74a5
equal deleted inserted replaced
60378:26dcc7f19b02 60379:51d9dcd71ad7
   734     error error_msg
   734     error error_msg
   735   end
   735   end
   736 
   736 
   737 fun check_rty_err ctxt (rty_schematic, rty_forced) (raw_var, rhs_raw) =
   737 fun check_rty_err ctxt (rty_schematic, rty_forced) (raw_var, rhs_raw) =
   738   let
   738   let
   739     val (_, ctxt') = yield_singleton Proof_Context.read_vars raw_var ctxt
   739     val (_, ctxt') = Proof_Context.read_var raw_var ctxt
   740     val rhs = (Syntax.check_term ctxt' o Syntax.parse_term ctxt') rhs_raw
   740     val rhs = (Syntax.check_term ctxt' o Syntax.parse_term ctxt') rhs_raw
   741     val error_msg = cat_lines
   741     val error_msg = cat_lines
   742        ["Lifting failed for the following term:",
   742        ["Lifting failed for the following term:",
   743         Pretty.string_of (Pretty.block
   743         Pretty.string_of (Pretty.block
   744          [Pretty.str "Term:", Pretty.brk 2, Syntax.pretty_term ctxt rhs]),
   744          [Pretty.str "Term:", Pretty.brk 2, Syntax.pretty_term ctxt rhs]),
   757     end
   757     end
   758 
   758 
   759 fun lift_def_cmd (params, raw_var, rhs_raw, par_xthms) lthy =
   759 fun lift_def_cmd (params, raw_var, rhs_raw, par_xthms) lthy =
   760   let
   760   let
   761     val config = evaluate_params params
   761     val config = evaluate_params params
   762     val ((binding, SOME qty, mx), lthy) = yield_singleton Proof_Context.read_vars raw_var lthy
   762     val ((binding, SOME qty, mx), lthy) = Proof_Context.read_var raw_var lthy
   763     val var = (binding, mx)
   763     val var = (binding, mx)
   764     val rhs = (Syntax.check_term lthy o Syntax.parse_term lthy) rhs_raw
   764     val rhs = (Syntax.check_term lthy o Syntax.parse_term lthy) rhs_raw
   765     val par_thms = Attrib.eval_thms lthy par_xthms
   765     val par_thms = Attrib.eval_thms lthy par_xthms
   766     val (goal, after_qed) = prepare_lift_def (add_lift_def_code_dt config) var qty rhs par_thms lthy
   766     val (goal, after_qed) = prepare_lift_def (add_lift_def_code_dt config) var qty rhs par_thms lthy
   767     val (goal, after_qed) =
   767     val (goal, after_qed) =