equal
deleted
inserted
replaced
132 fun gen_quotient_def prep_var parse_term (raw_var, (attr, (raw_lhs, raw_rhs))) lthy = |
132 fun gen_quotient_def prep_var parse_term (raw_var, (attr, (raw_lhs, raw_rhs))) lthy = |
133 let |
133 let |
134 val (opt_var, ctxt) = |
134 val (opt_var, ctxt) = |
135 (case raw_var of |
135 (case raw_var of |
136 NONE => (NONE, lthy) |
136 NONE => (NONE, lthy) |
137 | SOME var => prep_var var lthy |>> SOME) |
137 | SOME var => |
|
138 Proof_Context.set_object_logic_constraint lthy |
|
139 |> prep_var var |
|
140 ||> Proof_Context.restore_object_logic_constraint lthy |
|
141 |>> SOME) |
138 val lhs_constraint = (case opt_var of SOME (_, SOME T, _) => T | _ => dummyT) |
142 val lhs_constraint = (case opt_var of SOME (_, SOME T, _) => T | _ => dummyT) |
139 |
143 |
140 fun prep_term T = parse_term ctxt #> Type.constraint T #> Syntax.check_term ctxt; |
144 fun prep_term T = parse_term ctxt #> Type.constraint T #> Syntax.check_term ctxt; |
141 val lhs = prep_term lhs_constraint raw_lhs |
145 val lhs = prep_term lhs_constraint raw_lhs |
142 val rhs = prep_term dummyT raw_rhs |
146 val rhs = prep_term dummyT raw_rhs |