A Lean Companion to Conceptual Mathematics

Session 17: Some uses of graphsπŸ”—

1. PathsπŸ”—

In the exercises that follow for this Session, we implement the free category 𝑭(G) on each graph G using mathlib's CategoryTheory.Paths V, where V is a quiver (i.e., a directed graph). In particular, we make extensive use of the inductive datatype Quiver.Path, the type of paths through the arrows of the quiver, which we print below for reference.

inductive Quiver.Path.{v, u} : {V : Type u} β†’ [Quiver V] β†’ V β†’ V β†’ Type (max u v) number of parameters: 3 constructors: Quiver.Path.nil : {V : Type u} β†’ [inst : Quiver V] β†’ {a : V} β†’ Quiver.Path a a Quiver.Path.cons : {V : Type u} β†’ [inst : Quiver V] β†’ {a b c : V} β†’ Quiver.Path a b β†’ (b ⟢ c) β†’ Quiver.Path a c#print Quiver.Path
inductive Quiver.Path.{v, u} : {V : Type u} β†’ [Quiver V] β†’ V β†’ V β†’ Type (max u v)
number of parameters: 3
constructors:
Quiver.Path.nil : {V : Type u} β†’ [inst : Quiver V] β†’ {a : V} β†’ Quiver.Path a a
Quiver.Path.cons : {V : Type u} β†’ [inst : Quiver V] β†’ {a b c : V} β†’ Quiver.Path a b β†’ (b ⟢ c) β†’ Quiver.Path a c
Exercise 1 (p. 200)

Danilo noticed that from a graph G we can build a category 𝑭(G), the free category on the graph G. An object is a dot of G, and a map is a path in G. For which of the following graphs does Danilo's category have a terminal object?

Solution: Exercise 1

An object S is terminal in a category if for each object X in the category there is exactly one map from X to S. Only the free category 𝑭(G_b) on the graph (b) and the free category 𝑭(G_c) on the graph (c) have objects that meet this criterion.

(a) 𝑭(G_a) has infinitely many maps from the object to itself (each map corresponding to the path formed by going around the arrow/loop a different number of times).

inductive Dot | x₁ inductive Arrow : Dot β†’ Dot β†’ Type | f₁ : Arrow .x₁ .x₁ instance : Quiver Dot where Hom := Arrow open Limits in example : Β¬(HasTerminal (Paths Dot)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)⊒ False h:HasTerminal (Paths Dot)h_uniq:Unique (Quiver.Path Dot.x₁ Dot.x₁) := uniqueToTerminal Dot.xβ‚βŠ’ False h:HasTerminal (Paths Dot)h_uniq:Unique (Quiver.Path Dot.x₁ Dot.x₁) := uniqueToTerminal Dot.x₁h_sub:Subsingleton (Quiver.Path Dot.x₁ Dot.x₁) := inferInstance⊒ False have h_nontriv : Nontrivial (Quiver.Path Dot.x₁ Dot.x₁) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_uniq:Unique (Quiver.Path Dot.x₁ Dot.x₁) := uniqueToTerminal Dot.x₁h_sub:Subsingleton (Quiver.Path Dot.x₁ Dot.x₁) := inferInstance⊒ βˆƒ x y, x β‰  y h:HasTerminal (Paths Dot)h_uniq:Unique (Quiver.Path Dot.x₁ Dot.x₁) := uniqueToTerminal Dot.x₁h_sub:Subsingleton (Quiver.Path Dot.x₁ Dot.x₁) := inferInstance⊒ Quiver.Path.nil β‰  Quiver.Hom.toPath Arrow.f₁ h:HasTerminal (Paths Dot)h_uniq:Unique (Quiver.Path Dot.x₁ Dot.x₁) := uniqueToTerminal Dot.x₁h_sub:Subsingleton (Quiver.Path Dot.x₁ Dot.x₁) := inferInstancea✝:Quiver.Path.nil = Quiver.Hom.toPath Arrow.fβ‚βŠ’ False All goals completed! πŸ™ All goals completed! πŸ™

(b) The only object in 𝑭(G_b) is terminal, since there is exactly one map from that object to itself, namely the identity map.

inductive Dot | x₁ inductive Arrow : Dot β†’ Dot β†’ Type instance : Quiver Dot where Hom := Arrow open Limits in example : HasTerminal (Paths Dot) := ⊒ HasTerminal (Paths Dot) have h_all_sub : βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁) := ⊒ HasTerminal (Paths Dot) x:Paths Dot⊒ Subsingleton (x ⟢ Dot.x₁) x:Paths Dot⊒ βˆ€ (a b : x ⟢ Dot.x₁), a = b intro f x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.xβ‚βŠ’ f = g x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths Dot} β†’ (x ⟢ Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nil⊒ f = g have h_all_eq_id : βˆ€ {x : Paths Dot} (p : x ⟢ Dot.x₁), P p := ⊒ HasTerminal (Paths Dot) x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths Dot} β†’ (x ⟢ Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.xβ‚βŠ’ P p✝ x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths Dot} β†’ (x ⟢ Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.xβ‚βŠ’ P (πŸ™ Dot.x₁)x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths Dot} β†’ (x ⟢ Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.xβ‚βŠ’ βˆ€ {u v : Dot} (p : (Paths.of Dot).obj v ⟢ Dot.x₁) (q : u ⟢ v), P p β†’ P (p ⊚ (Paths.of Dot).map q) x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths Dot} β†’ (x ⟢ Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.xβ‚βŠ’ P (πŸ™ Dot.x₁) All goals completed! πŸ™ x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths Dot} β†’ (x ⟢ Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.xβ‚βŠ’ βˆ€ {u v : Dot} (p : (Paths.of Dot).obj v ⟢ Dot.x₁) (q : u ⟢ v), P p β†’ P (p ⊚ (Paths.of Dot).map q) intro _ x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths Dot} β†’ (x ⟢ Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.x₁u✝:Dotv✝:Dot⊒ βˆ€ (p : (Paths.of Dot).obj v✝ ⟢ Dot.x₁) (q : u✝ ⟢ v✝), P p β†’ P (p ⊚ (Paths.of Dot).map q) x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths Dot} β†’ (x ⟢ Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝¹:x✝ ⟢ Dot.x₁u✝:Dotv✝:Dotp✝:(Paths.of Dot).obj v✝ ⟢ Dot.xβ‚βŠ’ βˆ€ (q : u✝ ⟢ v✝), P p✝ β†’ P (p✝ ⊚ (Paths.of Dot).map q) x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths Dot} β†’ (x ⟢ Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝¹:x✝ ⟢ Dot.x₁u✝:Dotv✝:Dotp✝:(Paths.of Dot).obj v✝ ⟢ Dot.x₁e:u✝ ⟢ v✝⊒ P p✝ β†’ P (p✝ ⊚ (Paths.of Dot).map e) x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths Dot} β†’ (x ⟢ Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝¹:x✝ ⟢ Dot.x₁u✝:Dotv✝:Dotp✝:(Paths.of Dot).obj v✝ ⟢ Dot.x₁e:u✝ ⟢ v✝a✝:P p✝⊒ P (p✝ ⊚ (Paths.of Dot).map e) All goals completed! πŸ™ All goals completed! πŸ™ have h_all_nonempty : βˆ€ (x : Paths Dot), Nonempty (x ⟢ Dot.x₁) := ⊒ HasTerminal (Paths Dot) h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁) := fun x ↦ { allEq := fun f g ↦ let P := fun {x} p ↦ p = Quiver.Path.nil; have h_all_eq_id := fun {x} p ↦ Paths.induction_fixed_target P (Eq.refl (πŸ™ Dot.x₁)) (fun {u v} p e a ↦ nomatch e) p; Eq.mpr (id (congrArg (fun _a ↦ _a = g) (h_all_eq_id f))) (Eq.mpr (id (congrArg (fun _a ↦ Quiver.Path.nil = _a) (h_all_eq_id g))) (Eq.refl Quiver.Path.nil)) }x:Paths Dot⊒ Nonempty (x ⟢ Dot.x₁) All goals completed! πŸ™ All goals completed! πŸ™

(c) In 𝑭(G_c), the second dot from the right corresponds to a terminal object, since there is exactly one map (path) to that object from every object in 𝑭(G_c). We label the dots from left to right, with x_1 being the upper left dot and x_2 the lower left dot (so x_4 is terminal).

inductive Dot | x₁ | xβ‚‚ | x₃ | xβ‚„ | xβ‚… inductive Arrow : Dot β†’ Dot β†’ Type | f₁ : Arrow .x₁ .x₃ | fβ‚‚ : Arrow .xβ‚‚ .x₃ | f₃ : Arrow .x₃ .xβ‚„ | fβ‚… : Arrow .xβ‚… .xβ‚„ instance : Quiver Dot where Hom := Arrow open Limits in example : HasTerminal (Paths Dot) := ⊒ HasTerminal (Paths Dot) have h_all_sub : βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := ⊒ HasTerminal (Paths Dot) x:Paths Dot⊒ Subsingleton (x ⟢ Dot.xβ‚„) x:Paths Dot⊒ βˆ€ (a b : x ⟢ Dot.xβ‚„), a = b intro f x:Paths Dotf:x ⟢ Dot.xβ‚„g:x ⟢ Dot.xβ‚„βŠ’ f = g f:Dot.x₁ ⟢ Dot.xβ‚„g:Dot.x₁ ⟢ Dot.xβ‚„βŠ’ f = gf:Dot.xβ‚‚ ⟢ Dot.xβ‚„g:Dot.xβ‚‚ ⟢ Dot.xβ‚„βŠ’ f = gf:Dot.x₃ ⟢ Dot.xβ‚„g:Dot.x₃ ⟢ Dot.xβ‚„βŠ’ f = gf:Dot.xβ‚„ ⟢ Dot.xβ‚„g:Dot.xβ‚„ ⟢ Dot.xβ‚„βŠ’ f = gf:Dot.xβ‚… ⟢ Dot.xβ‚„g:Dot.xβ‚… ⟢ Dot.xβ‚„βŠ’ f = g all_goals repeat first | (All goals completed! πŸ™) -- deconstruct f | (All goals completed! πŸ™) -- deconstruct g | ⊒ Quiver.Path.nil.cons Arrow.fβ‚… = Quiver.Path.nil.cons Arrow.fβ‚… | All goals completed! πŸ™ have h_all_nonempty : βˆ€ (x : Paths Dot), Nonempty (x ⟢ Dot.xβ‚„) := ⊒ HasTerminal (Paths Dot) h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := fun x ↦ { allEq := fun f g ↦ Dot.casesOn (motive := fun t ↦ x = t β†’ f = g) x (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Eq.refl (Quiver.Path.nil.cons Arrow.f₃)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.f₁).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― }x:Paths Dot⊒ Nonempty (x ⟢ Dot.xβ‚„) h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := fun x ↦ { allEq := fun f g ↦ Dot.casesOn (motive := fun t ↦ x = t β†’ f = g) x (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Eq.refl (Quiver.Path.nil.cons Arrow.f₃)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.f₁).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― }⊒ Nonempty (Dot.x₁ ⟢ Dot.xβ‚„)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := fun x ↦ { allEq := fun f g ↦ Dot.casesOn (motive := fun t ↦ x = t β†’ f = g) x (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Eq.refl (Quiver.Path.nil.cons Arrow.f₃)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.f₁).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― }⊒ Nonempty (Dot.xβ‚‚ ⟢ Dot.xβ‚„)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := fun x ↦ { allEq := fun f g ↦ Dot.casesOn (motive := fun t ↦ x = t β†’ f = g) x (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Eq.refl (Quiver.Path.nil.cons Arrow.f₃)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.f₁).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― }⊒ Nonempty (Dot.x₃ ⟢ Dot.xβ‚„)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := fun x ↦ { allEq := fun f g ↦ Dot.casesOn (motive := fun t ↦ x = t β†’ f = g) x (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Eq.refl (Quiver.Path.nil.cons Arrow.f₃)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.f₁).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― }⊒ Nonempty (Dot.xβ‚„ ⟢ Dot.xβ‚„)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := fun x ↦ { allEq := fun f g ↦ Dot.casesOn (motive := fun t ↦ x = t β†’ f = g) x (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Eq.refl (Quiver.Path.nil.cons Arrow.f₃)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.f₁).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― }⊒ Nonempty (Dot.xβ‚… ⟢ Dot.xβ‚„) h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := fun x ↦ { allEq := fun f g ↦ Dot.casesOn (motive := fun t ↦ x = t β†’ f = g) x (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Eq.refl (Quiver.Path.nil.cons Arrow.f₃)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.f₁).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― }⊒ Nonempty (Dot.x₁ ⟢ Dot.xβ‚„) All goals completed! πŸ™ h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := fun x ↦ { allEq := fun f g ↦ Dot.casesOn (motive := fun t ↦ x = t β†’ f = g) x (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Eq.refl (Quiver.Path.nil.cons Arrow.f₃)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.f₁).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― }⊒ Nonempty (Dot.xβ‚‚ ⟢ Dot.xβ‚„) All goals completed! πŸ™ h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := fun x ↦ { allEq := fun f g ↦ Dot.casesOn (motive := fun t ↦ x = t β†’ f = g) x (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Eq.refl (Quiver.Path.nil.cons Arrow.f₃)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.f₁).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― }⊒ Nonempty (Dot.x₃ ⟢ Dot.xβ‚„) All goals completed! πŸ™ h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := fun x ↦ { allEq := fun f g ↦ Dot.casesOn (motive := fun t ↦ x = t β†’ f = g) x (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Eq.refl (Quiver.Path.nil.cons Arrow.f₃)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.f₁).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― }⊒ Nonempty (Dot.xβ‚„ ⟢ Dot.xβ‚„) All goals completed! πŸ™ h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := fun x ↦ { allEq := fun f g ↦ Dot.casesOn (motive := fun t ↦ x = t β†’ f = g) x (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.f₁).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₁ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ f ≍ x β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) f (fun h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h h_5 ↦ Eq.symm (eq_of_heq h_5) β–Έ Quiver.Path.casesOn (motive := β‹―) g β‹― β‹― (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons a) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (Quiver.Path.nil.cons Arrow.fβ‚‚).cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚‚), Dot.xβ‚‚ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl f)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ f.cons a = g) (fun f a h h_1 ↦ Eq.symm (eq_of_heq h_1) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ f ≍ x β†’ f.cons Arrow.fβ‚… = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.fβ‚… = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.fβ‚… = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.xβ‚‚ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ (f.cons a).cons Arrow.fβ‚… = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl f)) (Eq.symm h) f_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl f)) (Eq.symm h) f g) (fun h ↦ Eq.ndrec (motive := fun x ↦ βˆ€ (f g : x ⟢ Dot.xβ‚„), f = g) (fun f g ↦ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ f ≍ x β†’ f = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_1.cons a β†’ f = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ f_1.cons a = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ f.cons a = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ f.cons a = g) (fun f a h h_1 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ f ≍ x β†’ f.cons Arrow.f₃ = g) f (fun h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚„ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_1 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_1.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚„ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g_1.cons a) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₃ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) g (fun h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Eq.refl (Quiver.Path.nil.cons Arrow.f₃)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.f₁).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.f₁).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h h_4 ↦ Eq.symm (eq_of_heq h_4) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚‚ = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_3.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons Arrow.fβ‚‚).cons Arrow.f₃) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚‚ = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = ((g_3.cons a).cons Arrow.fβ‚‚).cons Arrow.f₃) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚‚), β‹―) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_3 a) (Eq.refl b) (Eq.refl Dot.xβ‚‚) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚‚) (HEq.refl g)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.f₃) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.x₃) (HEq.refl a)) h a) (Eq.refl Dot.x₃) (HEq.refl g)) (Eq.symm h) g_1 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚„), Dot.xβ‚„ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons a) (fun g a h h_3 ↦ Eq.symm (eq_of_heq h_3) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.xβ‚… = a β†’ g ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) g (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} g_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), g ≍ g_2.cons a β†’ Quiver.Path.nil.cons Arrow.f₃ = g.cons Arrow.fβ‚…) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.xβ‚… = a_2 β†’ a ≍ x β†’ Quiver.Path.nil.cons Arrow.f₃ = (g_2.cons a).cons Arrow.fβ‚…) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (g : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.xβ‚…), Dot.xβ‚… = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ Quiver.Path.nil.cons Arrow.f₃ = (g.cons a).cons Arrow.fβ‚…) (fun g a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) g_2 a) (Eq.refl b) (Eq.refl Dot.xβ‚…) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚…) (HEq.refl g)) (Eq.symm h) g_1 a) (Eq.refl b) (Eq.refl Dot.xβ‚„) (HEq.refl a)) h a) (Eq.refl Dot.xβ‚„) (HEq.refl g)) (fun {b c} f_2 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_2.cons a β†’ f.cons Arrow.f₃ = g) (fun a h ↦ β‹― β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₃ = a_2 β†’ a ≍ x β†’ (f_2.cons a).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Quiver.Path.casesOn (motive := fun a x ↦ Dot.x₁ = a β†’ f ≍ x β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) f (fun h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (fun {b c} f_3 a h ↦ Eq.ndrec (motive := fun {c} ↦ βˆ€ (a : b ⟢ c), f ≍ f_3.cons a β†’ (f.cons Arrow.f₁).cons Arrow.f₃ = g) (fun a h ↦ Eq.symm (eq_of_heq h) β–Έ Arrow.casesOn (motive := fun a_1 a_2 x ↦ b = a_1 β†’ Dot.x₁ = a_2 β†’ a ≍ x β†’ ((f_3.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) a (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.f₁ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.f₃ β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₁), Dot.x₁ = Dot.xβ‚„ β†’ a ≍ Arrow.fβ‚… β†’ ((f.cons a).cons Arrow.f₁).cons Arrow.f₃ = g) (fun f a h ↦ False.elim (noConfusion_of_Nat Dot.ctorIdx h)) (Eq.symm h) f_3 a) (Eq.refl b) (Eq.refl Dot.x₁) (HEq.refl a)) h a) (Eq.refl Dot.x₁) (HEq.refl f)) (Eq.symm h) f_2 a) (fun h ↦ Eq.ndrec (motive := fun {b} ↦ βˆ€ (f : Quiver.Path Dot.x₃ b) (a : b ⟢ Dot.x₃), Dot.x₃ = Dot.x₃ β†’ a ≍ Arrow.fβ‚‚ β†’ (f.cons a).cons Arrow.f₃ = g) (fun f a h h_2 ↦ β‹― β–Έ Quiver.Path.casesOn (motive := β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― β‹―) β‹― β‹―) β‹― β‹―) β‹― β‹― β‹―) β‹― β‹― β‹― }⊒ Nonempty (Dot.xβ‚… ⟢ Dot.xβ‚„) All goals completed! πŸ™ All goals completed! πŸ™

(d) 𝑭(G_d) is similar to 𝑭(G_a) in that each object of 𝑭(G_d) has infinitely many maps from itself to itself and from the other object to itself (each map corresponding to the path formed by going a different number of times around the closed loop of arrows between the two objects).

inductive Dot | x₁ | xβ‚‚ inductive Arrow : Dot β†’ Dot β†’ Type | f₁ : Arrow .x₁ .xβ‚‚ | fβ‚‚ : Arrow .xβ‚‚ .x₁ instance : Quiver Dot where Hom := Arrow open Limits in example : Β¬(HasTerminal (Paths Dot)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)⊒ False have h_all_uniq : βˆ€ (x : Paths Dot), Unique (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)x:Paths Dot⊒ Unique (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_all_sub : βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xx:Paths Dot⊒ Subsingleton (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_nontriv₁ : Nontrivial (Quiver.Path Dot.x₁ Dot.x₁) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstance⊒ βˆƒ x y, x β‰  y h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstance⊒ Quiver.Path.nil β‰  (Quiver.Hom.toPath Arrow.f₁).cons Arrow.fβ‚‚ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstancea✝:Quiver.Path.nil = (Quiver.Hom.toPath Arrow.f₁).cons Arrow.fβ‚‚βŠ’ False All goals completed! πŸ™ have h_nontrivβ‚‚ : Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁) := nontrivial_iff.mpr (Exists.intro Quiver.Path.nil (Exists.intro ((Quiver.Hom.toPath Arrow.f₁).cons Arrow.fβ‚‚) fun a ↦ False.elim (noConfusion_of_Nat Quiver.Path.ctorIdx a)))⊒ βˆƒ x y, x β‰  y h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁) := nontrivial_iff.mpr (Exists.intro Quiver.Path.nil (Exists.intro ((Quiver.Hom.toPath Arrow.f₁).cons Arrow.fβ‚‚) fun a ↦ False.elim (noConfusion_of_Nat Quiver.Path.ctorIdx a)))⊒ Quiver.Path.nil β‰  (Quiver.Hom.toPath Arrow.fβ‚‚).cons Arrow.f₁ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁) := nontrivial_iff.mpr (Exists.intro Quiver.Path.nil (Exists.intro ((Quiver.Hom.toPath Arrow.f₁).cons Arrow.fβ‚‚) fun a ↦ False.elim (noConfusion_of_Nat Quiver.Path.ctorIdx a)))a✝:Quiver.Path.nil = (Quiver.Hom.toPath Arrow.fβ‚‚).cons Arrow.fβ‚βŠ’ False All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁) := nontrivial_iff.mpr (Exists.intro Quiver.Path.nil (Exists.intro ((Quiver.Hom.toPath Arrow.f₁).cons Arrow.fβ‚‚) fun a ↦ False.elim (noConfusion_of_Nat Quiver.Path.ctorIdx a)))h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚) := nontrivial_iff.mpr (Exists.intro Quiver.Path.nil (Exists.intro ((Quiver.Hom.toPath Arrow.fβ‚‚).cons Arrow.f₁) fun a ↦ False.elim (noConfusion_of_Nat Quiver.Path.ctorIdx a)))hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁) := nontrivial_iff.mpr (Exists.intro Quiver.Path.nil (Exists.intro ((Quiver.Hom.toPath Arrow.f₁).cons Arrow.fβ‚‚) fun a ↦ False.elim (noConfusion_of_Nat Quiver.Path.ctorIdx a)))h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚) := nontrivial_iff.mpr (Exists.intro Quiver.Path.nil (Exists.intro ((Quiver.Hom.toPath Arrow.fβ‚‚).cons Arrow.f₁) fun a ↦ False.elim (noConfusion_of_Nat Quiver.Path.ctorIdx a)))hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁) := nontrivial_iff.mpr (Exists.intro Quiver.Path.nil (Exists.intro ((Quiver.Hom.toPath Arrow.f₁).cons Arrow.fβ‚‚) fun a ↦ False.elim (noConfusion_of_Nat Quiver.Path.ctorIdx a)))h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚) := nontrivial_iff.mpr (Exists.intro Quiver.Path.nil (Exists.intro ((Quiver.Hom.toPath Arrow.fβ‚‚).cons Arrow.f₁) fun a ↦ False.elim (noConfusion_of_Nat Quiver.Path.ctorIdx a)))hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁) := nontrivial_iff.mpr (Exists.intro Quiver.Path.nil (Exists.intro ((Quiver.Hom.toPath Arrow.f₁).cons Arrow.fβ‚‚) fun a ↦ False.elim (noConfusion_of_Nat Quiver.Path.ctorIdx a)))h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚) := nontrivial_iff.mpr (Exists.intro Quiver.Path.nil (Exists.intro ((Quiver.Hom.toPath Arrow.fβ‚‚).cons Arrow.f₁) fun a ↦ False.elim (noConfusion_of_Nat Quiver.Path.ctorIdx a)))hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚‚)h_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁)h_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ False All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚‚)h_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False All goals completed! πŸ™

(e) In 𝑭(G_e), the left-hand object has no map from the right-hand object, while the right-hand object has two maps from the left-hand object. We label the dots from left to right.

inductive Dot | x₁ | xβ‚‚ inductive Arrow : Dot β†’ Dot β†’ Type | f₁ : Arrow .x₁ .xβ‚‚ | fβ‚‚ : Arrow .x₁ .xβ‚‚ instance : Quiver Dot where Hom := Arrow open Limits in example : Β¬(HasTerminal (Paths Dot)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)⊒ False have h_all_uniq : βˆ€ (x : Paths Dot), Unique (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)x:Paths Dot⊒ Unique (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_all_sub : βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xx:Paths Dot⊒ Subsingleton (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_empty₁ : Β¬(Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty:Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁)⊒ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstancep:Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ False All goals completed! πŸ™ have h_nontrivβ‚‚ : Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch p⊒ βˆƒ x y, x β‰  y h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch p⊒ Quiver.Hom.toPath Arrow.f₁ β‰  Quiver.Hom.toPath Arrow.fβ‚‚ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch pH:Quiver.Hom.toPath Arrow.f₁ = Quiver.Hom.toPath Arrow.fβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch pb_eq✝:Dot.x₁ = Dot.x₁h_arrow:Dot.xβ‚‚ = Dot.xβ‚‚a_eq✝¹:Quiver.Path.nil = Quiver.Path.nila_eq✝:Arrow.f₁ = Arrow.fβ‚‚βŠ’ False All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch ph_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚) := nontrivial_iff.mpr (Exists.intro (Quiver.Hom.toPath Arrow.f₁) (Exists.intro (Quiver.Hom.toPath Arrow.fβ‚‚) fun H ↦ Quiver.Path.cons.noConfusion (Eq.refl Dot.xβ‚‚) (heq_of_eq H) fun b_eq h_arrow a_eq a_eq_1 ↦ False.elim (noConfusion_of_Nat Arrow.ctorIdx (eq_of_heq a_eq_1))))hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch ph_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚) := nontrivial_iff.mpr (Exists.intro (Quiver.Hom.toPath Arrow.f₁) (Exists.intro (Quiver.Hom.toPath Arrow.fβ‚‚) fun H ↦ Quiver.Path.cons.noConfusion (Eq.refl Dot.xβ‚‚) (heq_of_eq H) fun b_eq h_arrow a_eq a_eq_1 ↦ False.elim (noConfusion_of_Nat Arrow.ctorIdx (eq_of_heq a_eq_1))))hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch ph_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚) := nontrivial_iff.mpr (Exists.intro (Quiver.Hom.toPath Arrow.f₁) (Exists.intro (Quiver.Hom.toPath Arrow.fβ‚‚) fun H ↦ Quiver.Path.cons.noConfusion (Eq.refl Dot.xβ‚‚) (heq_of_eq H) fun b_eq h_arrow a_eq a_eq_1 ↦ False.elim (noConfusion_of_Nat Arrow.ctorIdx (eq_of_heq a_eq_1))))hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₁)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁)h_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₁)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁)h_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.x₁h_uniq₁:Unique (Quiver.Path Dot.xβ‚‚ Dot.x₁) := h_all_uniq Dot.xβ‚‚βŠ’ False have h_nonempty₁ : Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁) := ⊒ Β¬HasTerminal (Paths Dot) All goals completed! πŸ™ All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch ph_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚) := nontrivial_iff.mpr (Exists.intro (Quiver.Hom.toPath Arrow.f₁) (Exists.intro (Quiver.Hom.toPath Arrow.fβ‚‚) fun H ↦ Quiver.Path.cons.noConfusion (Eq.refl Dot.xβ‚‚) (heq_of_eq H) fun b_eq h_arrow a_eq a_eq_1 ↦ False.elim (noConfusion_of_Nat Arrow.ctorIdx (eq_of_heq a_eq_1))))hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚‚)h_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False All goals completed! πŸ™

(f) In 𝑭(G_f), neither the leftmost object nor the centre object has a map from the rightmost object, while the rightmost object has no map from either the leftmost object nor the centre object. We label the dots from left to right again.

inductive Dot | x₁ | xβ‚‚ | x₃ inductive Arrow : Dot β†’ Dot β†’ Type | f₁ : Arrow .xβ‚‚ .x₁ instance : Quiver Dot where Hom := Arrow open Limits in example : Β¬(HasTerminal (Paths Dot)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)⊒ False have h_all_uniq : βˆ€ (x : Paths Dot), Unique (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)x:Paths Dot⊒ Unique (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_all_sub : βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xx:Paths Dot⊒ Subsingleton (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_empty₁ : Β¬(Nonempty (Quiver.Path Dot.x₃ Dot.x₁)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty:Nonempty (Quiver.Path Dot.x₃ Dot.x₁)⊒ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstancep:Quiver.Path Dot.x₃ Dot.xβ‚βŠ’ False match p with h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstancep:Quiver.Path Dot.x₃ Dot.x₁b✝:Dotp':Quiver.Path Dot.x₃ b✝q:b✝ ⟢ Dot.xβ‚βŠ’ False match p' with h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstancep:Quiver.Path Dot.x₃ Dot.x₁b✝:Dotp':Quiver.Path Dot.x₃ b✝q:Dot.x₃ ⟢ Dot.xβ‚βŠ’ False All goals completed! πŸ™ have h_emptyβ‚‚ : Β¬(Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ match p with | p'.cons q => match b, p', q with | .(Dot.x₃), Quiver.Path.nil, q => nomatch qh_empty:Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)⊒ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ match p with | p'.cons q => match b, p', q with | .(Dot.x₃), Quiver.Path.nil, q => nomatch qp:Quiver.Path Dot.x₃ Dot.xβ‚‚βŠ’ False All goals completed! πŸ™ have h_empty₃ : Β¬(Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ match p with | p'.cons q => match b, p', q with | .(Dot.x₃), Quiver.Path.nil, q => nomatch qh_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch ph_empty:Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)⊒ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ match p with | p'.cons q => match b, p', q with | .(Dot.x₃), Quiver.Path.nil, q => nomatch qh_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch pp:Quiver.Path Dot.xβ‚‚ Dot.xβ‚ƒβŠ’ False All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ match p with | p'.cons q => match b, p', q with | .(Dot.x₃), Quiver.Path.nil, q => nomatch qh_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch ph_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch phx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ match p with | p'.cons q => match b, p', q with | .(Dot.x₃), Quiver.Path.nil, q => nomatch qh_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch ph_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch phx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ match p with | p'.cons q => match b, p', q with | .(Dot.x₃), Quiver.Path.nil, q => nomatch qh_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch ph_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch phx:(⊀_ Paths Dot) = Dot.xβ‚ƒβŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ match p with | p'.cons q => match b, p', q with | .(Dot.x₃), Quiver.Path.nil, q => nomatch qh_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch ph_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch phx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ match p with | p'.cons q => match b, p', q with | .(Dot.x₃), Quiver.Path.nil, q => nomatch qh_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch ph_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch phx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ ⊀_ Paths Dot) := fun x ↦ uniqueToTerminal xh_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := fun x ↦ inferInstanceh_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ match p with | p'.cons q => match b, p', q with | .(Dot.x₃), Quiver.Path.nil, q => nomatch qh_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch ph_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃) := id fun h_empty ↦ Nonempty.casesOn h_empty fun p ↦ nomatch phx:(⊀_ Paths Dot) = Dot.xβ‚ƒβŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₃)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₃)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.xβ‚ƒβŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₁)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₁)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.x₁h_uniq₁:Unique (Quiver.Path Dot.x₃ Dot.x₁) := h_all_uniq Dot.xβ‚ƒβŠ’ False have h_nonemptyβ‚‚ : Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := ⊒ Β¬HasTerminal (Paths Dot) All goals completed! πŸ™ All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.xβ‚‚)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚‚)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.xβ‚‚)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚‚)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.xβ‚‚h_uniqβ‚‚:Unique (Quiver.Path Dot.x₃ Dot.xβ‚‚) := h_all_uniq Dot.xβ‚ƒβŠ’ False have h_nonemptyβ‚‚ : Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚) := ⊒ Β¬HasTerminal (Paths Dot) All goals completed! πŸ™ All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₃)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₃)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.xβ‚ƒβŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₃)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₃)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.x₃h_uniq₃:Unique (Quiver.Path Dot.xβ‚‚ Dot.x₃) := h_all_uniq Dot.xβ‚‚βŠ’ False have h_nonempty₃ : Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃) := ⊒ Β¬HasTerminal (Paths Dot) All goals completed! πŸ™ All goals completed! πŸ™

3. Commuting diagramsπŸ”—

Definition: Commutes (p. 201)

We say that a diagram of shape G in π’ž commutes if for each pair p, q of dots in G, all paths in G from p to q are interpreted as the same map in π’ž.

The "interpretation" of dots in G as objects of π’ž and paths in G as maps of π’ž is performed by a functor from the free category 𝑭(G) to π’ž, written in Lean as CategoryTheory.Paths Dot β₯€ π’ž, where p q : Dot.

Exercise 2 (p. 202)

Show that a diagram of shape

inductive Dot | x₁ | xβ‚‚ inductive Arrow : Dot β†’ Dot β†’ Type | f : Arrow .x₁ .xβ‚‚ | g : Arrow .xβ‚‚ .x₁ instance : Quiver Dot where Hom := Arrow

commutes if and only if the maps assigned to the two arrows are inverse.

Solution: Exercise 2

We need to show that under a functor from the free category 𝑭(G) to π’ž, all paths between each pair of dots in 𝑭(G) correspond to the same map in π’ž if and only if the two arrows in the graph correspond to inverse maps in π’ž. Since there are four possible pairings of dots, the proof of the backward ("if") direction contains four parts.

example {π’ž : Type u} [Category.{v, u} π’ž] (F : Paths Dot β₯€ π’ž) : -- Let x₁' be the object in π’ž associated with Dot.x₁ in 𝐹(G) let x₁' : π’ž := F.obj Dot.x₁ -- Let xβ‚‚' be the object in π’ž associated with Dot.xβ‚‚ in 𝐹(G) let xβ‚‚' : π’ž := F.obj Dot.xβ‚‚ -- Let f' be the morphism in π’ž associated with Arrow.f in 𝐹(G) let f' : x₁' ⟢ xβ‚‚' := F.map (Quiver.Hom.toPath Arrow.f) -- Let g' be the morphism in π’ž associated with Arrow.g in 𝐹(G) let g' : xβ‚‚' ⟢ x₁' := F.map (Quiver.Hom.toPath Arrow.g) -- Dot.x₁ ⟢ Dot.x₁ is interpreted as the identity on x₁' in π’ž (βˆ€ p₁ : Quiver.Path Dot.x₁ Dot.x₁, F.map p₁ = πŸ™ x₁') ∧ -- Dot.xβ‚‚ ⟢ Dot.xβ‚‚ is interpreted as the identity on xβ‚‚' in π’ž (βˆ€ pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚, F.map pβ‚‚ = πŸ™ xβ‚‚') ∧ -- Dot.x₁ ⟢ Dot.xβ‚‚ is interpreted as f' in π’ž (βˆ€ p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚, F.map p₁₂ = f') ∧ -- Dot.xβ‚‚ ⟢ Dot.x₁ is interpreted as g' in π’ž (βˆ€ p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁, F.map p₂₁ = g') ↔ -- The maps assigned to the two arrows in G are inverse g' ⊚ f' = πŸ™ x₁' ∧ f' ⊚ g' = πŸ™ xβ‚‚' := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ let x₁' := F.obj Dot.x₁; let xβ‚‚' := F.obj Dot.xβ‚‚; let f' := F.map (Quiver.Hom.toPath Arrow.f); let g' := F.map (Quiver.Hom.toPath Arrow.g); ((βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ x₁') ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ xβ‚‚') ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = f') ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = g') ↔ g' ⊚ f' = πŸ™ x₁' ∧ f' ⊚ g' = πŸ™ xβ‚‚' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ ((βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)) β†’ F.map (Quiver.Hom.toPath Arrow.g) ⊚ F.map (Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f) ⊚ F.map (Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ F.map (Quiver.Hom.toPath Arrow.g) ⊚ F.map (Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f) ⊚ F.map (Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) β†’ (βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) -- Proof of the forward ("only if") direction π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ ((βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)) β†’ F.map (Quiver.Hom.toPath Arrow.g) ⊚ F.map (Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f) ⊚ F.map (Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) repeat π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ ((βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)) β†’ F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)hβ‚‚:βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)h₁₂:βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)h₂₁:βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)⊒ F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)hβ‚‚:βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)h₁₂:βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)h₂₁:βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)⊒ F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)hβ‚‚:βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)h₁₂:βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)h₂₁:βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)⊒ F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)hβ‚‚:βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)h₁₂:βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)h₂₁:βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)⊒ F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)hβ‚‚:βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)h₁₂:βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)h₂₁:βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)⊒ F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) All goals completed! πŸ™ -- Proof of the backward ("if") direction π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ F.map (Quiver.Hom.toPath Arrow.g) ⊚ F.map (Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f) ⊚ F.map (Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) β†’ (βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) repeat π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) β†’ (βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ (βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) -- βˆ€ p₁ : Quiver.Path Dot.x₁ Dot.x₁, F.map p₁ = πŸ™ x₁' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁) let rec aux₁ (p : Quiver.Path Dot.x₁ Dot.x₁) : F.map p = πŸ™ (F.obj Dot.x₁) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map p = πŸ™ (F.obj Dot.x₁) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map Quiver.Path.nil = πŸ™ (F.obj Dot.x₁) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.x₁tail:Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map (tail.cons Arrow.g) = πŸ™ (F.obj Dot.x₁) match tail with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.x₁tail:Quiver.Path Dot.x₁ Dot.xβ‚‚tail':Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map ((tail'.cons Arrow.f).cons Arrow.g) = πŸ™ (F.obj Dot.x₁) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.x₁tail:Quiver.Path Dot.x₁ Dot.xβ‚‚tail':Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map ((Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) ⊚ tail') = πŸ™ (F.obj Dot.x₁) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.x₁tail:Quiver.Path Dot.x₁ Dot.xβ‚‚tail':Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map tail' = πŸ™ (F.obj Dot.x₁) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map p = πŸ™ (F.obj Dot.x₁) All goals completed! πŸ™ -- βˆ€ pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚, F.map pβ‚‚ = πŸ™ xβ‚‚' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚) let rec auxβ‚‚ (p : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚) : F.map p = πŸ™ (F.obj Dot.xβ‚‚) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map p = πŸ™ (F.obj Dot.xβ‚‚) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map Quiver.Path.nil = πŸ™ (F.obj Dot.xβ‚‚) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map (tail.cons Arrow.f) = πŸ™ (F.obj Dot.xβ‚‚) match tail with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail:Quiver.Path Dot.xβ‚‚ Dot.x₁tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map ((tail'.cons Arrow.g).cons Arrow.f) = πŸ™ (F.obj Dot.xβ‚‚) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail:Quiver.Path Dot.xβ‚‚ Dot.x₁tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map ((Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) ⊚ tail') = πŸ™ (F.obj Dot.xβ‚‚) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail:Quiver.Path Dot.xβ‚‚ Dot.x₁tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map tail' = πŸ™ (F.obj Dot.xβ‚‚) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map p = πŸ™ (F.obj Dot.xβ‚‚) All goals completed! πŸ™ -- βˆ€ p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚, F.map p₁₂ = f' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f) let rec aux₁₂ (p : Quiver.Path Dot.x₁ Dot.xβ‚‚) : F.map p = F.map (Quiver.Hom.toPath Arrow.f) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map p = F.map (Quiver.Hom.toPath Arrow.f) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚tail:Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map (tail.cons Arrow.f) = F.map (Quiver.Hom.toPath Arrow.f) match tail with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚tail:Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map (Quiver.Path.nil.cons Arrow.f) = F.map (Quiver.Hom.toPath Arrow.f) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚tail:Quiver.Path Dot.x₁ Dot.x₁tail':Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map ((tail'.cons Arrow.g).cons Arrow.f) = F.map (Quiver.Hom.toPath Arrow.f) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚tail:Quiver.Path Dot.x₁ Dot.x₁tail':Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map ((Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) ⊚ tail') = F.map (Quiver.Hom.toPath Arrow.f) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚tail:Quiver.Path Dot.x₁ Dot.x₁tail':Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map tail' = F.map (Quiver.Hom.toPath Arrow.f) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map p = F.map (Quiver.Hom.toPath Arrow.f) All goals completed! πŸ™ -- βˆ€ p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁, F.map p₂₁ = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) let rec aux₂₁ (p : Quiver.Path Dot.xβ‚‚ Dot.x₁) : F.map p = F.map (Quiver.Hom.toPath Arrow.g) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map p = F.map (Quiver.Hom.toPath Arrow.g) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.x₁tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map (tail.cons Arrow.g) = F.map (Quiver.Hom.toPath Arrow.g) match tail with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.x₁tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map (Quiver.Path.nil.cons Arrow.g) = F.map (Quiver.Hom.toPath Arrow.g) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.x₁tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map ((tail'.cons Arrow.f).cons Arrow.g) = F.map (Quiver.Hom.toPath Arrow.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.x₁tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map ((Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) ⊚ tail') = F.map (Quiver.Hom.toPath Arrow.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.x₁tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map tail' = F.map (Quiver.Hom.toPath Arrow.g) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map p = F.map (Quiver.Hom.toPath Arrow.g) All goals completed! πŸ™
Exercise 3 (p. 203)

In the diagram

inductive Vertex | A | B | C | D | E | F | G | H inductive Edge : Vertex β†’ Vertex β†’ Type | f : Edge .A .B | g : Edge .B .C | h : Edge .C .D | i : Edge .A .E | j : Edge .B .F | k : Edge .C .G | l : Edge .D .H | m : Edge .E .F | n : Edge .F .G | p : Edge .G .H instance : Quiver Vertex where Hom := Edge

the three equations (1) {jf = mi}, (2) {kg = nj}, (3) {lh = pk} actually force the diagram to commute; but you are just asked to prove that pnmi = lhgf

Solution: Exercise 3

We can prove this directly in the free category on the graph using only the associative property of path composition.

open Edge Quiver Quiver.Hom Quiver.Path Vertex in example (h₁ : (toPath f |>.comp (toPath j)) = (toPath i |>.comp (toPath m) : Path A F)) (hβ‚‚ : (toPath g |>.comp (toPath k)) = (toPath j |>.comp (toPath n) : Path B G)) (h₃ : (toPath h |>.comp (toPath l)) = (toPath k |>.comp (toPath p) : Path C H)) : (toPath i |>.comp (toPath m) |>.comp (toPath n) |>.comp (toPath p)) = (toPath f |>.comp (toPath g) |>.comp (toPath h) |>.comp (Hom.toPath l) : Path A H) := h₁:(toPath f).comp (toPath j) = (toPath i).comp (toPath m)hβ‚‚:(toPath g).comp (toPath k) = (toPath j).comp (toPath n)h₃:(toPath h).comp (toPath l) = (toPath k).comp (toPath p)⊒ (((toPath i).comp (toPath m)).comp (toPath n)).comp (toPath p) = (((toPath f).comp (toPath g)).comp (toPath h)).comp (toPath l) h₁:(toPath f).comp (toPath j) = (toPath i).comp (toPath m)hβ‚‚:(toPath g).comp (toPath k) = (toPath j).comp (toPath n)h₃:(toPath h).comp (toPath l) = (toPath k).comp (toPath p)⊒ ((toPath f).comp (toPath j)).comp ((toPath n).comp (toPath p)) = (((toPath f).comp (toPath g)).comp (toPath h)).comp (toPath l) h₁:(toPath f).comp (toPath j) = (toPath i).comp (toPath m)hβ‚‚:(toPath g).comp (toPath k) = (toPath j).comp (toPath n)h₃:(toPath h).comp (toPath l) = (toPath k).comp (toPath p)⊒ ((toPath f).comp ((toPath g).comp (toPath k))).comp (toPath p) = (((toPath f).comp (toPath g)).comp (toPath h)).comp (toPath l) h₁:(toPath f).comp (toPath j) = (toPath i).comp (toPath m)hβ‚‚:(toPath g).comp (toPath k) = (toPath j).comp (toPath n)h₃:(toPath h).comp (toPath l) = (toPath k).comp (toPath p)⊒ (toPath f).comp ((toPath g).comp ((toPath h).comp (toPath l))) = (((toPath f).comp (toPath g)).comp (toPath h)).comp (toPath l) repeat All goals completed! πŸ™
Exercise 4 (p. 203)

For each of these diagrams, find a shortest list of equations that will make it commute.

...

After you have found the answers try to explain clearly how you know, from the equations you chose, that all possible paths give equal composites.

Solution: Exercise 4

(a) A shortest list of equations that will make diagram (a) commute is: gf = 1_A, \quad fg = 1_B, \quad g = h

(cf. Exercise 2 above.)

inductive Vertex | A | B inductive Edge : Vertex β†’ Vertex β†’ Type | f : Edge .A .B | g : Edge .B .A | h : Edge .B .A instance : Quiver Vertex where Hom := Edge example {π’ž : Type u} [Category.{v, u} π’ž] (F : Paths Vertex β₯€ π’ž) : -- Let A' be the object in π’ž associated with Vertex.A in 𝐹(G) let A' : π’ž := F.obj Vertex.A -- Let B' be the object in π’ž associated with Vertex.B in 𝐹(G) let B' : π’ž := F.obj Vertex.B -- Let f' be the morphism in π’ž associated with Edge.f in 𝐹(G) let f' : A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f) -- Let g' be the morphism in π’ž associated with Edge.g in 𝐹(G) let g' : B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g) -- Let h' be the morphism in π’ž associated with Edge.h in 𝐹(G) let h' : B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h) -- The 3 equations required to make the diagram commute g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ -- .A ⟢ .A is interpreted as the identity on A' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.A, F.map p = πŸ™ A') ∧ -- .B ⟢ .B is interpreted as the identity on B' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.B, F.map p = πŸ™ B') ∧ -- .A ⟢ .B is interpreted as f' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.B, F.map p = f') ∧ -- .B ⟢ .A is interpreted as g' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.A, F.map p = g') := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žβŠ’ let A' := F.obj Vertex.A; let B' := F.obj Vertex.B; let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' intro A' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.B⊒ let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)⊒ let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)⊒ let h' := F.map (Quiver.Hom.toPath Edge.h); g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)⊒ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:g' ⊚ f' = πŸ™ A'hβ‚‚:f' ⊚ g' = πŸ™ B'h₃:g' = h'⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' -- βˆ€ p : Quiver.Path Vertex.A Vertex.A, F.map p = πŸ™ A' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A' let rec auxAA (p : Quiver.Path Vertex.A Vertex.A) : F.map p = πŸ™ (F.obj Vertex.A) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.A⊒ F.map p = πŸ™ (F.obj Vertex.A) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.A⊒ F.map Quiver.Path.nil = πŸ™ (F.obj Vertex.A) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.Ae:Vertex.B ⟢ Vertex.A⊒ F.map ((tail.cons Edge.f).cons e) = πŸ™ (F.obj Vertex.A) have : F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.A⊒ F.map p = πŸ™ (F.obj Vertex.A) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.g) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.h) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.g) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.h) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.A⊒ F.map (Quiver.Hom.toPath Edge.h ⊚ Quiver.Hom.toPath Edge.f ⊚ tail) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.Ae:Vertex.B ⟢ Vertex.Athis:F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) := Edge.casesOn (motive := fun a a_1 x ↦ Vertex.B = a β†’ Vertex.A = a_1 β†’ e ≍ x β†’ F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) e (fun h ↦ False.elim (noConfusion_of_Nat Vertex.ctorIdx h)) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Eq.refl (F.map ((tail.cons Edge.f).cons Edge.g))) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ id (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (F.map_comp (Quiver.Hom.toPath Edge.f ⊚ tail) (Quiver.Hom.toPath Edge.h)))) (Eq.mpr (id (congrArg (fun _a ↦ _a ⊚ F.map (Quiver.Hom.toPath Edge.f ⊚ tail) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Eq.symm h₃))) (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Eq.symm (F.map_comp (Quiver.Hom.toPath Edge.f ⊚ tail) (Quiver.Hom.toPath Edge.g))))) (Eq.mpr (id (congrArg (fun _a ↦ F.map _a = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Category.assoc tail (Quiver.Hom.toPath Edge.f) (Quiver.Hom.toPath Edge.g)))) (Eq.refl (F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)))))))) (Eq.refl Vertex.B) (Eq.refl Vertex.A) (HEq.refl e)⊒ F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) = πŸ™ (F.obj Vertex.A) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.Ae:Vertex.B ⟢ Vertex.Athis:F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) := Edge.casesOn (motive := fun a a_1 x ↦ Vertex.B = a β†’ Vertex.A = a_1 β†’ e ≍ x β†’ F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) e (fun h ↦ False.elim (noConfusion_of_Nat Vertex.ctorIdx h)) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Eq.refl (F.map ((tail.cons Edge.f).cons Edge.g))) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ id (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (F.map_comp (Quiver.Hom.toPath Edge.f ⊚ tail) (Quiver.Hom.toPath Edge.h)))) (Eq.mpr (id (congrArg (fun _a ↦ _a ⊚ F.map (Quiver.Hom.toPath Edge.f ⊚ tail) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Eq.symm h₃))) (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Eq.symm (F.map_comp (Quiver.Hom.toPath Edge.f ⊚ tail) (Quiver.Hom.toPath Edge.g))))) (Eq.mpr (id (congrArg (fun _a ↦ F.map _a = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Category.assoc tail (Quiver.Hom.toPath Edge.f) (Quiver.Hom.toPath Edge.g)))) (Eq.refl (F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)))))))) (Eq.refl Vertex.B) (Eq.refl Vertex.A) (HEq.refl e)⊒ F.map tail = πŸ™ (F.obj Vertex.A) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.A⊒ F.map p = πŸ™ A' All goals completed! πŸ™ -- βˆ€ p : Quiver.Path Vertex.B Vertex.B, F.map p = πŸ™ B' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B' let rec auxBB (p : Quiver.Path Vertex.B Vertex.B) : F.map p = πŸ™ (F.obj Vertex.B) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.B⊒ F.map p = πŸ™ (F.obj Vertex.B) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.B⊒ F.map Quiver.Path.nil = πŸ™ (F.obj Vertex.B) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.Be:Vertex.B ⟢ Vertex.A⊒ F.map ((tail.cons e).cons Edge.f) = πŸ™ (F.obj Vertex.B) have : F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.B⊒ F.map p = πŸ™ (F.obj Vertex.B) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.B⊒ F.map ((tail.cons Edge.g).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.B⊒ F.map ((tail.cons Edge.h).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.B⊒ F.map ((tail.cons Edge.g).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.B⊒ F.map ((tail.cons Edge.h).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.B⊒ F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.h ⊚ tail) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.Be:Vertex.B ⟢ Vertex.Athis:F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) := Edge.casesOn (motive := fun a a_1 x ↦ Vertex.B = a β†’ Vertex.A = a_1 β†’ e ≍ x β†’ F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) e (fun h ↦ False.elim (noConfusion_of_Nat Vertex.ctorIdx h)) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Eq.refl (F.map ((tail.cons Edge.g).cons Edge.f))) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ id (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (F.map_comp (Quiver.Hom.toPath Edge.h ⊚ tail) (Quiver.Hom.toPath Edge.f)))) (Eq.mpr (id (congrArg (fun _a ↦ F.map (Quiver.Hom.toPath Edge.f) ⊚ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (F.map_comp tail (Quiver.Hom.toPath Edge.h)))) (Eq.mpr (id (congrArg (fun _a ↦ F.map (Quiver.Hom.toPath Edge.f) ⊚ _a ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm h₃))) (Eq.mpr (id (congrArg (fun _a ↦ F.map (Quiver.Hom.toPath Edge.f) ⊚ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm (F.map_comp tail (Quiver.Hom.toPath Edge.g))))) (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm (F.map_comp (Quiver.Hom.toPath Edge.g ⊚ tail) (Quiver.Hom.toPath Edge.f))))) (Eq.mpr (id (congrArg (fun _a ↦ F.map _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Category.assoc tail (Quiver.Hom.toPath Edge.g) (Quiver.Hom.toPath Edge.f)))) (Eq.refl (F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)))))))))) (Eq.refl Vertex.B) (Eq.refl Vertex.A) (HEq.refl e)⊒ F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) = πŸ™ (F.obj Vertex.B) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.Be:Vertex.B ⟢ Vertex.Athis:F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) := Edge.casesOn (motive := fun a a_1 x ↦ Vertex.B = a β†’ Vertex.A = a_1 β†’ e ≍ x β†’ F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) e (fun h ↦ False.elim (noConfusion_of_Nat Vertex.ctorIdx h)) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Eq.refl (F.map ((tail.cons Edge.g).cons Edge.f))) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ id (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (F.map_comp (Quiver.Hom.toPath Edge.h ⊚ tail) (Quiver.Hom.toPath Edge.f)))) (Eq.mpr (id (congrArg (fun _a ↦ F.map (Quiver.Hom.toPath Edge.f) ⊚ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (F.map_comp tail (Quiver.Hom.toPath Edge.h)))) (Eq.mpr (id (congrArg (fun _a ↦ F.map (Quiver.Hom.toPath Edge.f) ⊚ _a ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm h₃))) (Eq.mpr (id (congrArg (fun _a ↦ F.map (Quiver.Hom.toPath Edge.f) ⊚ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm (F.map_comp tail (Quiver.Hom.toPath Edge.g))))) (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm (F.map_comp (Quiver.Hom.toPath Edge.g ⊚ tail) (Quiver.Hom.toPath Edge.f))))) (Eq.mpr (id (congrArg (fun _a ↦ F.map _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Category.assoc tail (Quiver.Hom.toPath Edge.g) (Quiver.Hom.toPath Edge.f)))) (Eq.refl (F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)))))))))) (Eq.refl Vertex.B) (Eq.refl Vertex.A) (HEq.refl e)⊒ F.map tail = πŸ™ (F.obj Vertex.B) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.B⊒ F.map p = πŸ™ B' All goals completed! πŸ™ -- βˆ€ p : Quiver.Path Vertex.A Vertex.B, F.map p = f' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f' let rec auxAB (p : Quiver.Path Vertex.A Vertex.B) : F.map p = F.map (Quiver.Hom.toPath Edge.f) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.B⊒ F.map p = F.map (Quiver.Hom.toPath Edge.f) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.B⊒ F.map (Quiver.Path.nil.cons Edge.f) = F.map (Quiver.Hom.toPath Edge.f) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.Be:Vertex.B ⟢ Vertex.A⊒ F.map ((tail.cons e).cons Edge.f) = F.map (Quiver.Hom.toPath Edge.f) have : F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.B⊒ F.map p = F.map (Quiver.Hom.toPath Edge.f) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.B⊒ F.map ((tail.cons Edge.g).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.B⊒ F.map ((tail.cons Edge.h).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.B⊒ F.map ((tail.cons Edge.g).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.B⊒ F.map ((tail.cons Edge.h).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.B⊒ F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.h) ⊚ tail) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.Be:Vertex.B ⟢ Vertex.Athis:F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) := Edge.casesOn (motive := fun a a_1 x ↦ Vertex.B = a β†’ Vertex.A = a_1 β†’ e ≍ x β†’ F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) e (fun h ↦ False.elim (noConfusion_of_Nat Vertex.ctorIdx h)) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Eq.refl (F.map ((tail.cons Edge.g).cons Edge.f))) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ id (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (F.map_comp tail (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.h)))) (Eq.mpr (id (congrArg (fun _a ↦ _a ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (F.map_comp (Quiver.Hom.toPath Edge.h) (Quiver.Hom.toPath Edge.f)))) (Eq.mpr (id (congrArg (fun _a ↦ (F.map (Quiver.Hom.toPath Edge.f) ⊚ _a) ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm h₃))) (Eq.mpr (id (congrArg (fun _a ↦ _a ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm (F.map_comp (Quiver.Hom.toPath Edge.g) (Quiver.Hom.toPath Edge.f))))) (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm (F.map_comp tail (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g))))) (Eq.refl (F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail))))))))) (Eq.refl Vertex.B) (Eq.refl Vertex.A) (HEq.refl e)⊒ F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) = F.map (Quiver.Hom.toPath Edge.f) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.Be:Vertex.B ⟢ Vertex.Athis:F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) := Edge.casesOn (motive := fun a a_1 x ↦ Vertex.B = a β†’ Vertex.A = a_1 β†’ e ≍ x β†’ F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) e (fun h ↦ False.elim (noConfusion_of_Nat Vertex.ctorIdx h)) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Eq.refl (F.map ((tail.cons Edge.g).cons Edge.f))) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ id (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (F.map_comp tail (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.h)))) (Eq.mpr (id (congrArg (fun _a ↦ _a ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (F.map_comp (Quiver.Hom.toPath Edge.h) (Quiver.Hom.toPath Edge.f)))) (Eq.mpr (id (congrArg (fun _a ↦ (F.map (Quiver.Hom.toPath Edge.f) ⊚ _a) ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm h₃))) (Eq.mpr (id (congrArg (fun _a ↦ _a ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm (F.map_comp (Quiver.Hom.toPath Edge.g) (Quiver.Hom.toPath Edge.f))))) (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)) (Eq.symm (F.map_comp tail (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g))))) (Eq.refl (F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail))))))))) (Eq.refl Vertex.B) (Eq.refl Vertex.A) (HEq.refl e)⊒ F.map tail = F.map (Quiver.Hom.toPath Edge.f) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.B⊒ F.map p = f' All goals completed! πŸ™ -- βˆ€ p : Quiver.Path Vertex.B Vertex.A, F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' let rec auxBA (p : Quiver.Path Vertex.B Vertex.A) : F.map p = F.map (Quiver.Hom.toPath Edge.g) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map p = F.map (Quiver.Hom.toPath Edge.g) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Ae:Vertex.B ⟢ Vertex.A⊒ F.map (Quiver.Path.nil.cons e) = F.map (Quiver.Hom.toPath Edge.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map (Quiver.Path.nil.cons Edge.g) = F.map (Quiver.Hom.toPath Edge.g)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map (Quiver.Path.nil.cons Edge.h) = F.map (Quiver.Hom.toPath Edge.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map (Quiver.Path.nil.cons Edge.g) = F.map (Quiver.Hom.toPath Edge.g) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map (Quiver.Path.nil.cons Edge.h) = F.map (Quiver.Hom.toPath Edge.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map (Quiver.Path.nil.cons Edge.h) = F.map (Quiver.Hom.toPath Edge.h) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.Ae:Vertex.B ⟢ Vertex.A⊒ F.map ((tail.cons Edge.f).cons e) = F.map (Quiver.Hom.toPath Edge.g) have : F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map p = F.map (Quiver.Hom.toPath Edge.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.g) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.h) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.g) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.h) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.A⊒ F.map ((Quiver.Hom.toPath Edge.h ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.Ae:Vertex.B ⟢ Vertex.Athis:F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) := Edge.casesOn (motive := fun a a_1 x ↦ Vertex.B = a β†’ Vertex.A = a_1 β†’ e ≍ x β†’ F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) e (fun h ↦ False.elim (noConfusion_of_Nat Vertex.ctorIdx h)) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Eq.refl (F.map ((tail.cons Edge.f).cons Edge.g))) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ id (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (F.map_comp tail (Quiver.Hom.toPath Edge.h ⊚ Quiver.Hom.toPath Edge.f)))) (Eq.mpr (id (congrArg (fun _a ↦ _a ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (F.map_comp (Quiver.Hom.toPath Edge.f) (Quiver.Hom.toPath Edge.h)))) (Eq.mpr (id (congrArg (fun _a ↦ (_a ⊚ F.map (Quiver.Hom.toPath Edge.f)) ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Eq.symm h₃))) (Eq.mpr (id (congrArg (fun _a ↦ _a ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Eq.symm (F.map_comp (Quiver.Hom.toPath Edge.f) (Quiver.Hom.toPath Edge.g))))) (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Eq.symm (F.map_comp tail (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f))))) (Eq.refl (F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail))))))))) (Eq.refl Vertex.B) (Eq.refl Vertex.A) (HEq.refl e)⊒ F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) = F.map (Quiver.Hom.toPath Edge.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.Ae:Vertex.B ⟢ Vertex.Athis:F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) := Edge.casesOn (motive := fun a a_1 x ↦ Vertex.B = a β†’ Vertex.A = a_1 β†’ e ≍ x β†’ F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) e (fun h ↦ False.elim (noConfusion_of_Nat Vertex.ctorIdx h)) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ Eq.refl (F.map ((tail.cons Edge.f).cons Edge.g))) (fun h h_1 h_2 ↦ Eq.symm (eq_of_heq h_2) β–Έ id (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (F.map_comp tail (Quiver.Hom.toPath Edge.h ⊚ Quiver.Hom.toPath Edge.f)))) (Eq.mpr (id (congrArg (fun _a ↦ _a ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (F.map_comp (Quiver.Hom.toPath Edge.f) (Quiver.Hom.toPath Edge.h)))) (Eq.mpr (id (congrArg (fun _a ↦ (_a ⊚ F.map (Quiver.Hom.toPath Edge.f)) ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Eq.symm h₃))) (Eq.mpr (id (congrArg (fun _a ↦ _a ⊚ F.map tail = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Eq.symm (F.map_comp (Quiver.Hom.toPath Edge.f) (Quiver.Hom.toPath Edge.g))))) (Eq.mpr (id (congrArg (fun _a ↦ _a = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)) (Eq.symm (F.map_comp tail (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f))))) (Eq.refl (F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail))))))))) (Eq.refl Vertex.B) (Eq.refl Vertex.A) (HEq.refl e)⊒ F.map tail = F.map (Quiver.Hom.toPath Edge.g) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.Bf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map p = g' All goals completed! πŸ™

(b) A shortest list of equations that will make diagram (b) commute is: hgf = 1_A, \quad fhg = 1_B, \quad gfh = 1_C

Since there are now nine possible pairings of dots, we change our approach from Exercises 2 and 4(a) above and instead employ a more efficient proof by induction.

inductive Vertex | A | B | C inductive Edge : Vertex β†’ Vertex β†’ Type | f : Edge .A .B | g : Edge .B .C | h : Edge .C .A instance : Quiver Vertex where Hom := Edge example {π’ž : Type u} [Category.{v, u} π’ž] (F : Paths Vertex β₯€ π’ž) : -- Let A' be the object in π’ž associated with Vertex.A in 𝐹(G) let A' : π’ž := F.obj Vertex.A -- Let B' be the object in π’ž associated with Vertex.B in 𝐹(G) let B' : π’ž := F.obj Vertex.B -- Let C' be the object in π’ž associated with Vertex.C in 𝐹(G) let C' : π’ž := F.obj Vertex.C -- Let f' be the morphism in π’ž associated with Edge.f in 𝐹(G) let f' : A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f) -- Let g' be the morphism in π’ž associated with Edge.g in 𝐹(G) let g' : B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g) -- Let h' be the morphism in π’ž associated with Edge.h in 𝐹(G) let h' : C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h) -- The 3 equations required to make the diagram commute h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ -- .A ⟢ .A is interpreted as the identity on A' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.A, F.map p = πŸ™ A') ∧ -- .B ⟢ .B is interpreted as the identity on B' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.B, F.map p = πŸ™ B') ∧ -- .C ⟢ .C is interpreted as the identity on C' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.C, F.map p = πŸ™ C') ∧ -- .A ⟢ .B is interpreted as f' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.B, F.map p = f') ∧ -- .B ⟢ .C is interpreted as g' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.C, F.map p = g') ∧ -- .C ⟢ .A is interpreted as h' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.A, F.map p = h') ∧ -- .A ⟢ .C is interpreted as g' ⊚ f' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.C, F.map p = g' ⊚ f') ∧ -- .B ⟢ .A is interpreted as h' ⊚ g' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.A, F.map p = h' ⊚ g') ∧ -- .C ⟢ .B is interpreted as f' ⊚ h' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.B, F.map p = f' ⊚ h') := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žβŠ’ let A' := F.obj Vertex.A; let B' := F.obj Vertex.B; let C' := F.obj Vertex.C; let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' intro A' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.B⊒ let C' := F.obj Vertex.C; let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.C⊒ let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)⊒ let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)⊒ let h' := F.map (Quiver.Hom.toPath Edge.h); h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)⊒ h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:h' ⊚ g' ⊚ f' = πŸ™ A'hβ‚‚:f' ⊚ h' ⊚ g' = πŸ™ B'h₃:g' ⊚ f' ⊚ h' = πŸ™ C'⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' suffices βˆ€ {u v : Vertex} (p : Quiver.Path u v), F.map p = match u, v with | .A, .A => πŸ™ A' | .B, .B => πŸ™ B' | .C, .C => πŸ™ C' | .A, .B => f' | .B, .C => g' | .C, .A => h' | .A, .C => g' ⊚ f' | .B, .A => h' ⊚ g' | .C, .B => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:h' ⊚ g' ⊚ f' = πŸ™ A'hβ‚‚:f' ⊚ h' ⊚ g' = πŸ™ B'h₃:g' ⊚ f' ⊚ h' = πŸ™ C'this:βˆ€ {u v : Vertex} (p : Quiver.Path u v), F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' := ?m.336⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)⊒ βˆ€ {u v : Vertex} (p : Quiver.Path u v), F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' intro u π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertex⊒ βˆ€ (p : Quiver.Path u v), F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexp:Quiver.Path u v⊒ F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' induction p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertex⊒ F.map Quiver.Path.nil = match u, u, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.A, Vertex.A, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.B, Vertex.B, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.C, Vertex.C, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' all_goals π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = πŸ™ C' All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ F.map (p.cons e) = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ F.map (e.toPath ⊚ p) = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.A b✝ih:F.map p = match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.A, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.B b✝ih:F.map p = match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.B, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.C b✝ih:F.map p = match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.C, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.A b✝ih:F.map p = match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.A, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.B b✝ih:F.map p = match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.B, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.C b✝ih:F.map p = match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.C, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Aih:F.map p = match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map (Quiver.Hom.toPath Edge.f) ⊚ match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.C, Vertex.B, p.cons Edge.f with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Bih:F.map p = match Vertex.C, Vertex.B, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map (Quiver.Hom.toPath Edge.g) ⊚ match Vertex.C, Vertex.B, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.C, Vertex.C, p.cons Edge.g with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map (Quiver.Hom.toPath Edge.h) ⊚ match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.C, Vertex.A, p.cons Edge.h with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' all_goals π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g)h':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ F.map (Quiver.Hom.toPath Edge.h) ⊚ πŸ™ (F.obj Vertex.C) = F.map (Quiver.Hom.toPath Edge.h) try All goals completed! πŸ™ try first | All goals completed! πŸ™ | All goals completed! πŸ™ | All goals completed! πŸ™

(c) A shortest list of equations that will make diagram (c) commute is: jhg = 1_A, \quad gjh = 1_B, \quad hgj = 1_C, \quad f = g, \quad i = 1_C

inductive Vertex | A | B | C inductive Edge : Vertex β†’ Vertex β†’ Type | f : Edge .A .B | g : Edge .A .B | h : Edge .B .C | i : Edge .C .C | j : Edge .C .A instance : Quiver Vertex where Hom := Edge example {π’ž : Type u} [Category.{v, u} π’ž] (F : Paths Vertex β₯€ π’ž) : -- Let A' be the object in π’ž associated with Vertex.A in 𝐹(G) let A' : π’ž := F.obj Vertex.A -- Let B' be the object in π’ž associated with Vertex.B in 𝐹(G) let B' : π’ž := F.obj Vertex.B -- Let C' be the object in π’ž associated with Vertex.C in 𝐹(G) let C' : π’ž := F.obj Vertex.C -- Let f' be the morphism in π’ž associated with Edge.f in 𝐹(G) let f' : A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f) -- Let g' be the morphism in π’ž associated with Edge.g in 𝐹(G) let g' : A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g) -- Let h' be the morphism in π’ž associated with Edge.h in 𝐹(G) let h' : B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h) -- Let i' be the morphism in π’ž associated with Edge.i in 𝐹(G) let i' : C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i) -- Let j' be the morphism in π’ž associated with Edge.j in 𝐹(G) let j' : C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j) -- The 5 equations required to make the diagram commute j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ -- .A ⟢ .A is interpreted as the identity on A' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.A, F.map p = πŸ™ A') ∧ -- .B ⟢ .B is interpreted as the identity on B' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.B, F.map p = πŸ™ B') ∧ -- .C ⟢ .C is interpreted as the identity on C' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.C, F.map p = πŸ™ C') ∧ -- .A ⟢ .B is interpreted as g' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.B, F.map p = g') ∧ -- .B ⟢ .C is interpreted as h' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.C, F.map p = h') ∧ -- .C ⟢ .A is interpreted as j' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.A, F.map p = j') ∧ -- .A ⟢ .C is interpreted as h' ⊚ g' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.C, F.map p = h' ⊚ g') ∧ -- .B ⟢ .A is interpreted as j' ⊚ h' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.A, F.map p = j' ⊚ h') ∧ -- .C ⟢ .B is interpreted as g' ⊚ j' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.B, F.map p = g' ⊚ j') := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žβŠ’ let A' := F.obj Vertex.A; let B' := F.obj Vertex.B; let C' := F.obj Vertex.C; let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' intro A' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.B⊒ let C' := F.obj Vertex.C; let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.C⊒ let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)⊒ let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)⊒ let h' := F.map (Quiver.Hom.toPath Edge.h); let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)⊒ let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)⊒ let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)⊒ j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:j' ⊚ h' ⊚ g' = πŸ™ A'hβ‚‚:g' ⊚ j' ⊚ h' = πŸ™ B'h₃:h' ⊚ g' ⊚ j' = πŸ™ C'hβ‚„:f' = g'hβ‚…:i' = πŸ™ C'⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' suffices βˆ€ {u v : Vertex} (p : Quiver.Path u v), F.map p = match u, v with | .A, .A => πŸ™ A' | .B, .B => πŸ™ B' | .C, .C => πŸ™ C' | .A, .B => g' | .B, .C => h' | .C, .A => j' | .A, .C => h' ⊚ g' | .B, .A => j' ⊚ h' | .C, .B => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:j' ⊚ h' ⊚ g' = πŸ™ A'hβ‚‚:g' ⊚ j' ⊚ h' = πŸ™ B'h₃:h' ⊚ g' ⊚ j' = πŸ™ C'hβ‚„:f' = g'hβ‚…:i' = πŸ™ C'this:βˆ€ {u v : Vertex} (p : Quiver.Path u v), F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' := ?m.388⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)⊒ βˆ€ {u v : Vertex} (p : Quiver.Path u v), F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' intro u π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertex⊒ βˆ€ (p : Quiver.Path u v), F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexp:Quiver.Path u v⊒ F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' induction p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertex⊒ F.map Quiver.Path.nil = match u, u, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.A, Vertex.A, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.B, Vertex.B, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.C, Vertex.C, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' all_goals π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = πŸ™ C' All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ F.map (p.cons e) = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ F.map (e.toPath ⊚ p) = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.A b✝ih:F.map p = match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.A, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.B b✝ih:F.map p = match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.B, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.C b✝ih:F.map p = match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.A b✝ih:F.map p = match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.A, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.B b✝ih:F.map p = match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.B, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.C b✝ih:F.map p = match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Aih:F.map p = match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map (Quiver.Hom.toPath Edge.f) ⊚ match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, Vertex.B, p.cons Edge.f with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Aih:F.map p = match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map (Quiver.Hom.toPath Edge.g) ⊚ match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, Vertex.B, p.cons Edge.g with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Bih:F.map p = match Vertex.C, Vertex.B, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map (Quiver.Hom.toPath Edge.h) ⊚ match Vertex.C, Vertex.B, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, Vertex.C, p.cons Edge.h with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map (Quiver.Hom.toPath Edge.i) ⊚ match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, Vertex.C, p.cons Edge.i with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map (Quiver.Hom.toPath Edge.j) ⊚ match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, Vertex.A, p.cons Edge.j with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' all_goals π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ F.map (Quiver.Hom.toPath Edge.j) ⊚ πŸ™ (F.obj Vertex.C) = F.map (Quiver.Hom.toPath Edge.j) try All goals completed! πŸ™ try π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':π’ž := F.obj Vertex.AB':π’ž := F.obj Vertex.BC':π’ž := F.obj Vertex.Cf':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f)g':A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g)h':B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h)i':C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i)j':C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ πŸ™ (F.obj Vertex.C) ⊚ πŸ™ (F.obj Vertex.C) = πŸ™ (F.obj Vertex.C) try first | All goals completed! πŸ™ | All goals completed! πŸ™ try first | All goals completed! πŸ™ | All goals completed! πŸ™ | All goals completed! πŸ™