src/HOL/Tools/Quotient/quotient_def.ML
changeset 62775 b486f512a471
parent 60752 b48830b670a1
child 62953 48d935524988
equal deleted inserted replaced
62774:cfcb20bbdbd8 62775:b486f512a471
   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