src/Pure/Isar/proof_context.ML
changeset 56202 0a11d17eeeff
parent 56158 c2c6d560e7b2
child 56294 85911b8a6868
equal deleted inserted replaced
56201:dd2df97b379b 56202:0a11d17eeeff
  1202 
  1202 
  1203 val apply_case = apfst fst oo case_result;
  1203 val apply_case = apfst fst oo case_result;
  1204 
  1204 
  1205 fun check_case ctxt (name, pos) fxs =
  1205 fun check_case ctxt (name, pos) fxs =
  1206   let
  1206   let
  1207     val (_, ((Rule_Cases.Case {fixes, assumes, binds, cases}, _), _)) =
  1207     val (_, ((Rule_Cases.Case {fixes, assumes, binds, cases}, is_proper), _)) =
  1208       Name_Space.check (Context.Proof ctxt) (cases_of ctxt) (name, pos);
  1208       Name_Space.check (Context.Proof ctxt) (cases_of ctxt) (name, pos);
       
  1209     val _ = if is_proper then () else Context_Position.report ctxt pos Markup.improper;
  1209 
  1210 
  1210     fun replace (opt_x :: xs) ((y, T) :: ys) = (the_default y opt_x, T) :: replace xs ys
  1211     fun replace (opt_x :: xs) ((y, T) :: ys) = (the_default y opt_x, T) :: replace xs ys
  1211       | replace [] ys = ys
  1212       | replace [] ys = ys
  1212       | replace (_ :: _) [] =
  1213       | replace (_ :: _) [] =
  1213           error ("Too many parameters for case " ^ quote name ^ Position.here pos);
  1214           error ("Too many parameters for case " ^ quote name ^ Position.here pos);