lean4-htt/tests/lean/run/class_bug2.lean
Daniel Selsam a9b01991c2 feat(frontends/lean/inductive_cmd): new frontend for the inductive cmd
Conflicts:
	src/frontends/lean/CMakeLists.txt
	src/frontends/lean/structure_cmd.h
2016-08-17 07:34:03 -07:00

21 lines
819 B
Text

inductive [class] category (ob : Type) (mor : ob → ob → Type) : Type
| mk : Π (comp : Π⦃A B C : ob⦄, mor B C → mor A B → mor A C)
(id : Π {A : ob}, mor A A),
(Π {A B C D : ob} {f : mor A B} {g : mor B C} {h : mor C D},
comp h (comp g f) = comp (comp h g) f) →
(Π {A B : ob} {f : mor A B}, comp f id = f) →
(Π {A B : ob} {f : mor A B}, comp id f = f) →
category
namespace category
section sec_cat
variable A : Type
inductive [class] foo
| mk : A → foo
variables {ob : Type} {mor : ob → ob → Type} {Cat : category ob mor}
definition compose := category.rec (λ comp id assoc idr idl, comp) Cat
definition id := category.rec (λ comp id assoc idr idl, id) Cat
infixr ∘ := compose
end sec_cat
end category