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