equal
deleted
inserted
replaced
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) = |