changeset 59936 | b8ffc3dc9e24 |
parent 59880 | 30687c3f2b10 |
child 61103 | 8ed21464e260 |
59935:343905de27b1 | 59936:b8ffc3dc9e24 |
---|---|
279 |
279 |
280 |
280 |
281 (** outer syntax **) |
281 (** outer syntax **) |
282 |
282 |
283 val _ = |
283 val _ = |
284 Outer_Syntax.local_theory_to_proof @{command_spec "typedef"} |
284 Outer_Syntax.local_theory_to_proof @{command_keyword typedef} |
285 "HOL type definition (requires non-emptiness proof)" |
285 "HOL type definition (requires non-emptiness proof)" |
286 (Parse.type_args_constrained -- Parse.binding -- Parse.opt_mixfix -- |
286 (Parse.type_args_constrained -- Parse.binding -- Parse.opt_mixfix -- |
287 (@{keyword "="} |-- Parse.term) -- |
287 (@{keyword "="} |-- Parse.term) -- |
288 Scan.option (@{keyword "morphisms"} |-- Parse.!!! (Parse.binding -- Parse.binding)) |
288 Scan.option (@{keyword "morphisms"} |-- Parse.!!! (Parse.binding -- Parse.binding)) |
289 >> (fn ((((vs, t), mx), A), morphs) => fn lthy => typedef_cmd ((t, vs, mx), A, morphs) lthy)); |
289 >> (fn ((((vs, t), mx), A), morphs) => fn lthy => typedef_cmd ((t, vs, mx), A, morphs) lthy)); |