equal
deleted
inserted
replaced
255 let |
255 let |
256 val arity = Sign.cert_arity thy raw_arity; |
256 val arity = Sign.cert_arity thy raw_arity; |
257 val names = map (prefix arity_prefix) (Logic.name_arities arity); |
257 val names = map (prefix arity_prefix) (Logic.name_arities arity); |
258 val props = Logic.mk_arities arity; |
258 val props = Logic.mk_arities arity; |
259 val ths = Goal.prove_multi (ProofContext.init thy) [] [] props |
259 val ths = Goal.prove_multi (ProofContext.init thy) [] [] props |
260 (fn _ => Tactic.precise_conjunction_tac (length props) 1 THEN tac) handle ERROR msg => |
260 (fn _ => Goal.precise_conjunction_tac (length props) 1 THEN tac) handle ERROR msg => |
261 cat_error msg ("The error(s) above occurred while trying to prove type arity " ^ |
261 cat_error msg ("The error(s) above occurred while trying to prove type arity " ^ |
262 quote (Sign.string_of_arity thy arity)); |
262 quote (Sign.string_of_arity thy arity)); |
263 in |
263 in |
264 thy |
264 thy |
265 |> PureThy.add_thms (map (rpair []) (names ~~ ths)) |
265 |> PureThy.add_thms (map (rpair []) (names ~~ ths)) |