Require Import WildCat.Core. (** ** Sum categories *)A, B: Type
H: IsGraph A
H0: IsGraph BIsGraph (A + B)A, B: Type
H: IsGraph A
H0: IsGraph BIsGraph (A + B)A, B: Type
H: IsGraph A
H0: IsGraph BA + B -> A + B -> TypeA, B: Type
H: IsGraph A
H0: IsGraph B
a1, a2: ATypeA, B: Type
H: IsGraph A
H0: IsGraph B
a1: A
b2: BTypeA, B: Type
H: IsGraph A
H0: IsGraph B
b1: B
a2: ATypeA, B: Type
H: IsGraph A
H0: IsGraph B
b1, b2: BTypeexact (a1 $-> a2).A, B: Type
H: IsGraph A
H0: IsGraph B
a1, a2: ATypeexact Empty.A, B: Type
H: IsGraph A
H0: IsGraph B
a1: A
b2: BTypeexact Empty.A, B: Type
H: IsGraph A
H0: IsGraph B
b1: B
a2: ATypeexact (b1 $-> b2). Defined.A, B: Type
H: IsGraph A
H0: IsGraph B
b1, b2: BTypeA, B: Type
H: IsGraph A
H0: Is01Cat A
H1: IsGraph B
H2: Is01Cat BIs01Cat (A + B)A, B: Type
H: IsGraph A
H0: Is01Cat A
H1: IsGraph B
H2: Is01Cat BIs01Cat (A + B)A, B: Type
H: IsGraph A
H0: Is01Cat A
H1: IsGraph B
H2: Is01Cat Bforall a : A + B, a $-> aA, B: Type
H: IsGraph A
H0: Is01Cat A
H1: IsGraph B
H2: Is01Cat Bforall a b c : A + B, (b $-> c) -> (a $-> b) -> a $-> cintros [a | b]; cbn; apply Id.A, B: Type
H: IsGraph A
H0: Is01Cat A
H1: IsGraph B
H2: Is01Cat Bforall a : A + B, a $-> aintros [a | b] [a1 | b1] [a2 | b2]; try contradiction; cbn; exact cat_comp. Defined.A, B: Type
H: IsGraph A
H0: Is01Cat A
H1: IsGraph B
H2: Is01Cat Bforall a b c : A + B, (b $-> c) -> (a $-> b) -> a $-> cA, B: Type
H: IsGraph A
H0: Is2Graph A
H1: IsGraph B
H2: Is2Graph BIs2Graph (A + B)A, B: Type
H: IsGraph A
H0: Is2Graph A
H1: IsGraph B
H2: Is2Graph BIs2Graph (A + B)destruct x as [a1 | b1], y as [a2 | b2]; try contradiction; cbn; exact Hom. Defined. (* Note: [try contradiction] deals with empty cases. *)A, B: Type
H: IsGraph A
H0: Is2Graph A
H1: IsGraph B
H2: Is2Graph B
x, y: A + B(x $-> y) -> (x $-> y) -> TypeA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat BIs1Cat (A + B)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat BIs1Cat (A + B)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall a b : A + B, Is01Cat (a $-> b)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall a b : A + B, Is0Gpd (a $-> b)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b c : A + B) (g : b $-> c), Is0Functor (cat_postcomp a g)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b c : A + B) (f : a $-> b), Is0Functor (cat_precomp c f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b c d : A + B) (f : a $-> b) (g : b $-> c) (h : c $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b c d : A + B) (f : a $-> b) (g : b $-> c) (h : c $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b : A + B) (f : a $-> b), Id b $o f $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b : A + B) (f : a $-> b), f $o Id a $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall a b : A + B, Is01Cat (a $-> b)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
x, y: A + BIs01Cat (x $-> y)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall a : inl a1 $-> inl a2, a $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1: A
b2: Bforall a : inl a1 $-> inr b2, a $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1: B
a2: Aforall a : inr b1 $-> inl a2, a $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall a : inr b1 $-> inr b2, a $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall a b c : inl a1 $-> inl a2, (b $-> c) -> (a $-> b) -> a $-> cA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1: A
b2: Bforall a b c : inl a1 $-> inr b2, (b $-> c) -> (a $-> b) -> a $-> cA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1: B
a2: Aforall a b c : inr b1 $-> inl a2, (b $-> c) -> (a $-> b) -> a $-> cA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall a b c : inr b1 $-> inr b2, (b $-> c) -> (a $-> b) -> a $-> cA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall a : inl a1 $-> inl a2, a $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall a : inr b1 $-> inr b2, a $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall a b c : inl a1 $-> inl a2, (b $-> c) -> (a $-> b) -> a $-> cA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall a b c : inr b1 $-> inr b2, (b $-> c) -> (a $-> b) -> a $-> cA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall a : a1 $-> a2, a $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall a : b1 $-> b2, a $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall a b c : a1 $-> a2, (b $-> c) -> (a $-> b) -> a $-> cA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall a b c : b1 $-> b2, (b $-> c) -> (a $-> b) -> a $-> c1,2: intros a b c; exact cat_comp.A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall a b c : a1 $-> a2, (b $-> c) -> (a $-> b) -> a $-> cA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall a b c : b1 $-> b2, (b $-> c) -> (a $-> b) -> a $-> cA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall a b : A + B, Is0Gpd (a $-> b)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
x, y: A + Bforall a b : x $-> y, (a $-> b) -> b $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall a b : inl a1 $-> inl a2, (a $-> b) -> b $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1: A
b2: Bforall a b : inl a1 $-> inr b2, (a $-> b) -> b $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1: B
a2: Aforall a b : inr b1 $-> inl a2, (a $-> b) -> b $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall a b : inr b1 $-> inr b2, (a $-> b) -> b $-> aall: cbn; intros f g; exact gpd_rev.A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall a b : inl a1 $-> inl a2, (a $-> b) -> b $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall a b : inr b1 $-> inr b2, (a $-> b) -> b $-> aA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b c : A + B) (g : b $-> c), Is0Functor (cat_postcomp a g)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
x, y, z: A + B
h: y $-> zforall a b : x $-> y, (a $-> b) -> cat_postcomp x h a $-> cat_postcomp x h bA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
x, y, z: A + B
h: y $-> z
f, g: x $-> y
p: f $-> gcat_postcomp x h f $-> cat_postcomp x h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
z: A + B
h: inl a2 $-> z
f, g: inl a1 $-> inl a2
p: f $-> gcat_postcomp (inl a1) h f $-> cat_postcomp (inl a1) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1: A
b2: B
z: A + B
h: inr b2 $-> z
f, g: inl a1 $-> inr b2
p: f $-> gcat_postcomp (inl a1) h f $-> cat_postcomp (inl a1) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1: B
a2: A
z: A + B
h: inl a2 $-> z
f, g: inr b1 $-> inl a2
p: f $-> gcat_postcomp (inr b1) h f $-> cat_postcomp (inr b1) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
z: A + B
h: inr b2 $-> z
f, g: inr b1 $-> inr b2
p: f $-> gcat_postcomp (inr b1) h f $-> cat_postcomp (inr b1) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
z: A + B
h: inl a2 $-> z
f, g: inl a1 $-> inl a2
p: f $-> gcat_postcomp (inl a1) h f $-> cat_postcomp (inl a1) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
z: A + B
h: inr b2 $-> z
f, g: inr b1 $-> inr b2
p: f $-> gcat_postcomp (inr b1) h f $-> cat_postcomp (inr b1) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3: A
h: inl a2 $-> inl a3
f, g: inl a1 $-> inl a2
p: f $-> gcat_postcomp (inl a1) h f $-> cat_postcomp (inl a1) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
b3: B
h: inl a2 $-> inr b3
f, g: inl a1 $-> inl a2
p: f $-> gcat_postcomp (inl a1) h f $-> cat_postcomp (inl a1) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
a3: A
h: inr b2 $-> inl a3
f, g: inr b1 $-> inr b2
p: f $-> gcat_postcomp (inr b1) h f $-> cat_postcomp (inr b1) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3: B
h: inr b2 $-> inr b3
f, g: inr b1 $-> inr b2
p: f $-> gcat_postcomp (inr b1) h f $-> cat_postcomp (inr b1) h gall: cbn in *; change (f $== g) in p; exact (h $@L p).A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3: A
h: inl a2 $-> inl a3
f, g: inl a1 $-> inl a2
p: f $-> gcat_postcomp (inl a1) h f $-> cat_postcomp (inl a1) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3: B
h: inr b2 $-> inr b3
f, g: inr b1 $-> inr b2
p: f $-> gcat_postcomp (inr b1) h f $-> cat_postcomp (inr b1) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b c : A + B) (f : a $-> b), Is0Functor (cat_precomp c f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
x, y, z: A + B
h: x $-> yforall a b : y $-> z, (a $-> b) -> cat_precomp z h a $-> cat_precomp z h bA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
x, y, z: A + B
h: x $-> y
f, g: y $-> z
p: f $-> gcat_precomp z h f $-> cat_precomp z h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
z: A + B
h: inl a1 $-> inl a2
f, g: inl a2 $-> z
p: f $-> gcat_precomp z h f $-> cat_precomp z h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1: A
b2: B
z: A + B
h: inl a1 $-> inr b2
f, g: inr b2 $-> z
p: f $-> gcat_precomp z h f $-> cat_precomp z h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1: B
a2: A
z: A + B
h: inr b1 $-> inl a2
f, g: inl a2 $-> z
p: f $-> gcat_precomp z h f $-> cat_precomp z h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
z: A + B
h: inr b1 $-> inr b2
f, g: inr b2 $-> z
p: f $-> gcat_precomp z h f $-> cat_precomp z h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
z: A + B
h: inl a1 $-> inl a2
f, g: inl a2 $-> z
p: f $-> gcat_precomp z h f $-> cat_precomp z h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
z: A + B
h: inr b1 $-> inr b2
f, g: inr b2 $-> z
p: f $-> gcat_precomp z h f $-> cat_precomp z h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3: A
h: inl a1 $-> inl a2
f, g: inl a2 $-> inl a3
p: f $-> gcat_precomp (inl a3) h f $-> cat_precomp (inl a3) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
b3: B
h: inl a1 $-> inl a2
f, g: inl a2 $-> inr b3
p: f $-> gcat_precomp (inr b3) h f $-> cat_precomp (inr b3) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
a3: A
h: inr b1 $-> inr b2
f, g: inr b2 $-> inl a3
p: f $-> gcat_precomp (inl a3) h f $-> cat_precomp (inl a3) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3: B
h: inr b1 $-> inr b2
f, g: inr b2 $-> inr b3
p: f $-> gcat_precomp (inr b3) h f $-> cat_precomp (inr b3) h gall: cbn in *; change (f $== g) in p; exact (p $@R h).A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3: A
h: inl a1 $-> inl a2
f, g: inl a2 $-> inl a3
p: f $-> gcat_precomp (inl a3) h f $-> cat_precomp (inl a3) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3: B
h: inr b1 $-> inr b2
f, g: inr b2 $-> inr b3
p: f $-> gcat_precomp (inr b3) h f $-> cat_precomp (inr b3) h gA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b c d : A + B) (f : a $-> b) (g : b $-> c) (h : c $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall (c d : A + B) (f : inl a1 $-> inl a2) (g : inl a2 $-> c) (h : c $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1: A
b2: Bforall (c d : A + B) (f : inl a1 $-> inr b2) (g : inr b2 $-> c) (h : c $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1: B
a2: Aforall (c d : A + B) (f : inr b1 $-> inl a2) (g : inl a2 $-> c) (h : c $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall (c d : A + B) (f : inr b1 $-> inr b2) (g : inr b2 $-> c) (h : c $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall (c d : A + B) (f : inl a1 $-> inl a2) (g : inl a2 $-> c) (h : c $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall (c d : A + B) (f : inr b1 $-> inr b2) (g : inr b2 $-> c) (h : c $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3: Aforall (d : A + B) (f : inl a1 $-> inl a2) (g : inl a2 $-> inl a3) (h : inl a3 $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
b3: Bforall (d : A + B) (f : inl a1 $-> inl a2) (g : inl a2 $-> inr b3) (h : inr b3 $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
a3: Aforall (d : A + B) (f : inr b1 $-> inr b2) (g : inr b2 $-> inl a3) (h : inl a3 $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3: Bforall (d : A + B) (f : inr b1 $-> inr b2) (g : inr b2 $-> inr b3) (h : inr b3 $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3: Aforall (d : A + B) (f : inl a1 $-> inl a2) (g : inl a2 $-> inl a3) (h : inl a3 $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3: Bforall (d : A + B) (f : inr b1 $-> inr b2) (g : inr b2 $-> inr b3) (h : inr b3 $-> d), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3, a4: Aforall (f : inl a1 $-> inl a2) (g : inl a2 $-> inl a3) (h : inl a3 $-> inl a4), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3: A
b4: Bforall (f : inl a1 $-> inl a2) (g : inl a2 $-> inl a3) (h : inl a3 $-> inr b4), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3: B
a4: Aforall (f : inr b1 $-> inr b2) (g : inr b2 $-> inr b3) (h : inr b3 $-> inl a4), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3, b4: Bforall (f : inr b1 $-> inr b2) (g : inr b2 $-> inr b3) (h : inr b3 $-> inr b4), h $o g $o f $== h $o (g $o f)all: intros f g h; cbn; apply cat_assoc.A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3, a4: Aforall (f : inl a1 $-> inl a2) (g : inl a2 $-> inl a3) (h : inl a3 $-> inl a4), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3, b4: Bforall (f : inr b1 $-> inr b2) (g : inr b2 $-> inr b3) (h : inr b3 $-> inr b4), h $o g $o f $== h $o (g $o f)A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b c d : A + B) (f : a $-> b) (g : b $-> c) (h : c $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall (c d : A + B) (f : inl a1 $-> inl a2) (g : inl a2 $-> c) (h : c $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1: A
b2: Bforall (c d : A + B) (f : inl a1 $-> inr b2) (g : inr b2 $-> c) (h : c $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1: B
a2: Aforall (c d : A + B) (f : inr b1 $-> inl a2) (g : inl a2 $-> c) (h : c $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall (c d : A + B) (f : inr b1 $-> inr b2) (g : inr b2 $-> c) (h : c $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: Aforall (c d : A + B) (f : inl a1 $-> inl a2) (g : inl a2 $-> c) (h : c $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: Bforall (c d : A + B) (f : inr b1 $-> inr b2) (g : inr b2 $-> c) (h : c $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3: Aforall (d : A + B) (f : inl a1 $-> inl a2) (g : inl a2 $-> inl a3) (h : inl a3 $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
b3: Bforall (d : A + B) (f : inl a1 $-> inl a2) (g : inl a2 $-> inr b3) (h : inr b3 $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
a3: Aforall (d : A + B) (f : inr b1 $-> inr b2) (g : inr b2 $-> inl a3) (h : inl a3 $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3: Bforall (d : A + B) (f : inr b1 $-> inr b2) (g : inr b2 $-> inr b3) (h : inr b3 $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3: Aforall (d : A + B) (f : inl a1 $-> inl a2) (g : inl a2 $-> inl a3) (h : inl a3 $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3: Bforall (d : A + B) (f : inr b1 $-> inr b2) (g : inr b2 $-> inr b3) (h : inr b3 $-> d), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3, a4: Aforall (f : inl a1 $-> inl a2) (g : inl a2 $-> inl a3) (h : inl a3 $-> inl a4), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3: A
b4: Bforall (f : inl a1 $-> inl a2) (g : inl a2 $-> inl a3) (h : inl a3 $-> inr b4), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3: B
a4: Aforall (f : inr b1 $-> inr b2) (g : inr b2 $-> inr b3) (h : inr b3 $-> inl a4), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3, b4: Bforall (f : inr b1 $-> inr b2) (g : inr b2 $-> inr b3) (h : inr b3 $-> inr b4), h $o (g $o f) $== h $o g $o fall: intros f g h; cbn; apply cat_assoc_opp.A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2, a3, a4: Aforall (f : inl a1 $-> inl a2) (g : inl a2 $-> inl a3) (h : inl a3 $-> inl a4), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2, b3, b4: Bforall (f : inr b1 $-> inr b2) (g : inr b2 $-> inr b3) (h : inr b3 $-> inr b4), h $o (g $o f) $== h $o g $o fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b : A + B) (f : a $-> b), Id b $o f $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
f: inl a1 $-> inl a2Id (inl a2) $o f $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1: A
b2: B
f: inl a1 $-> inr b2Id (inr b2) $o f $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1: B
a2: A
f: inr b1 $-> inl a2Id (inl a2) $o f $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
f: inr b1 $-> inr b2Id (inr b2) $o f $== fall: cbn; apply cat_idl.A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
f: inl a1 $-> inl a2Id (inl a2) $o f $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
f: inr b1 $-> inr b2Id (inr b2) $o f $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat Bforall (a b : A + B) (f : a $-> b), f $o Id a $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
f: inl a1 $-> inl a2f $o Id (inl a1) $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1: A
b2: B
f: inl a1 $-> inr b2f $o Id (inl a1) $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1: B
a2: A
f: inr b1 $-> inl a2f $o Id (inr b1) $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
f: inr b1 $-> inr b2f $o Id (inr b1) $== fall: cbn; apply cat_idr. Defined.A, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
a1, a2: A
f: inl a1 $-> inl a2f $o Id (inl a1) $== fA, B: Type
IsGraph0: IsGraph A
Is2Graph0: Is2Graph A
Is01Cat0: Is01Cat A
H: Is1Cat A
IsGraph1: IsGraph B
Is2Graph1: Is2Graph B
Is01Cat1: Is01Cat B
H0: Is1Cat B
b1, b2: B
f: inr b1 $-> inr b2f $o Id (inr b1) $== f