Built with
Alectryon . Bubbles (
) indicate interactive fragments: hover for details, tap to reveal contents. Use
Ctrl+↑ Ctrl+↓ to navigate,
Ctrl+🖱️ to focus. On Mac, use
⌘ instead of
Ctrl .
From HoTT Require Import Basics Types.From HoTT Require Import Basics Types.
(** Vertical and horizontal composition of squares *)
Section concat_square .
Context {X : Type }.
Context {a0 b0 c0 : X}.
Context {a1 b1 c1 : X}.
Context {a01 : a0 = a1}.
Context {b01 : b0 = b1}.
Context {c01 : c0 = c1}.
Context {ab0 : a0 = b0}.
Context {ab1 : a1 = b1}.
Context {bc0 : b0 = c0}.
Context {bc1 : b1 = c1}.
Local Definition concat_square_vert
(p : ab0 @ b01 = a01 @ ab1)
(q : bc0 @ c01 = b01 @ bc1)
: (ab0 @ bc0) @ c01 = a01 @ (ab1 @ bc1).X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : ab0 @ b01 = a01 @ ab1 q : bc0 @ c01 = b01 @ bc1
ab0 @ bc0 @ c01 = a01 @ (ab1 @ bc1)
Proof .X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : ab0 @ b01 = a01 @ ab1 q : bc0 @ c01 = b01 @ bc1
ab0 @ bc0 @ c01 = a01 @ (ab1 @ bc1)
refine (concat_pp_p _ _ _ @ _).X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : ab0 @ b01 = a01 @ ab1 q : bc0 @ c01 = b01 @ bc1
ab0 @ (bc0 @ c01) = a01 @ (ab1 @ bc1)
refine (whiskerL _ q @ _).X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : ab0 @ b01 = a01 @ ab1 q : bc0 @ c01 = b01 @ bc1
ab0 @ (b01 @ bc1) = a01 @ (ab1 @ bc1)
refine (concat_p_pp _ _ _ @ _).X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : ab0 @ b01 = a01 @ ab1 q : bc0 @ c01 = b01 @ bc1
ab0 @ b01 @ bc1 = a01 @ (ab1 @ bc1)
refine (whiskerR p _ @ _).X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : ab0 @ b01 = a01 @ ab1 q : bc0 @ c01 = b01 @ bc1
a01 @ ab1 @ bc1 = a01 @ (ab1 @ bc1)
apply concat_pp_p.
Defined .
Local Definition concat_square_hor
(p : a01 @ ab1 = ab0 @ b01)
(q : b01 @ bc1 = bc0 @ c01)
: a01 @ (ab1 @ bc1) = (ab0 @ bc0) @ c01.X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : a01 @ ab1 = ab0 @ b01 q : b01 @ bc1 = bc0 @ c01
a01 @ (ab1 @ bc1) = ab0 @ bc0 @ c01
Proof .X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : a01 @ ab1 = ab0 @ b01 q : b01 @ bc1 = bc0 @ c01
a01 @ (ab1 @ bc1) = ab0 @ bc0 @ c01
refine (concat_p_pp _ _ _ @ _).X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : a01 @ ab1 = ab0 @ b01 q : b01 @ bc1 = bc0 @ c01
a01 @ ab1 @ bc1 = ab0 @ bc0 @ c01
refine (whiskerR p _ @ _).X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : a01 @ ab1 = ab0 @ b01 q : b01 @ bc1 = bc0 @ c01
ab0 @ b01 @ bc1 = ab0 @ bc0 @ c01
refine (concat_pp_p _ _ _ @ _).X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : a01 @ ab1 = ab0 @ b01 q : b01 @ bc1 = bc0 @ c01
ab0 @ (b01 @ bc1) = ab0 @ bc0 @ c01
refine (whiskerL _ q @ _).X : Type a0, b0, c0, a1, b1, c1 : X a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 ab0 : a0 = b0 ab1 : a1 = b1 bc0 : b0 = c0 bc1 : b1 = c1 p : a01 @ ab1 = ab0 @ b01 q : b01 @ bc1 = bc0 @ c01
ab0 @ (bc0 @ c01) = ab0 @ bc0 @ c01
apply concat_p_pp.
Defined .
End concat_square .
Infix "[-]" := (concat_square_vert) (at level 60 ).
Infix "[I]" := (concat_square_hor) (at level 60 ).
(** We give custom names to the following equivalences: *)
Abbreviation rlucancel := equiv_p1_1q.
Abbreviation lrucancel := equiv_1p_q1.
(** We also need this inverse. Using a Notation slows things down a lot. *)
Definition rlucancel_inv {X } {a b : X} {p q : a = b} := (@rlucancel X a b p q)^-1 .
(** This special case of [equiv_path_ind] comes up a lot. *)
Definition equiv_path_ind_rlucancel {X } (a b : X) (p : a = b)
(P : forall (q : a = b), p @ 1 = 1 @ q -> Type )
(r : P p (rlucancel 1 ))
: forall (q : a = b) (s : p @ 1 = 1 @ q), P q s.X : Type a, b : X p : a = b P : forall q : a = b, p @ 1 = 1 @ q -> Type r : P p (rlucancel 1 )
forall (q : a = b) (s : p @ 1 = 1 @ q), P q s
Proof .X : Type a, b : X p : a = b P : forall q : a = b, p @ 1 = 1 @ q -> Type r : P p (rlucancel 1 )
forall (q : a = b) (s : p @ 1 = 1 @ q), P q s
snapply (equiv_path_ind (fun _ => rlucancel)). X : Type a, b : X p : a = b P : forall q : a = b, p @ 1 = 1 @ q -> Type r : P p (rlucancel 1 )
P p ((fun b0 : a = b => rlucancel) p 1 )
exact r.
Defined .
(** This special case of [equiv_path_ind] comes up a lot. *)
Definition equiv_path_ind_lrucancel {X } (a b : X) (p : a = b)
(P : forall (q : a = b), 1 @ p = q @ 1 -> Type )
(r : P p (lrucancel 1 ))
: forall (q : a = b) (s : 1 @ p = q @ 1 ), P q s.X : Type a, b : X p : a = b P : forall q : a = b, 1 @ p = q @ 1 -> Type r : P p (lrucancel 1 )
forall (q : a = b) (s : 1 @ p = q @ 1 ), P q s
Proof .X : Type a, b : X p : a = b P : forall q : a = b, 1 @ p = q @ 1 -> Type r : P p (lrucancel 1 )
forall (q : a = b) (s : 1 @ p = q @ 1 ), P q s
snapply (equiv_path_ind (fun _ => lrucancel)). X : Type a, b : X p : a = b P : forall q : a = b, 1 @ p = q @ 1 -> Type r : P p (lrucancel 1 )
P p ((fun b0 : a = b => lrucancel) p 1 )
exact r.
Defined .
(** Interaction of the above equivalences with square composition. *)
Definition rlucancel_sVs_1_pp {X } {a b c : X} {p : a = b} {q : b = c}
{r } (theta : p @ q = r)
: (rlucancel 1 [-] rlucancel 1 ) @ whiskerL _ theta = whiskerR theta _ @ (rlucancel 1 ).X : Type a, b, c : X p : a = b q : b = c r : a = c theta : p @ q = r
(rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 theta =
whiskerR theta 1 @ rlucancel 1
Proof .X : Type a, b, c : X p : a = b q : b = c r : a = c theta : p @ q = r
(rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 theta =
whiskerR theta 1 @ rlucancel 1
by destruct theta, p, q.
Defined .
Definition lrucancel_sHs_1_pp {X } {a b c : X} {p : a = b} {q : b = c}
{r } (theta : p @ q = r)
: (lrucancel 1 [I] lrucancel 1 ) @ whiskerR theta _ = whiskerL _ theta @ (lrucancel 1 ).X : Type a, b, c : X p : a = b q : b = c r : a = c theta : p @ q = r
(lrucancel 1 [I] lrucancel 1 ) @ whiskerR theta 1 =
whiskerL 1 theta @ lrucancel 1
Proof .X : Type a, b, c : X p : a = b q : b = c r : a = c theta : p @ q = r
(lrucancel 1 [I] lrucancel 1 ) @ whiskerR theta 1 =
whiskerL 1 theta @ lrucancel 1
by destruct theta, p, q.
Defined .
Definition rlucancel_sHs_1 {X } {a b : X} (p : a = b)
: (rlucancel 1 [I] rlucancel 1 ) = rlucancel (idpath p).X : Type a, b : X p : a = b
rlucancel 1 [I] rlucancel 1 = rlucancel 1
Proof .X : Type a, b : X p : a = b
rlucancel 1 [I] rlucancel 1 = rlucancel 1
by destruct p.
Defined .
Definition lrucancel_sVs_1 {X } {a b : X} (p : a = b)
: (lrucancel 1 [-] lrucancel 1 ) = lrucancel (idpath p).X : Type a, b : X p : a = b
lrucancel 1 [-] lrucancel 1 = lrucancel 1
Proof .X : Type a, b : X p : a = b
lrucancel 1 [-] lrucancel 1 = lrucancel 1
by destruct p.
Defined .
(** Naturality of composition with 1. *)
Definition ulnat {X } {a b : X} {u v : a = b} (p : u = v)
: whiskerL 1 p @ concat_1p v = concat_1p u @ p.X : Type a, b : X u, v : a = b p : u = v
whiskerL 1 p @ concat_1p v = concat_1p u @ p
Proof .X : Type a, b : X u, v : a = b p : u = v
whiskerL 1 p @ concat_1p v = concat_1p u @ p
destruct p.X : Type a, b : X u : a = b
whiskerL 1 1 @ concat_1p u = concat_1p u @ 1
exact (lrucancel 1 ).
Defined .
Definition urnat {X } {a b : X} {u v : a = b} (p : u = v)
: whiskerR p 1 @ concat_p1 v = concat_p1 u @ p.X : Type a, b : X u, v : a = b p : u = v
whiskerR p 1 @ concat_p1 v = concat_p1 u @ p
Proof .X : Type a, b : X u, v : a = b p : u = v
whiskerR p 1 @ concat_p1 v = concat_p1 u @ p
destruct p.X : Type a, b : X u : a = b
whiskerR 1 1 @ concat_p1 u = concat_p1 u @ 1
exact (lrucancel 1 ).
Defined .
(** Exchange law for whiskering on the left and on the right. *)
Definition wlrnat {X } {a b c : X} {u v : a = b} {x y : b = c} p q
: whiskerL u p @ whiskerR q y = whiskerR q x @ whiskerL v p.X : Type a, b, c : X u, v : a = b x, y : b = c p : x = y q : u = v
whiskerL u p @ whiskerR q y = whiskerR q x @ whiskerL v p
Proof .X : Type a, b, c : X u, v : a = b x, y : b = c p : x = y q : u = v
whiskerL u p @ whiskerR q y = whiskerR q x @ whiskerL v p
by destruct p, q.
Defined .
(** Eckmann-Hilton. This is also proved as [eckmann_hilton] in PathGroupoids.v, but we need this particular proof in order to prove the syllepsis. *)
Theorem eh {X } {a : X} (p q : idpath a = idpath a)
: p @ q = q @ p.X : Type a : X p, q : 1 = 1
p @ q = q @ p
Proof .X : Type a : X p, q : 1 = 1
p @ q = q @ p
refine (_ @ rlucancel_inv (urnat q [-] ulnat p)).X : Type a : X p, q : 1 = 1
p @ q = whiskerR q 1 @ whiskerL 1 p
refine ((rlucancel_inv (ulnat p [-] urnat q))^ @ _).X : Type a : X p, q : 1 = 1
whiskerL 1 p @ whiskerR q 1 = whiskerR q 1 @ whiskerL 1 p
exact (wlrnat p q).
Defined .
(** Eckmann-Hilton on reflexivity. *)
Local Definition eh_1p_gen {X } {a b : X} {u v : a = b} (p : u = v) {q } (theta : whiskerR p 1 @ 1 = 1 @ q)
: (rlucancel_inv (1 [-] theta))^ @ wlrnat 1 p @ rlucancel_inv (theta [-] 1 ) @ concat_p1 q = concat_1p q.X : Type a, b : X u, v : a = b p : u = v q : u @ 1 = v @ 1 theta : whiskerR p 1 @ 1 = 1 @ q
(rlucancel_inv (1 [-] theta))^ @ wlrnat 1 p @ rlucancel_inv (theta [-] 1 ) @
concat_p1 q = concat_1p q
Proof .X : Type a, b : X u, v : a = b p : u = v q : u @ 1 = v @ 1 theta : whiskerR p 1 @ 1 = 1 @ q
(rlucancel_inv (1 [-] theta))^ @ wlrnat 1 p @ rlucancel_inv (theta [-] 1 ) @
concat_p1 q = concat_1p q
revert q theta.X : Type a, b : X u, v : a = b p : u = v
forall (q : u @ 1 = v @ 1 ) (theta : whiskerR p 1 @ 1 = 1 @ q),
(rlucancel_inv (1 [-] theta))^ @ wlrnat 1 p @ rlucancel_inv (theta [-] 1 ) @
concat_p1 q = concat_1p q
snapply equiv_path_ind_rlucancel. X : Type a, b : X u, v : a = b p : u = v
(fun (q : u @ 1 = v @ 1 ) (s : whiskerR p 1 @ 1 = 1 @ q) =>
(rlucancel_inv (1 [-] s))^ @ wlrnat 1 p @ rlucancel_inv (s [-] 1 ) @
concat_p1 q = concat_1p q) (whiskerR p 1 ) (rlucancel 1 )
by destruct p.
Defined .
Definition eh_1p {X } {a : X} (p : idpath a = idpath a)
: eh 1 p @ concat_p1 p = concat_1p p.X : Type a : X p : 1 = 1
eh 1 p @ concat_p1 p = concat_1p p
Proof .X : Type a : X p : 1 = 1
eh 1 p @ concat_p1 p = concat_1p p
exact (eh_1p_gen p (urnat p)).
Defined .
Local Definition eh_p1_gen {X } {a b : X} {u v : a = b} (p : u = v) {q } (theta : whiskerL 1 p @ 1 = 1 @ q)
: (rlucancel_inv (theta [-] 1 ))^ @ wlrnat p 1 @ rlucancel_inv (1 [-] theta) @ concat_1p q = concat_p1 q.X : Type a, b : X u, v : a = b p : u = v q : 1 @ u = 1 @ vtheta : whiskerL 1 p @ 1 = 1 @ q
(rlucancel_inv (theta [-] 1 ))^ @ wlrnat p 1 @ rlucancel_inv (1 [-] theta) @
concat_1p q = concat_p1 q
Proof .X : Type a, b : X u, v : a = b p : u = v q : 1 @ u = 1 @ vtheta : whiskerL 1 p @ 1 = 1 @ q
(rlucancel_inv (theta [-] 1 ))^ @ wlrnat p 1 @ rlucancel_inv (1 [-] theta) @
concat_1p q = concat_p1 q
revert q theta.X : Type a, b : X u, v : a = b p : u = v
forall (q : 1 @ u = 1 @ v) (theta : whiskerL 1 p @ 1 = 1 @ q),
(rlucancel_inv (theta [-] 1 ))^ @ wlrnat p 1 @ rlucancel_inv (1 [-] theta) @
concat_1p q = concat_p1 q
snapply equiv_path_ind_rlucancel. X : Type a, b : X u, v : a = b p : u = v
(fun (q : 1 @ u = 1 @ v) (s : whiskerL 1 p @ 1 = 1 @ q) =>
(rlucancel_inv (s [-] 1 ))^ @ wlrnat p 1 @ rlucancel_inv (1 [-] s) @
concat_1p q = concat_p1 q) (whiskerL 1 p) (rlucancel 1 )
by destruct p.
Defined .
Definition eh_p1 {X } {a : X} (p : idpath a = idpath a)
: eh p 1 @ concat_1p p = concat_p1 p.X : Type a : X p : 1 = 1
eh p 1 @ concat_1p p = concat_p1 p
Proof .X : Type a : X p : 1 = 1
eh p 1 @ concat_1p p = concat_p1 p
exact (eh_p1_gen p (ulnat p)).
Defined .
(** Naturality of Eckmann-Hilton. *)
Definition ehlnat {X } {a : X} (u : idpath a = idpath a) {x y } (p : x = y)
: whiskerL u p @ eh u y = eh u x @ whiskerR p u.X : Type a : X u, x, y : 1 = 1 p : x = y
whiskerL u p @ eh u y = eh u x @ whiskerR p u
Proof .X : Type a : X u, x, y : 1 = 1 p : x = y
whiskerL u p @ eh u y = eh u x @ whiskerR p u
destruct p.X : Type a : X u, x : 1 = 1
whiskerL u 1 @ eh u x = eh u x @ whiskerR 1 u
exact (lrucancel 1 ).
Defined .
Definition ehrnat {X } {a : X} {u v } (p : u = v) (x : idpath a = idpath a)
: whiskerR p x @ eh v x = eh u x @ whiskerL x p.X : Type a : X u, v : 1 = 1 p : u = v x : 1 = 1
whiskerR p x @ eh v x = eh u x @ whiskerL x p
Proof .X : Type a : X u, v : 1 = 1 p : u = v x : 1 = 1
whiskerR p x @ eh v x = eh u x @ whiskerL x p
destruct p.X : Type a : X u, x : 1 = 1
whiskerR 1 x @ eh u x = eh u x @ whiskerL x 1
exact (lrucancel 1 ).
Defined .
(** Naturality of Eckmann-Hilton when the fixed path is 1. *)
Definition ehlnat_1p {X } {a : X} {u v : idpath a = idpath a} (p : u = v)
: (ehlnat 1 p [I] urnat p) @ whiskerR (eh_1p u) _ = whiskerL _ (eh_1p v) @ ulnat p.X : Type a : X u, v : 1 = 1 p : u = v
(ehlnat 1 p [I] urnat p) @ whiskerR (eh_1p u) p =
whiskerL (whiskerL 1 p) (eh_1p v) @ ulnat p
Proof .X : Type a : X u, v : 1 = 1 p : u = v
(ehlnat 1 p [I] urnat p) @ whiskerR (eh_1p u) p =
whiskerL (whiskerL 1 p) (eh_1p v) @ ulnat p
destruct p.X : Type a : X u : 1 = 1
(ehlnat 1 1 [I] urnat 1 ) @ whiskerR (eh_1p u) 1 =
whiskerL (whiskerL 1 1 ) (eh_1p u) @ ulnat 1
apply lrucancel_sHs_1_pp.
Defined .
Definition ehrnat_p1 {X } {a : X} {u v : idpath a = idpath a} (p : u = v)
: (ehrnat p 1 [I] ulnat p) @ whiskerR (eh_p1 u) _ = whiskerL _ (eh_p1 v) @ urnat p.X : Type a : X u, v : 1 = 1 p : u = v
(ehrnat p 1 [I] ulnat p) @ whiskerR (eh_p1 u) p =
whiskerL (whiskerR p 1 ) (eh_p1 v) @ urnat p
Proof .X : Type a : X u, v : 1 = 1 p : u = v
(ehrnat p 1 [I] ulnat p) @ whiskerR (eh_p1 u) p =
whiskerL (whiskerR p 1 ) (eh_p1 v) @ urnat p
destruct p.X : Type a : X u : 1 = 1
(ehrnat 1 1 [I] ulnat 1 ) @ whiskerR (eh_p1 u) 1 =
whiskerL (whiskerR 1 1 ) (eh_p1 u) @ urnat 1
apply lrucancel_sHs_1_pp.
Defined .
(* These lemmas should probably be in the library in some form. *)
Local Definition concat_p_pp_pp_p {A } {u v x y : A} (p : u = v) (q : v = x) (r : x = y)
: concat_p_pp p q r @ concat_pp_p p q r = 1 .A : Type u, v, x, y : A p : u = v q : v = x r : x = y
concat_p_pp p q r @ concat_pp_p p q r = 1
Proof .A : Type u, v, x, y : A p : u = v q : v = x r : x = y
concat_p_pp p q r @ concat_pp_p p q r = 1
by destruct p, q, r.
Defined .
Local Definition concat_pp_p_p_pp {A } {u v x y : A} (p : u = v) (q : v = x) (r : x = y)
: concat_pp_p p q r @ concat_p_pp p q r = 1 .A : Type u, v, x, y : A p : u = v q : v = x r : x = y
concat_pp_p p q r @ concat_p_pp p q r = 1
Proof .A : Type u, v, x, y : A p : u = v q : v = x r : x = y
concat_pp_p p q r @ concat_p_pp p q r = 1
by destruct p, q, r.
Defined .
(* These lemmas are in the library but with worse computational behavior. *)
Local Definition whiskerL_pp {A } {a b c : A} (u : a = b) {v w z : b = c} (p : v = w) (q : w = z)
: whiskerL u (p @ q) = whiskerL u p @ whiskerL u q.A : Type a, b, c : A u : a = b v, w, z : b = c p : v = w q : w = z
whiskerL u (p @ q) = whiskerL u p @ whiskerL u q
Proof .A : Type a, b, c : A u : a = b v, w, z : b = c p : v = w q : w = z
whiskerL u (p @ q) = whiskerL u p @ whiskerL u q
by destruct p, q.
Defined .
Local Definition whiskerR_pp {A } {a b c : A} {u v w : a = b} (z : b = c) (p : u = v) (q : v = w)
: whiskerR (p @ q) z = whiskerR p z @ whiskerR q z.A : Type a, b, c : A u, v, w : a = b z : b = c p : u = v q : v = w
whiskerR (p @ q) z = whiskerR p z @ whiskerR q z
Proof .A : Type a, b, c : A u, v, w : a = b z : b = c p : u = v q : v = w
whiskerR (p @ q) z = whiskerR p z @ whiskerR q z
by destruct p, q.
Defined .
(** We now prove that [ulnat (p @ q)] suitably relates to [ulnat p] and [ulnat q]. *)
Definition ulnat_pp {X } {a b : X} {u v w : a = b} (p : u = v) (q : v = w)
: ulnat p [-] ulnat q = whiskerR (whiskerL_pp _ p q)^ _ @ ulnat (p @ q).X : Type a, b : X u, v, w : a = b p : u = v q : v = w
ulnat p [-] ulnat q =
whiskerR (whiskerL_pp 1 p q)^ (concat_1p w) @ ulnat (p @ q)
Proof .X : Type a, b : X u, v, w : a = b p : u = v q : v = w
ulnat p [-] ulnat q =
whiskerR (whiskerL_pp 1 p q)^ (concat_1p w) @ ulnat (p @ q)
by destruct p, q, u.
Defined .
(** We now prove that [urnat (p @ q)] suitably relates to [urnat p] and [urnat q]. *)
Definition urnat_pp {X } {a b : X} {u v w : a = b} (p : u = v) (q : v = w)
: urnat p [-] urnat q = whiskerR (whiskerR_pp _ p q)^ _ @ urnat (p @ q).X : Type a, b : X u, v, w : a = b p : u = v q : v = w
urnat p [-] urnat q =
whiskerR (whiskerR_pp 1 p q)^ (concat_p1 w) @ urnat (p @ q)
Proof .X : Type a, b : X u, v, w : a = b p : u = v q : v = w
urnat p [-] urnat q =
whiskerR (whiskerR_pp 1 p q)^ (concat_p1 w) @ urnat (p @ q)
by destruct p, q, u.
Defined .
(** We now prove that [ehlnat u (p @ q)] suitably relates to [ehlnat u p] and [ehlnat u q]. *)
Definition ehlnat_pp {X } {a : X} (u : idpath a = idpath a) {v w : idpath a = idpath a} (p : v = 1 ) (q : 1 = w)
: (ehlnat u p [-] ehlnat u q) @ whiskerL _ (whiskerR_pp _ p q)^ =
(whiskerR (whiskerL_pp _ p q)^ _) @ ehlnat u (p @ q).X : Type a : X u, v, w : 1 = 1 p : v = 1 q : 1 = w
(ehlnat u p [-] ehlnat u q) @ whiskerL (eh u v) (whiskerR_pp u p q)^ =
whiskerR (whiskerL_pp u p q)^ (eh u w) @ ehlnat u (p @ q)
Proof .X : Type a : X u, v, w : 1 = 1 p : v = 1 q : 1 = w
(ehlnat u p [-] ehlnat u q) @ whiskerL (eh u v) (whiskerR_pp u p q)^ =
whiskerR (whiskerL_pp u p q)^ (eh u w) @ ehlnat u (p @ q)
revert v p.X : Type a : X u, w : 1 = 1 q : 1 = w
forall (v : 1 = 1 ) (p : v = 1 ),
(ehlnat u p [-] ehlnat u q) @ whiskerL (eh u v) (whiskerR_pp u p q)^ =
whiskerR (whiskerL_pp u p q)^ (eh u w) @ ehlnat u (p @ q)
snapply (equiv_path_ind (equiv_path_inverse _)). X : Type a : X u, w : 1 = 1 q : 1 = w
(fun (b : 1 = 1 ) (x : (fun y : 1 = 1 => y = 1 ) b) =>
(ehlnat u x [-] ehlnat u q) @ whiskerL (eh u b) (whiskerR_pp u x q)^ =
whiskerR (whiskerL_pp u x q)^ (eh u w) @ ehlnat u (x @ q)) 1
(equiv_path_inverse 1 1 1 )
destruct q.X : Type a : X u : 1 = 1
(ehlnat u (equiv_path_inverse 1 1 1 ) [-] ehlnat u 1 ) @
whiskerL (eh u 1 ) (whiskerR_pp u (equiv_path_inverse 1 1 1 ) 1 )^ =
whiskerR (whiskerL_pp u (equiv_path_inverse 1 1 1 ) 1 )^ (eh u 1 ) @
ehlnat u (equiv_path_inverse 1 1 1 @ 1 )
apply rlucancel, lrucancel_sVs_1.
Defined .
(** We now prove that [ehrnat (p @ q) w] suitably relates to [ehrnat p w] and [ehrnat q w]. *)
Definition ehrnat_pp {X } {a : X} {u v : idpath a = idpath a} (p : u = 1 ) (q : 1 = v) (w : idpath a = idpath a)
: (ehrnat p w [-] ehrnat q w) @ whiskerL _ (whiskerL_pp _ p q)^ =
(whiskerR (whiskerR_pp _ p q)^ _) @ ehrnat (p @ q) w.X : Type a : X u, v : 1 = 1 p : u = 1 q : 1 = vw : 1 = 1
(ehrnat p w [-] ehrnat q w) @ whiskerL (eh u w) (whiskerL_pp w p q)^ =
whiskerR (whiskerR_pp w p q)^ (eh v w) @ ehrnat (p @ q) w
Proof .X : Type a : X u, v : 1 = 1 p : u = 1 q : 1 = vw : 1 = 1
(ehrnat p w [-] ehrnat q w) @ whiskerL (eh u w) (whiskerL_pp w p q)^ =
whiskerR (whiskerR_pp w p q)^ (eh v w) @ ehrnat (p @ q) w
revert u p.X : Type a : X v : 1 = 1 q : 1 = vw : 1 = 1
forall (u : 1 = 1 ) (p : u = 1 ),
(ehrnat p w [-] ehrnat q w) @ whiskerL (eh u w) (whiskerL_pp w p q)^ =
whiskerR (whiskerR_pp w p q)^ (eh v w) @ ehrnat (p @ q) w
snapply (equiv_path_ind (equiv_path_inverse _)). X : Type a : X v : 1 = 1 q : 1 = vw : 1 = 1
(fun (b : 1 = 1 ) (x : (fun y : 1 = 1 => y = 1 ) b) =>
(ehrnat x w [-] ehrnat q w) @ whiskerL (eh b w) (whiskerL_pp w x q)^ =
whiskerR (whiskerR_pp w x q)^ (eh v w) @ ehrnat (x @ q) w) 1
(equiv_path_inverse 1 1 1 )
destruct q.X : Type a : X w : 1 = 1
(ehrnat (equiv_path_inverse 1 1 1 ) w [-] ehrnat 1 w) @
whiskerL (eh 1 w) (whiskerL_pp w (equiv_path_inverse 1 1 1 ) 1 )^ =
whiskerR (whiskerR_pp w (equiv_path_inverse 1 1 1 ) 1 )^ (eh 1 w) @
ehrnat (equiv_path_inverse 1 1 1 @ 1 ) w
cbn .X : Type a : X w : 1 = 1
(concat_1p (eh 1 w) @ 1 @ (concat_p1 (eh 1 w))^
[-] concat_1p (eh 1 w) @ 1 @ (concat_p1 (eh 1 w))^) @
1 = 1 @ (concat_1p (eh 1 w) @ 1 @ (concat_p1 (eh 1 w))^)
apply rlucancel, lrucancel_sVs_1.
Defined .
(** We now prove that [wlrnat p (q @ r)] suitably relates to [wlrnat p q] and [wlrnat p r]. *)
Definition wlrnat_p_pp {X } {a b c : X} {u v w : a = b} {x y : b = c} (p : x = y) (q : u = v) (r : v = w)
: (wlrnat p q [I] wlrnat p r) @ whiskerR (whiskerR_pp _ q r)^ _ =
whiskerL _ (whiskerR_pp _ q r)^ @ wlrnat p (q @ r).X : Type a, b, c : X u, v, w : a = b x, y : b = c p : x = y q : u = v r : v = w
(wlrnat p q [I] wlrnat p r) @ whiskerR (whiskerR_pp x q r)^ (whiskerL w p) =
whiskerL (whiskerL u p) (whiskerR_pp y q r)^ @ wlrnat p (q @ r)
Proof .X : Type a, b, c : X u, v, w : a = b x, y : b = c p : x = y q : u = v r : v = w
(wlrnat p q [I] wlrnat p r) @ whiskerR (whiskerR_pp x q r)^ (whiskerL w p) =
whiskerL (whiskerL u p) (whiskerR_pp y q r)^ @ wlrnat p (q @ r)
by destruct p, q, r.
Defined .
(** We now prove that [wlrnat (p @ q) r] suitably relates to [wlrnat p r] and [wlrnat q r]. *)
Definition wlrnat_pp_p {X } {a b c : X} {u v : a = b} {x y z : b = c} (p : x = y) (q : y = z) (r : u = v)
: (wlrnat p r [-] wlrnat q r) @ whiskerL _ (whiskerL_pp _ p q)^ =
whiskerR (whiskerL_pp _ p q)^ _ @ wlrnat (p @ q) r.X : Type a, b, c : X u, v : a = b x, y, z : b = c p : x = y q : y = z r : u = v
(wlrnat p r [-] wlrnat q r) @ whiskerL (whiskerR r x) (whiskerL_pp v p q)^ =
whiskerR (whiskerL_pp u p q)^ (whiskerR r z) @ wlrnat (p @ q) r
Proof .X : Type a, b, c : X u, v : a = b x, y, z : b = c p : x = y q : y = z r : u = v
(wlrnat p r [-] wlrnat q r) @ whiskerL (whiskerR r x) (whiskerL_pp v p q)^ =
whiskerR (whiskerL_pp u p q)^ (whiskerR r z) @ wlrnat (p @ q) r
by destruct p, q, r.
Defined .
(** We now prove that [wlrnat p q] suitably relates to [wlrnat q p]. *)
Definition wlrnat_V {X } {a : X} {u v x y : idpath a = idpath a} p q
: whiskerR (wlrnat p q) (eh v y) @ (ehrnat q x [-] ehlnat v p) =
(ehlnat u p [-] ehrnat q y) @ whiskerL (eh u x) (wlrnat q p)^.X : Type a : X u, v, x, y : 1 = 1 p : x = y q : u = v
whiskerR (wlrnat p q) (eh v y) @ (ehrnat q x [-] ehlnat v p) =
(ehlnat u p [-] ehrnat q y) @ whiskerL (eh u x) (wlrnat q p)^
Proof .X : Type a : X u, v, x, y : 1 = 1 p : x = y q : u = v
whiskerR (wlrnat p q) (eh v y) @ (ehrnat q x [-] ehlnat v p) =
(ehlnat u p [-] ehrnat q y) @ whiskerL (eh u x) (wlrnat q p)^
destruct p, q.X : Type a : X u, x : 1 = 1
whiskerR (wlrnat 1 1 ) (eh u x) @ (ehrnat 1 x [-] ehlnat u 1 ) =
(ehlnat u 1 [-] ehrnat 1 x) @ whiskerL (eh u x) (wlrnat 1 1 )^
exact (lrucancel 1 ).
Defined .
(** We now prove that [eh p (q @ r)] suitably relates to [eh p q] and [eh p r]. *)
Definition eh_p_pp_gen
{X : Type }
(* 0 -paths *)
{a b c d e f : X}
(* 1 -paths *)
{wlx0 x0 : a = b}
{wlx1 x1 : c = d}
{wlx2 x2 : e = f}
{wry0 y0 : b = d}
{wry1 y1 : a = c}
{wrz0 z0 : d = f}
{wrz1 z1 : c = e}
{wryz0 : b = f}
{wryz1 : a = e}
(* 2 -paths *)
{ulnat_x0 : wlx0 @ 1 = 1 @ x0}
{ulnat_x1 : wlx1 @ 1 = 1 @ x1}
{ulnat_x2 : wlx2 @ 1 = 1 @ x2}
{urnat_y0 : wry0 @ 1 = 1 @ y0}
{urnat_y1 : wry1 @ 1 = 1 @ y1}
{urnat_z0 : wrz0 @ 1 = 1 @ z0}
{urnat_z1 : wrz1 @ 1 = 1 @ z1}
{urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0)}
{urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)}
{wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1}
{wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2}
{wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2}
{wrpp_yz0 : wry0 @ wrz0 = wryz0}
{wrpp_yz1 : wry1 @ wrz1 = wryz1}
(* 3 -paths *)
(H_urnat_yz0 : (urnat_y0 [-] urnat_z0) = whiskerR wrpp_yz0 _ @ urnat_yz0)
(H_urnat_yz1 : (urnat_y1 [-] urnat_z1) = whiskerR wrpp_yz1 _ @ urnat_yz1)
(H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 _ =
whiskerL _ wrpp_yz0 @ wlrnat_x_yz)
: let EH_x_y := (rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @
wlrnat_x_y @ rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_x_z := (rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @
wlrnat_x_z @ rlucancel_inv (urnat_z1 [-] ulnat_x2) in
let EH_x_yz := (rlucancel_inv (ulnat_x0 [-] urnat_yz0))^ @
wlrnat_x_yz @ rlucancel_inv (urnat_yz1 [-] ulnat_x2) in
EH_x_yz @ (concat_pp_p _ _ _ @ whiskerL _ EH_x_z^) =
concat_p_pp _ _ _ @ whiskerR EH_x_y _ @ concat_pp_p _ _ _.X : Type a, b, c, d, e, f : X wlx0, x0 : a = b wlx1, x1 : c = d wlx2, x2 : e = f wry0, y0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e wryz0 : b = f wryz1 : a = e ulnat_x0 : wlx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_y0 : wry0 @ 1 = 1 @ y0 urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0) urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1) wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wrpp_yz0 : wry0 @ wrz0 = wryz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_x_z :=
(rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2) in
let EH_x_yz :=
(rlucancel_inv (ulnat_x0 [-] urnat_yz0))^ @ wlrnat_x_yz @
rlucancel_inv (urnat_yz1 [-] ulnat_x2) in
EH_x_yz @ (concat_pp_p y1 z1 x2 @ whiskerL y1 EH_x_z^) =
concat_p_pp x0 y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 x1 z0
Proof .X : Type a, b, c, d, e, f : X wlx0, x0 : a = b wlx1, x1 : c = d wlx2, x2 : e = f wry0, y0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e wryz0 : b = f wryz1 : a = e ulnat_x0 : wlx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_y0 : wry0 @ 1 = 1 @ y0 urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0) urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1) wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wrpp_yz0 : wry0 @ wrz0 = wryz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_x_z :=
(rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2) in
let EH_x_yz :=
(rlucancel_inv (ulnat_x0 [-] urnat_yz0))^ @ wlrnat_x_yz @
rlucancel_inv (urnat_yz1 [-] ulnat_x2) in
EH_x_yz @ (concat_pp_p y1 z1 x2 @ whiskerL y1 EH_x_z^) =
concat_p_pp x0 y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 x1 z0
apply moveR_Vp in H_urnat_yz0, H_urnat_yz1, H_wlrnat_x_yz.X : Type a, b, c, d, e, f : X wlx0, x0 : a = b wlx1, x1 : c = d wlx2, x2 : e = f wry0, y0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e wryz0 : b = f wryz1 : a = e ulnat_x0 : wlx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_y0 : wry0 @ 1 = 1 @ y0 urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0) urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1) wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wrpp_yz0 : wry0 @ wrz0 = wryz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 H_urnat_yz0 : (whiskerR wrpp_yz0 1 )^ @ (urnat_y0 [-] urnat_z0) = urnat_yz0 H_urnat_yz1 : (whiskerR wrpp_yz1 1 )^ @ (urnat_y1 [-] urnat_z1) = urnat_yz1 H_wlrnat_x_yz : (whiskerL wlx0 wrpp_yz0)^ @
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2) = wlrnat_x_yz
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_x_z :=
(rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2) in
let EH_x_yz :=
(rlucancel_inv (ulnat_x0 [-] urnat_yz0))^ @ wlrnat_x_yz @
rlucancel_inv (urnat_yz1 [-] ulnat_x2) in
EH_x_yz @ (concat_pp_p y1 z1 x2 @ whiskerL y1 EH_x_z^) =
concat_p_pp x0 y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 x1 z0
destruct H_urnat_yz0, H_urnat_yz1, H_wlrnat_x_yz.X : Type a, b, c, d, e, f : X wlx0, x0 : a = b wlx1, x1 : c = d wlx2, x2 : e = f wry0, y0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e wryz0 : b = f wryz1 : a = e ulnat_x0 : wlx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_y0 : wry0 @ 1 = 1 @ y0 urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wrpp_yz0 : wry0 @ wrz0 = wryz0 wrpp_yz1 : wry1 @ wrz1 = wryz1
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_x_z :=
(rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2) in
let EH_x_yz :=
(rlucancel_inv
(ulnat_x0 [-] (whiskerR wrpp_yz0 1 )^ @ (urnat_y0 [-] urnat_z0)))^ @
((whiskerL wlx0 wrpp_yz0)^ @
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2)) @
rlucancel_inv
((whiskerR wrpp_yz1 1 )^ @ (urnat_y1 [-] urnat_z1) [-] ulnat_x2)
in
EH_x_yz @ (concat_pp_p y1 z1 x2 @ whiskerL y1 EH_x_z^) =
concat_p_pp x0 y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 x1 z0
destruct wrpp_yz0, wrpp_yz1.X : Type a, b, c, d, e, f : X wlx0, x0 : a = b wlx1, x1 : c = d wlx2, x2 : e = f wry0, y0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e ulnat_x0 : wlx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_y0 : wry0 @ 1 = 1 @ y0 urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_x_z :=
(rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2) in
let EH_x_yz :=
(rlucancel_inv (ulnat_x0 [-] (whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1) [-] ulnat_x2) in
EH_x_yz @ (concat_pp_p y1 z1 x2 @ whiskerL y1 EH_x_z^) =
concat_p_pp x0 y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 x1 z0
revert x0 ulnat_x0.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1, x1 : c = d wlx2, x2 : e = f wry0, y0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_y0 : wry0 @ 1 = 1 @ y0 urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
forall (x0 : a = b) (ulnat_x0 : wlx0 @ 1 = 1 @ x0),
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_x_z :=
(rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2) in
let EH_x_yz :=
(rlucancel_inv (ulnat_x0 [-] (whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1) [-] ulnat_x2) in
EH_x_yz @ (concat_pp_p y1 z1 x2 @ whiskerL y1 EH_x_z^) =
concat_p_pp x0 y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 x1 z0
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1, x1 : c = d wlx2, x2 : e = f wry0, y0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_y0 : wry0 @ 1 = 1 @ y0 urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
(fun (q : a = b) (s : wlx0 @ 1 = 1 @ q) =>
let EH_x_y :=
(rlucancel_inv (s [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_x_z :=
(rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2) in
let EH_x_yz :=
(rlucancel_inv (s [-] (whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1) [-] ulnat_x2) in
EH_x_yz @ (concat_pp_p y1 z1 x2 @ whiskerL y1 EH_x_z^) =
concat_p_pp q y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 x1 z0) wlx0
(rlucancel 1 )
revert x1 ulnat_x1.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2, x2 : e = f wry0, y0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_y0 : wry0 @ 1 = 1 @ y0 urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
forall (x1 : c = d) (ulnat_x1 : wlx1 @ 1 = 1 @ x1),
(fun (q : a = b) (s : wlx0 @ 1 = 1 @ q) =>
let EH_x_y :=
(rlucancel_inv (s [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_x_z :=
(rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2) in
let EH_x_yz :=
(rlucancel_inv (s [-] (whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1) [-] ulnat_x2) in
EH_x_yz @ (concat_pp_p y1 z1 x2 @ whiskerL y1 EH_x_z^) =
concat_p_pp q y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 x1 z0) wlx0
(rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2, x2 : e = f wry0, y0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_y0 : wry0 @ 1 = 1 @ y0 urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
(fun (q : c = d) (s : wlx1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wlx0 @ 1 = 1 @ q0) =>
let EH_x_y :=
(rlucancel_inv (s0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] s) in
let EH_x_z :=
(rlucancel_inv (s [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2) in
let EH_x_yz :=
(rlucancel_inv (s0 [-] (whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1) [-] ulnat_x2) in
EH_x_yz @ (concat_pp_p y1 z1 x2 @ whiskerL y1 EH_x_z^) =
concat_p_pp q0 y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 q z0) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 )
revert x2 ulnat_x2.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2 : e = f wry0, y0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e urnat_y0 : wry0 @ 1 = 1 @ y0 urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
forall (x2 : e = f) (ulnat_x2 : wlx2 @ 1 = 1 @ x2),
(fun (q : c = d) (s : wlx1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wlx0 @ 1 = 1 @ q0) =>
let EH_x_y :=
(rlucancel_inv (s0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] s) in
let EH_x_z :=
(rlucancel_inv (s [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2) in
let EH_x_yz :=
(rlucancel_inv (s0 [-] (whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1) [-] ulnat_x2) in
EH_x_yz @ (concat_pp_p y1 z1 x2 @ whiskerL y1 EH_x_z^) =
concat_p_pp q0 y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 q z0) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2 : e = f wry0, y0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e urnat_y0 : wry0 @ 1 = 1 @ y0 urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
(fun (q : e = f) (s : wlx2 @ 1 = 1 @ q) =>
(fun (q0 : c = d) (s0 : wlx1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wlx0 @ 1 = 1 @ q1) =>
let EH_x_y :=
(rlucancel_inv (s1 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] s0) in
let EH_x_z :=
(rlucancel_inv (s0 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] s) in
let EH_x_yz :=
(rlucancel_inv (s1 [-] (whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1) [-] s) in
EH_x_yz @ (concat_pp_p y1 z1 q @ whiskerL y1 EH_x_z^) =
concat_p_pp q1 y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 q0 z0) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 )
revert y0 urnat_y0.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2 : e = f wry0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
forall (y0 : b = d) (urnat_y0 : wry0 @ 1 = 1 @ y0),
(fun (q : e = f) (s : wlx2 @ 1 = 1 @ q) =>
(fun (q0 : c = d) (s0 : wlx1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wlx0 @ 1 = 1 @ q1) =>
let EH_x_y :=
(rlucancel_inv (s1 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] s0) in
let EH_x_z :=
(rlucancel_inv (s0 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] s) in
let EH_x_yz :=
(rlucancel_inv (s1 [-] (whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1) [-] s) in
EH_x_yz @ (concat_pp_p y1 z1 q @ whiskerL y1 EH_x_z^) =
concat_p_pp q1 y0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 q0 z0) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2 : e = f wry0 : b = d wry1, y1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e urnat_y1 : wry1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
(fun (q : b = d) (s : wry0 @ 1 = 1 @ q) =>
(fun (q0 : e = f) (s0 : wlx2 @ 1 = 1 @ q0) =>
(fun (q1 : c = d) (s1 : wlx1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wlx0 @ 1 = 1 @ q2) =>
let EH_x_y :=
(rlucancel_inv (s2 [-] s))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] s1) in
let EH_x_z :=
(rlucancel_inv (s1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] s0) in
let EH_x_yz :=
(rlucancel_inv (s2 [-] (whiskerR 1 1 )^ @ (s [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1) [-] s0) in
EH_x_yz @ (concat_pp_p y1 z1 q0 @ whiskerL y1 EH_x_z^) =
concat_p_pp q2 q z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 q1 z0) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 )
revert y1 urnat_y1.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2 : e = f wry0 : b = d wry1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
forall (y1 : a = c) (urnat_y1 : wry1 @ 1 = 1 @ y1),
(fun (q : b = d) (s : wry0 @ 1 = 1 @ q) =>
(fun (q0 : e = f) (s0 : wlx2 @ 1 = 1 @ q0) =>
(fun (q1 : c = d) (s1 : wlx1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wlx0 @ 1 = 1 @ q2) =>
let EH_x_y :=
(rlucancel_inv (s2 [-] s))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] s1) in
let EH_x_z :=
(rlucancel_inv (s1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] s0) in
let EH_x_yz :=
(rlucancel_inv (s2 [-] (whiskerR 1 1 )^ @ (s [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1) [-] s0) in
EH_x_yz @ (concat_pp_p y1 z1 q0 @ whiskerL y1 EH_x_z^) =
concat_p_pp q2 q z0 @ whiskerR EH_x_y z0 @ concat_pp_p y1 q1 z0) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2 : e = f wry0 : b = d wry1 : a = c wrz0, z0 : d = f wrz1, z1 : c = e urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
(fun (q : a = c) (s : wry1 @ 1 = 1 @ q) =>
(fun (q0 : b = d) (s0 : wry0 @ 1 = 1 @ q0) =>
(fun (q1 : e = f) (s1 : wlx2 @ 1 = 1 @ q1) =>
(fun (q2 : c = d) (s2 : wlx1 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wlx0 @ 1 = 1 @ q3) =>
let EH_x_y :=
(rlucancel_inv (s3 [-] s0))^ @ wlrnat_x_y @ rlucancel_inv (s [-] s2)
in
let EH_x_z :=
(rlucancel_inv (s2 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] s1) in
let EH_x_yz :=
(rlucancel_inv (s3 [-] (whiskerR 1 1 )^ @ (s0 [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (s [-] urnat_z1) [-] s1) in
EH_x_yz @ (concat_pp_p q z1 q1 @ whiskerL q EH_x_z^) =
concat_p_pp q3 q0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p q q2 z0) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 ))
wry1 (rlucancel 1 )
revert z0 urnat_z0.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2 : e = f wry0 : b = d wry1 : a = c wrz0 : d = f wrz1, z1 : c = e urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
forall (z0 : d = f) (urnat_z0 : wrz0 @ 1 = 1 @ z0),
(fun (q : a = c) (s : wry1 @ 1 = 1 @ q) =>
(fun (q0 : b = d) (s0 : wry0 @ 1 = 1 @ q0) =>
(fun (q1 : e = f) (s1 : wlx2 @ 1 = 1 @ q1) =>
(fun (q2 : c = d) (s2 : wlx1 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wlx0 @ 1 = 1 @ q3) =>
let EH_x_y :=
(rlucancel_inv (s3 [-] s0))^ @ wlrnat_x_y @ rlucancel_inv (s [-] s2)
in
let EH_x_z :=
(rlucancel_inv (s2 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] s1) in
let EH_x_yz :=
(rlucancel_inv (s3 [-] (whiskerR 1 1 )^ @ (s0 [-] urnat_z0)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (s [-] urnat_z1) [-] s1) in
EH_x_yz @ (concat_pp_p q z1 q1 @ whiskerL q EH_x_z^) =
concat_p_pp q3 q0 z0 @ whiskerR EH_x_y z0 @ concat_pp_p q q2 z0) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 ))
wry1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2 : e = f wry0 : b = d wry1 : a = c wrz0 : d = f wrz1, z1 : c = e urnat_z1 : wrz1 @ 1 = 1 @ z1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
(fun (q : d = f) (s : wrz0 @ 1 = 1 @ q) =>
(fun (q0 : a = c) (s0 : wry1 @ 1 = 1 @ q0) =>
(fun (q1 : b = d) (s1 : wry0 @ 1 = 1 @ q1) =>
(fun (q2 : e = f) (s2 : wlx2 @ 1 = 1 @ q2) =>
(fun (q3 : c = d) (s3 : wlx1 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wlx0 @ 1 = 1 @ q4) =>
let EH_x_y :=
(rlucancel_inv (s4 [-] s1))^ @ wlrnat_x_y @ rlucancel_inv (s0 [-] s3)
in
let EH_x_z :=
(rlucancel_inv (s3 [-] s))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] s2) in
let EH_x_yz :=
(rlucancel_inv (s4 [-] (whiskerR 1 1 )^ @ (s1 [-] s)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (s0 [-] urnat_z1) [-] s2) in
EH_x_yz @ (concat_pp_p q0 z1 q2 @ whiskerL q0 EH_x_z^) =
concat_p_pp q4 q1 q @ whiskerR EH_x_y q @ concat_pp_p q0 q3 q) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 ))
wry1 (rlucancel 1 ))
wrz0 (rlucancel 1 )
revert z1 urnat_z1.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2 : e = f wry0 : b = d wry1 : a = c wrz0 : d = f wrz1 : c = e wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
forall (z1 : c = e) (urnat_z1 : wrz1 @ 1 = 1 @ z1),
(fun (q : d = f) (s : wrz0 @ 1 = 1 @ q) =>
(fun (q0 : a = c) (s0 : wry1 @ 1 = 1 @ q0) =>
(fun (q1 : b = d) (s1 : wry0 @ 1 = 1 @ q1) =>
(fun (q2 : e = f) (s2 : wlx2 @ 1 = 1 @ q2) =>
(fun (q3 : c = d) (s3 : wlx1 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wlx0 @ 1 = 1 @ q4) =>
let EH_x_y :=
(rlucancel_inv (s4 [-] s1))^ @ wlrnat_x_y @ rlucancel_inv (s0 [-] s3)
in
let EH_x_z :=
(rlucancel_inv (s3 [-] s))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] s2) in
let EH_x_yz :=
(rlucancel_inv (s4 [-] (whiskerR 1 1 )^ @ (s1 [-] s)))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (s0 [-] urnat_z1) [-] s2) in
EH_x_yz @ (concat_pp_p q0 z1 q2 @ whiskerL q0 EH_x_z^) =
concat_p_pp q4 q1 q @ whiskerR EH_x_y q @ concat_pp_p q0 q3 q) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 ))
wry1 (rlucancel 1 ))
wrz0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : c = d wlx2 : e = f wry0 : b = d wry1 : a = c wrz0 : d = f wrz1 : c = e wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2
(fun (q : c = e) (s : wrz1 @ 1 = 1 @ q) =>
(fun (q0 : d = f) (s0 : wrz0 @ 1 = 1 @ q0) =>
(fun (q1 : a = c) (s1 : wry1 @ 1 = 1 @ q1) =>
(fun (q2 : b = d) (s2 : wry0 @ 1 = 1 @ q2) =>
(fun (q3 : e = f) (s3 : wlx2 @ 1 = 1 @ q3) =>
(fun (q4 : c = d) (s4 : wlx1 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wlx0 @ 1 = 1 @ q5) =>
let EH_x_y :=
(rlucancel_inv (s5 [-] s2))^ @ wlrnat_x_y @
rlucancel_inv (s1 [-] s4) in
let EH_x_z :=
(rlucancel_inv (s4 [-] s0))^ @ wlrnat_x_z @ rlucancel_inv (s [-] s3)
in
let EH_x_yz :=
(rlucancel_inv (s5 [-] (whiskerR 1 1 )^ @ (s2 [-] s0)))^ @
((whiskerL wlx0 1 )^ @
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv ((whiskerR 1 1 )^ @ (s1 [-] s) [-] s3) in
EH_x_yz @ (concat_pp_p q1 q q3 @ whiskerL q1 EH_x_z^) =
concat_p_pp q5 q2 q0 @ whiskerR EH_x_y q0 @ concat_pp_p q1 q4 q0) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 ))
wry1 (rlucancel 1 ))
wrz0 (rlucancel 1 ))
wrz1 (rlucancel 1 )
destruct wry0, wry1, wrz0, wrz1.X : Type a, b : X wlx0, wlx1, wlx2 : a = b wlrnat_x_y : wlx0 @ 1 = 1 @ wlx1 wlrnat_x_z : wlx1 @ 1 = 1 @ wlx2
let EH_x_y :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_x_y @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_x_z @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_yz :=
(rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 )))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 )
in
EH_x_yz @ (concat_pp_p 1 1 wlx2 @ whiskerL 1 EH_x_z^) =
concat_p_pp wlx0 1 1 @ whiskerR EH_x_y 1 @ concat_pp_p 1 wlx1 1
revert wlx2 wlrnat_x_z.X : Type a, b : X wlx0, wlx1 : a = b wlrnat_x_y : wlx0 @ 1 = 1 @ wlx1
forall (wlx2 : a = b) (wlrnat_x_z : wlx1 @ 1 = 1 @ wlx2),
let EH_x_y :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_x_y @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_x_z @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_yz :=
(rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 )))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)) @
rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 )
in
EH_x_yz @ (concat_pp_p 1 1 wlx2 @ whiskerL 1 EH_x_z^) =
concat_p_pp wlx0 1 1 @ whiskerR EH_x_y 1 @ concat_pp_p 1 wlx1 1
snapply equiv_path_ind_rlucancel. X : Type a, b : X wlx0, wlx1 : a = b wlrnat_x_y : wlx0 @ 1 = 1 @ wlx1
(fun (q : a = b) (s : wlx1 @ 1 = 1 @ q) =>
let EH_x_y :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_x_y @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ s @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_yz :=
(rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 )))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] s) @ whiskerR 1 q)) @
rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 )
in
EH_x_yz @ (concat_pp_p 1 1 q @ whiskerL 1 EH_x_z^) =
concat_p_pp wlx0 1 1 @ whiskerR EH_x_y 1 @ concat_pp_p 1 wlx1 1 ) wlx1
(rlucancel 1 )
revert wlx1 wlrnat_x_y.X : Type a, b : X wlx0 : a = b
forall (wlx1 : a = b) (wlrnat_x_y : wlx0 @ 1 = 1 @ wlx1),
(fun (q : a = b) (s : wlx1 @ 1 = 1 @ q) =>
let EH_x_y :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_x_y @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ s @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_yz :=
(rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 )))^ @
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] s) @ whiskerR 1 q)) @
rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 )
in
EH_x_yz @ (concat_pp_p 1 1 q @ whiskerL 1 EH_x_z^) =
concat_p_pp wlx0 1 1 @ whiskerR EH_x_y 1 @ concat_pp_p 1 wlx1 1 ) wlx1
(rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b : X wlx0 : a = b
(fun (q : a = b) (s : wlx0 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : q @ 1 = 1 @ q0) =>
let EH_x_y :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ s @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ s0 @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_yz :=
(rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 )))^ @
((whiskerL wlx0 1 )^ @ ((s [I] s0) @ whiskerR 1 q0)) @
rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 )
in
EH_x_yz @ (concat_pp_p 1 1 q0 @ whiskerL 1 EH_x_z^) =
concat_p_pp wlx0 1 1 @ whiskerR EH_x_y 1 @ concat_pp_p 1 q 1 ) q
(rlucancel 1 ))
wlx0 (rlucancel 1 )
destruct wlx0.X : Type a : X
let EH_x_y :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ rlucancel 1 @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ rlucancel 1 @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_x_yz :=
(rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 )))^ @
((whiskerL 1 1 )^ @ ((rlucancel 1 [I] rlucancel 1 ) @ whiskerR 1 1 )) @
rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 )
in
EH_x_yz @ (concat_pp_p 1 1 1 @ whiskerL 1 EH_x_z^) =
concat_p_pp 1 1 1 @ whiskerR EH_x_y 1 @ concat_pp_p 1 1 1
reflexivity .
Defined .
Theorem eh_p_pp {X } {a : X} (p q r : idpath a = idpath a)
: eh p (q @ r) @ (concat_pp_p _ _ _ @ whiskerL _ (eh p r)^) =
concat_p_pp _ _ _ @ whiskerR (eh p q) _ @ concat_pp_p _ _ _.X : Type a : X p, q, r : 1 = 1
eh p (q @ r) @ (concat_pp_p q r p @ whiskerL q (eh p r)^) =
concat_p_pp p q r @ whiskerR (eh p q) r @ concat_pp_p q p r
Proof .X : Type a : X p, q, r : 1 = 1
eh p (q @ r) @ (concat_pp_p q r p @ whiskerL q (eh p r)^) =
concat_p_pp p q r @ whiskerR (eh p q) r @ concat_pp_p q p r
napply eh_p_pp_gen. X : Type a : X p, q, r : 1 = 1
urnat q [-] urnat r = whiskerR ?Goal 1 @ urnat (q @ r)
- X : Type a : X p, q, r : 1 = 1
urnat q [-] urnat r = whiskerR ?Goal 1 @ urnat (q @ r)
exact (urnat_pp q r).
- X : Type a : X p, q, r : 1 = 1
urnat q [-] urnat r = whiskerR ?Goal 1 @ urnat (q @ r)
exact (urnat_pp q r).
- X : Type a : X p, q, r : 1 = 1
(wlrnat p q [I] wlrnat p r) @ whiskerR (whiskerR_pp 1 q r)^ (whiskerL 1 p) =
whiskerL (whiskerL 1 p) (whiskerR_pp 1 q r)^ @ wlrnat p (q @ r)
exact (wlrnat_p_pp p q r).
Defined .
(** We now prove that "eh (p @ q) r" suitably relates to "eh p r" and "eh q r". *)
Definition eh_pp_p_gen
{X : Type }
(* 0 -paths *)
{a b c d e f : X}
(* 1 -paths *)
{wlx0 x0 : a = b}
{wlx1 x1 : d = e}
{wly0 y0 : b = c}
{wly1 y1 : e = f}
{wrz0 z0 : c = f}
{wrz1 z1 : b = e}
{wrz2 z2 : a = d}
{wlxy0 : a = c}
{wlxy1 : d = f}
(* 2 -paths *)
{ulnat_x0 : wlx0 @ 1 = 1 @ x0}
{ulnat_x1 : wlx1 @ 1 = 1 @ x1}
{ulnat_y0 : wly0 @ 1 = 1 @ y0}
{ulnat_y1 : wly1 @ 1 = 1 @ y1}
{urnat_z0 : wrz0 @ 1 = 1 @ z0}
{urnat_z1 : wrz1 @ 1 = 1 @ z1}
{urnat_z2 : wrz2 @ 1 = 1 @ z2}
{ulnat_xy0 : wlxy0 @ 1 = 1 @ (x0 @ y0)}
{ulnat_xy1 : wlxy1 @ 1 = 1 @ (x1 @ y1)}
{wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1}
{wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1}
{wlrnat_xy_z : wlxy0 @ wrz0 = wrz2 @ wlxy1}
{wlpp_xy0 : wlx0 @ wly0 = wlxy0}
{wlpp_xy1 : wlx1 @ wly1 = wlxy1}
(* 3 -paths *)
(H_ulnat_xy0 : (ulnat_x0 [-] ulnat_y0) = whiskerR wlpp_xy0 _ @ ulnat_xy0)
(H_ulnat_xy1 : (ulnat_x1 [-] ulnat_y1) = whiskerR wlpp_xy1 _ @ ulnat_xy1)
(H_wlrnat_xy_z : (wlrnat_x_z [-] wlrnat_y_z) @ whiskerL _ wlpp_xy1 =
whiskerR wlpp_xy0 _ @ wlrnat_xy_z)
: let EH_x_z := (rlucancel_inv (ulnat_x0 [-] urnat_z1))^ @
wlrnat_x_z @ rlucancel_inv (urnat_z2 [-] ulnat_x1) in
let EH_y_z := (rlucancel_inv (ulnat_y0 [-] urnat_z0))^ @
wlrnat_y_z @ rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z := (rlucancel_inv (ulnat_xy0 [-] urnat_z0))^ @
wlrnat_xy_z @ rlucancel_inv (urnat_z2 [-] ulnat_xy1) in
EH_xy_z @ (concat_p_pp _ _ _ @ whiskerR EH_x_z^ _) =
concat_pp_p _ _ _ @ whiskerL _ EH_y_z @ concat_p_pp _ _ _.X : Type a, b, c, d, e, f : X wlx0, x0 : a = b wlx1, x1 : d = e wly0, y0 : b = c wly1, y1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d wlxy0 : a = c wlxy1 : d = f ulnat_x0 : wlx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 ulnat_xy0 : wlxy0 @ 1 = 1 @ (x0 @ y0) ulnat_xy1 : wlxy1 @ 1 = 1 @ (x1 @ y1) wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1 wlrnat_xy_z : wlxy0 @ wrz0 = wrz2 @ wlxy1 wlpp_xy0 : wlx0 @ wly0 = wlxy0 wlpp_xy1 : wlx1 @ wly1 = wlxy1 H_ulnat_xy0 : ulnat_x0 [-] ulnat_y0 = whiskerR wlpp_xy0 1 @ ulnat_xy0 H_ulnat_xy1 : ulnat_x1 [-] ulnat_y1 = whiskerR wlpp_xy1 1 @ ulnat_xy1 H_wlrnat_xy_z : (wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 wlpp_xy1 =
whiskerR wlpp_xy0 wrz0 @ wlrnat_xy_z
let EH_x_z :=
(rlucancel_inv (ulnat_x0 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] ulnat_x1) in
let EH_y_z :=
(rlucancel_inv (ulnat_y0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv (ulnat_xy0 [-] urnat_z0))^ @ wlrnat_xy_z @
rlucancel_inv (urnat_z2 [-] ulnat_xy1) in
EH_xy_z @ (concat_p_pp z2 x1 y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p x0 y0 z0 @ whiskerL x0 EH_y_z @ concat_p_pp x0 z1 y1
Proof .X : Type a, b, c, d, e, f : X wlx0, x0 : a = b wlx1, x1 : d = e wly0, y0 : b = c wly1, y1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d wlxy0 : a = c wlxy1 : d = f ulnat_x0 : wlx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 ulnat_xy0 : wlxy0 @ 1 = 1 @ (x0 @ y0) ulnat_xy1 : wlxy1 @ 1 = 1 @ (x1 @ y1) wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1 wlrnat_xy_z : wlxy0 @ wrz0 = wrz2 @ wlxy1 wlpp_xy0 : wlx0 @ wly0 = wlxy0 wlpp_xy1 : wlx1 @ wly1 = wlxy1 H_ulnat_xy0 : ulnat_x0 [-] ulnat_y0 = whiskerR wlpp_xy0 1 @ ulnat_xy0 H_ulnat_xy1 : ulnat_x1 [-] ulnat_y1 = whiskerR wlpp_xy1 1 @ ulnat_xy1 H_wlrnat_xy_z : (wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 wlpp_xy1 =
whiskerR wlpp_xy0 wrz0 @ wlrnat_xy_z
let EH_x_z :=
(rlucancel_inv (ulnat_x0 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] ulnat_x1) in
let EH_y_z :=
(rlucancel_inv (ulnat_y0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv (ulnat_xy0 [-] urnat_z0))^ @ wlrnat_xy_z @
rlucancel_inv (urnat_z2 [-] ulnat_xy1) in
EH_xy_z @ (concat_p_pp z2 x1 y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p x0 y0 z0 @ whiskerL x0 EH_y_z @ concat_p_pp x0 z1 y1
apply moveR_Vp in H_ulnat_xy0, H_ulnat_xy1, H_wlrnat_xy_z.X : Type a, b, c, d, e, f : X wlx0, x0 : a = b wlx1, x1 : d = e wly0, y0 : b = c wly1, y1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d wlxy0 : a = c wlxy1 : d = f ulnat_x0 : wlx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 ulnat_xy0 : wlxy0 @ 1 = 1 @ (x0 @ y0) ulnat_xy1 : wlxy1 @ 1 = 1 @ (x1 @ y1) wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1 wlrnat_xy_z : wlxy0 @ wrz0 = wrz2 @ wlxy1 wlpp_xy0 : wlx0 @ wly0 = wlxy0 wlpp_xy1 : wlx1 @ wly1 = wlxy1 H_ulnat_xy0 : (whiskerR wlpp_xy0 1 )^ @ (ulnat_x0 [-] ulnat_y0) = ulnat_xy0 H_ulnat_xy1 : (whiskerR wlpp_xy1 1 )^ @ (ulnat_x1 [-] ulnat_y1) = ulnat_xy1 H_wlrnat_xy_z : (whiskerR wlpp_xy0 wrz0)^ @
((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 wlpp_xy1) = wlrnat_xy_z
let EH_x_z :=
(rlucancel_inv (ulnat_x0 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] ulnat_x1) in
let EH_y_z :=
(rlucancel_inv (ulnat_y0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv (ulnat_xy0 [-] urnat_z0))^ @ wlrnat_xy_z @
rlucancel_inv (urnat_z2 [-] ulnat_xy1) in
EH_xy_z @ (concat_p_pp z2 x1 y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p x0 y0 z0 @ whiskerL x0 EH_y_z @ concat_p_pp x0 z1 y1
destruct H_ulnat_xy0, H_ulnat_xy1, H_wlrnat_xy_z.X : Type a, b, c, d, e, f : X wlx0, x0 : a = b wlx1, x1 : d = e wly0, y0 : b = c wly1, y1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d wlxy0 : a = c wlxy1 : d = f ulnat_x0 : wlx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1 wlpp_xy0 : wlx0 @ wly0 = wlxy0 wlpp_xy1 : wlx1 @ wly1 = wlxy1
let EH_x_z :=
(rlucancel_inv (ulnat_x0 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] ulnat_x1) in
let EH_y_z :=
(rlucancel_inv (ulnat_y0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv
((whiskerR wlpp_xy0 1 )^ @ (ulnat_x0 [-] ulnat_y0) [-] urnat_z0))^ @
((whiskerR wlpp_xy0 wrz0)^ @
((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 wlpp_xy1)) @
rlucancel_inv
(urnat_z2 [-] (whiskerR wlpp_xy1 1 )^ @ (ulnat_x1 [-] ulnat_y1))
in
EH_xy_z @ (concat_p_pp z2 x1 y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p x0 y0 z0 @ whiskerL x0 EH_y_z @ concat_p_pp x0 z1 y1
destruct wlpp_xy0, wlpp_xy1.X : Type a, b, c, d, e, f : X wlx0, x0 : a = b wlx1, x1 : d = e wly0, y0 : b = c wly1, y1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d ulnat_x0 : wlx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
let EH_x_z :=
(rlucancel_inv (ulnat_x0 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] ulnat_x1) in
let EH_y_z :=
(rlucancel_inv (ulnat_y0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (ulnat_x0 [-] ulnat_y0) [-] urnat_z0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (ulnat_x1 [-] ulnat_y1)) in
EH_xy_z @ (concat_p_pp z2 x1 y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p x0 y0 z0 @ whiskerL x0 EH_y_z @ concat_p_pp x0 z1 y1
revert x0 ulnat_x0.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1, x1 : d = e wly0, y0 : b = c wly1, y1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
forall (x0 : a = b) (ulnat_x0 : wlx0 @ 1 = 1 @ x0),
let EH_x_z :=
(rlucancel_inv (ulnat_x0 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] ulnat_x1) in
let EH_y_z :=
(rlucancel_inv (ulnat_y0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (ulnat_x0 [-] ulnat_y0) [-] urnat_z0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (ulnat_x1 [-] ulnat_y1)) in
EH_xy_z @ (concat_p_pp z2 x1 y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p x0 y0 z0 @ whiskerL x0 EH_y_z @ concat_p_pp x0 z1 y1
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1, x1 : d = e wly0, y0 : b = c wly1, y1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d ulnat_x1 : wlx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
(fun (q : a = b) (s : wlx0 @ 1 = 1 @ q) =>
let EH_x_z :=
(rlucancel_inv (s [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] ulnat_x1) in
let EH_y_z :=
(rlucancel_inv (ulnat_y0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s [-] ulnat_y0) [-] urnat_z0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (ulnat_x1 [-] ulnat_y1)) in
EH_xy_z @ (concat_p_pp z2 x1 y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p q y0 z0 @ whiskerL q EH_y_z @ concat_p_pp q z1 y1) wlx0
(rlucancel 1 )
revert x1 ulnat_x1.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0, y0 : b = c wly1, y1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
forall (x1 : d = e) (ulnat_x1 : wlx1 @ 1 = 1 @ x1),
(fun (q : a = b) (s : wlx0 @ 1 = 1 @ q) =>
let EH_x_z :=
(rlucancel_inv (s [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] ulnat_x1) in
let EH_y_z :=
(rlucancel_inv (ulnat_y0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s [-] ulnat_y0) [-] urnat_z0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (ulnat_x1 [-] ulnat_y1)) in
EH_xy_z @ (concat_p_pp z2 x1 y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p q y0 z0 @ whiskerL q EH_y_z @ concat_p_pp q z1 y1) wlx0
(rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0, y0 : b = c wly1, y1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
(fun (q : d = e) (s : wlx1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wlx0 @ 1 = 1 @ q0) =>
let EH_x_z :=
(rlucancel_inv (s0 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] s) in
let EH_y_z :=
(rlucancel_inv (ulnat_y0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s0 [-] ulnat_y0) [-] urnat_z0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (s [-] ulnat_y1)) in
EH_xy_z @ (concat_p_pp z2 q y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p q0 y0 z0 @ whiskerL q0 EH_y_z @ concat_p_pp q0 z1 y1) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 )
revert y0 ulnat_y0.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0 : b = c wly1, y1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
forall (y0 : b = c) (ulnat_y0 : wly0 @ 1 = 1 @ y0),
(fun (q : d = e) (s : wlx1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wlx0 @ 1 = 1 @ q0) =>
let EH_x_z :=
(rlucancel_inv (s0 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] s) in
let EH_y_z :=
(rlucancel_inv (ulnat_y0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s0 [-] ulnat_y0) [-] urnat_z0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (s [-] ulnat_y1)) in
EH_xy_z @ (concat_p_pp z2 q y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p q0 y0 z0 @ whiskerL q0 EH_y_z @ concat_p_pp q0 z1 y1) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0 : b = c wly1, y1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
(fun (q : b = c) (s : wly0 @ 1 = 1 @ q) =>
(fun (q0 : d = e) (s0 : wlx1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wlx0 @ 1 = 1 @ q1) =>
let EH_x_z :=
(rlucancel_inv (s1 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] s0) in
let EH_y_z :=
(rlucancel_inv (s [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s1 [-] s) [-] urnat_z0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (s0 [-] ulnat_y1)) in
EH_xy_z @ (concat_p_pp z2 q0 y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p q1 q z0 @ whiskerL q1 EH_y_z @ concat_p_pp q1 z1 y1) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wly0 (rlucancel 1 )
revert y1 ulnat_y1.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0 : b = c wly1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
forall (y1 : e = f) (ulnat_y1 : wly1 @ 1 = 1 @ y1),
(fun (q : b = c) (s : wly0 @ 1 = 1 @ q) =>
(fun (q0 : d = e) (s0 : wlx1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wlx0 @ 1 = 1 @ q1) =>
let EH_x_z :=
(rlucancel_inv (s1 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] s0) in
let EH_y_z :=
(rlucancel_inv (s [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] ulnat_y1) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s1 [-] s) [-] urnat_z0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (s0 [-] ulnat_y1)) in
EH_xy_z @ (concat_p_pp z2 q0 y1 @ whiskerR EH_x_z^ y1) =
concat_pp_p q1 q z0 @ whiskerL q1 EH_y_z @ concat_p_pp q1 z1 y1) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wly0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0 : b = c wly1 : e = f wrz0, z0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d urnat_z0 : wrz0 @ 1 = 1 @ z0 urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
(fun (q : e = f) (s : wly1 @ 1 = 1 @ q) =>
(fun (q0 : b = c) (s0 : wly0 @ 1 = 1 @ q0) =>
(fun (q1 : d = e) (s1 : wlx1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wlx0 @ 1 = 1 @ q2) =>
let EH_x_z :=
(rlucancel_inv (s2 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] s1) in
let EH_y_z :=
(rlucancel_inv (s0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] s) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s2 [-] s0) [-] urnat_z0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (s1 [-] s)) in
EH_xy_z @ (concat_p_pp z2 q1 q @ whiskerR EH_x_z^ q) =
concat_pp_p q2 q0 z0 @ whiskerL q2 EH_y_z @ concat_p_pp q2 z1 q) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 )
revert z0 urnat_z0.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0 : b = c wly1 : e = f wrz0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
forall (z0 : c = f) (urnat_z0 : wrz0 @ 1 = 1 @ z0),
(fun (q : e = f) (s : wly1 @ 1 = 1 @ q) =>
(fun (q0 : b = c) (s0 : wly0 @ 1 = 1 @ q0) =>
(fun (q1 : d = e) (s1 : wlx1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wlx0 @ 1 = 1 @ q2) =>
let EH_x_z :=
(rlucancel_inv (s2 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] s1) in
let EH_y_z :=
(rlucancel_inv (s0 [-] urnat_z0))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] s) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s2 [-] s0) [-] urnat_z0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (s1 [-] s)) in
EH_xy_z @ (concat_p_pp z2 q1 q @ whiskerR EH_x_z^ q) =
concat_pp_p q2 q0 z0 @ whiskerL q2 EH_y_z @ concat_p_pp q2 z1 q) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0 : b = c wly1 : e = f wrz0 : c = f wrz1, z1 : b = e wrz2, z2 : a = d urnat_z1 : wrz1 @ 1 = 1 @ z1 urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
(fun (q : c = f) (s : wrz0 @ 1 = 1 @ q) =>
(fun (q0 : e = f) (s0 : wly1 @ 1 = 1 @ q0) =>
(fun (q1 : b = c) (s1 : wly0 @ 1 = 1 @ q1) =>
(fun (q2 : d = e) (s2 : wlx1 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wlx0 @ 1 = 1 @ q3) =>
let EH_x_z :=
(rlucancel_inv (s3 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] s2) in
let EH_y_z :=
(rlucancel_inv (s1 [-] s))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] s0) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s3 [-] s1) [-] s))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (s2 [-] s0)) in
EH_xy_z @ (concat_p_pp z2 q2 q0 @ whiskerR EH_x_z^ q0) =
concat_pp_p q3 q1 q @ whiskerL q3 EH_y_z @ concat_p_pp q3 z1 q0) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wrz0 (rlucancel 1 )
revert z1 urnat_z1.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0 : b = c wly1 : e = f wrz0 : c = f wrz1 : b = e wrz2, z2 : a = d urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
forall (z1 : b = e) (urnat_z1 : wrz1 @ 1 = 1 @ z1),
(fun (q : c = f) (s : wrz0 @ 1 = 1 @ q) =>
(fun (q0 : e = f) (s0 : wly1 @ 1 = 1 @ q0) =>
(fun (q1 : b = c) (s1 : wly0 @ 1 = 1 @ q1) =>
(fun (q2 : d = e) (s2 : wlx1 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wlx0 @ 1 = 1 @ q3) =>
let EH_x_z :=
(rlucancel_inv (s3 [-] urnat_z1))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] s2) in
let EH_y_z :=
(rlucancel_inv (s1 [-] s))^ @ wlrnat_y_z @
rlucancel_inv (urnat_z1 [-] s0) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s3 [-] s1) [-] s))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (s2 [-] s0)) in
EH_xy_z @ (concat_p_pp z2 q2 q0 @ whiskerR EH_x_z^ q0) =
concat_pp_p q3 q1 q @ whiskerL q3 EH_y_z @ concat_p_pp q3 z1 q0) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wrz0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0 : b = c wly1 : e = f wrz0 : c = f wrz1 : b = e wrz2, z2 : a = d urnat_z2 : wrz2 @ 1 = 1 @ z2 wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
(fun (q : b = e) (s : wrz1 @ 1 = 1 @ q) =>
(fun (q0 : c = f) (s0 : wrz0 @ 1 = 1 @ q0) =>
(fun (q1 : e = f) (s1 : wly1 @ 1 = 1 @ q1) =>
(fun (q2 : b = c) (s2 : wly0 @ 1 = 1 @ q2) =>
(fun (q3 : d = e) (s3 : wlx1 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wlx0 @ 1 = 1 @ q4) =>
let EH_x_z :=
(rlucancel_inv (s4 [-] s))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] s3) in
let EH_y_z :=
(rlucancel_inv (s2 [-] s0))^ @ wlrnat_y_z @ rlucancel_inv (s [-] s1)
in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s4 [-] s2) [-] s0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (s3 [-] s1)) in
EH_xy_z @ (concat_p_pp z2 q3 q1 @ whiskerR EH_x_z^ q1) =
concat_pp_p q4 q2 q0 @ whiskerL q4 EH_y_z @ concat_p_pp q4 q q1) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wrz0 (rlucancel 1 ))
wrz1 (rlucancel 1 )
revert z2 urnat_z2.X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0 : b = c wly1 : e = f wrz0 : c = f wrz1 : b = e wrz2 : a = d wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
forall (z2 : a = d) (urnat_z2 : wrz2 @ 1 = 1 @ z2),
(fun (q : b = e) (s : wrz1 @ 1 = 1 @ q) =>
(fun (q0 : c = f) (s0 : wrz0 @ 1 = 1 @ q0) =>
(fun (q1 : e = f) (s1 : wly1 @ 1 = 1 @ q1) =>
(fun (q2 : b = c) (s2 : wly0 @ 1 = 1 @ q2) =>
(fun (q3 : d = e) (s3 : wlx1 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wlx0 @ 1 = 1 @ q4) =>
let EH_x_z :=
(rlucancel_inv (s4 [-] s))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z2 [-] s3) in
let EH_y_z :=
(rlucancel_inv (s2 [-] s0))^ @ wlrnat_y_z @ rlucancel_inv (s [-] s1)
in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s4 [-] s2) [-] s0))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (urnat_z2 [-] (whiskerR 1 1 )^ @ (s3 [-] s1)) in
EH_xy_z @ (concat_p_pp z2 q3 q1 @ whiskerR EH_x_z^ q1) =
concat_pp_p q4 q2 q0 @ whiskerL q4 EH_y_z @ concat_p_pp q4 q q1) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wrz0 (rlucancel 1 ))
wrz1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d, e, f : X wlx0 : a = b wlx1 : d = e wly0 : b = c wly1 : e = f wrz0 : c = f wrz1 : b = e wrz2 : a = d wlrnat_x_z : wlx0 @ wrz1 = wrz2 @ wlx1 wlrnat_y_z : wly0 @ wrz0 = wrz1 @ wly1
(fun (q : a = d) (s : wrz2 @ 1 = 1 @ q) =>
(fun (q0 : b = e) (s0 : wrz1 @ 1 = 1 @ q0) =>
(fun (q1 : c = f) (s1 : wrz0 @ 1 = 1 @ q1) =>
(fun (q2 : e = f) (s2 : wly1 @ 1 = 1 @ q2) =>
(fun (q3 : b = c) (s3 : wly0 @ 1 = 1 @ q3) =>
(fun (q4 : d = e) (s4 : wlx1 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wlx0 @ 1 = 1 @ q5) =>
let EH_x_z :=
(rlucancel_inv (s5 [-] s0))^ @ wlrnat_x_z @ rlucancel_inv (s [-] s4)
in
let EH_y_z :=
(rlucancel_inv (s3 [-] s1))^ @ wlrnat_y_z @
rlucancel_inv (s0 [-] s2) in
let EH_xy_z :=
(rlucancel_inv ((whiskerR 1 1 )^ @ (s5 [-] s3) [-] s1))^ @
((whiskerR 1 wrz0)^ @
((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv (s [-] (whiskerR 1 1 )^ @ (s4 [-] s2)) in
EH_xy_z @ (concat_p_pp q q4 q2 @ whiskerR EH_x_z^ q2) =
concat_pp_p q5 q3 q1 @ whiskerL q5 EH_y_z @ concat_p_pp q5 q0 q2) wlx0
(rlucancel 1 ))
wlx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wrz0 (rlucancel 1 ))
wrz1 (rlucancel 1 ))
wrz2 (rlucancel 1 )
destruct wlx0, wlx1, wly0, wly1.X : Type a, d : X wrz0, wrz1, wrz2 : a = d wlrnat_x_z : 1 @ wrz1 = wrz2 @ 1 wlrnat_y_z : 1 @ wrz0 = wrz1 @ 1
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_x_z @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_y_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_y_z @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_xy_z :=
(rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 ))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
in
EH_xy_z @ (concat_p_pp wrz2 1 1 @ whiskerR EH_x_z^ 1 ) =
concat_pp_p 1 1 wrz0 @ whiskerL 1 EH_y_z @ concat_p_pp 1 wrz1 1
revert wrz2 wlrnat_x_z.X : Type a, d : X wrz0, wrz1 : a = d wlrnat_y_z : 1 @ wrz0 = wrz1 @ 1
forall (wrz2 : a = d) (wlrnat_x_z : 1 @ wrz1 = wrz2 @ 1 ),
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_x_z @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_y_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_y_z @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_xy_z :=
(rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 ))^ @
((whiskerR 1 wrz0)^ @ ((wlrnat_x_z [-] wlrnat_y_z) @ whiskerL wrz2 1 )) @
rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
in
EH_xy_z @ (concat_p_pp wrz2 1 1 @ whiskerR EH_x_z^ 1 ) =
concat_pp_p 1 1 wrz0 @ whiskerL 1 EH_y_z @ concat_p_pp 1 wrz1 1
snapply equiv_path_ind_lrucancel. X : Type a, d : X wrz0, wrz1 : a = d wlrnat_y_z : 1 @ wrz0 = wrz1 @ 1
(fun (q : a = d) (s : 1 @ wrz1 = q @ 1 ) =>
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ s @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_y_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_y_z @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_xy_z :=
(rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 ))^ @
((whiskerR 1 wrz0)^ @ ((s [-] wlrnat_y_z) @ whiskerL q 1 )) @
rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
in
EH_xy_z @ (concat_p_pp q 1 1 @ whiskerR EH_x_z^ 1 ) =
concat_pp_p 1 1 wrz0 @ whiskerL 1 EH_y_z @ concat_p_pp 1 wrz1 1 ) wrz1
(lrucancel 1 )
revert wrz1 wlrnat_y_z.X : Type a, d : X wrz0 : a = d
forall (wrz1 : a = d) (wlrnat_y_z : 1 @ wrz0 = wrz1 @ 1 ),
(fun (q : a = d) (s : 1 @ wrz1 = q @ 1 ) =>
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ s @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_y_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_y_z @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_xy_z :=
(rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 ))^ @
((whiskerR 1 wrz0)^ @ ((s [-] wlrnat_y_z) @ whiskerL q 1 )) @
rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
in
EH_xy_z @ (concat_p_pp q 1 1 @ whiskerR EH_x_z^ 1 ) =
concat_pp_p 1 1 wrz0 @ whiskerL 1 EH_y_z @ concat_p_pp 1 wrz1 1 ) wrz1
(lrucancel 1 )
snapply equiv_path_ind_lrucancel. X : Type a, d : X wrz0 : a = d
(fun (q : a = d) (s : 1 @ wrz0 = q @ 1 ) =>
(fun (q0 : a = d) (s0 : 1 @ q = q0 @ 1 ) =>
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ s0 @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_y_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ s @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_xy_z :=
(rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 ))^ @
((whiskerR 1 wrz0)^ @ ((s0 [-] s) @ whiskerL q0 1 )) @
rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
in
EH_xy_z @ (concat_p_pp q0 1 1 @ whiskerR EH_x_z^ 1 ) =
concat_pp_p 1 1 wrz0 @ whiskerL 1 EH_y_z @ concat_p_pp 1 q 1 ) q
(lrucancel 1 ))
wrz0 (lrucancel 1 )
destruct wrz0.X : Type a : X
let EH_x_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ lrucancel 1 @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_y_z :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ lrucancel 1 @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
let EH_xy_z :=
(rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 ))^ @
((whiskerR 1 1 )^ @ ((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 )) @
rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
in
EH_xy_z @ (concat_p_pp 1 1 1 @ whiskerR EH_x_z^ 1 ) =
concat_pp_p 1 1 1 @ whiskerL 1 EH_y_z @ concat_p_pp 1 1 1
reflexivity .
Defined .
Theorem eh_pp_p {X } {a : X} (p q r : idpath a = idpath a)
: eh (p @ q) r @ (concat_p_pp _ _ _ @ whiskerR (eh p r)^ _) =
concat_pp_p _ _ _ @ whiskerL _ (eh q r) @ concat_p_pp _ _ _.X : Type a : X p, q, r : 1 = 1
eh (p @ q) r @ (concat_p_pp r p q @ whiskerR (eh p r)^ q) =
concat_pp_p p q r @ whiskerL p (eh q r) @ concat_p_pp p r q
Proof .X : Type a : X p, q, r : 1 = 1
eh (p @ q) r @ (concat_p_pp r p q @ whiskerR (eh p r)^ q) =
concat_pp_p p q r @ whiskerL p (eh q r) @ concat_p_pp p r q
napply eh_pp_p_gen. X : Type a : X p, q, r : 1 = 1
ulnat p [-] ulnat q = whiskerR ?Goal 1 @ ulnat (p @ q)
- X : Type a : X p, q, r : 1 = 1
ulnat p [-] ulnat q = whiskerR ?Goal 1 @ ulnat (p @ q)
exact (ulnat_pp p q).
- X : Type a : X p, q, r : 1 = 1
ulnat p [-] ulnat q = whiskerR ?Goal 1 @ ulnat (p @ q)
exact (ulnat_pp p q).
- X : Type a : X p, q, r : 1 = 1
(wlrnat p r [-] wlrnat q r) @ whiskerL (whiskerR r 1 ) (whiskerL_pp 1 p q)^ =
whiskerR (whiskerL_pp 1 p q)^ (whiskerR r 1 ) @ wlrnat (p @ q) r
exact (wlrnat_pp_p p q r).
Defined .
(** The syllepsis: We now prove that "eh p q" is suitably related to "eh q p". *)
Definition eh_V_gen
{X : Type }
(* 0 -paths *)
{a b c d : X}
(* 1 -paths *)
{wlx0 x0 wrx0 : a = b}
{wlx1 x1 wrx1 : c = d}
{wly0 y0 wry0 : b = d}
{wly1 y1 wry1 : a = c}
(* 2 -paths *)
{ulnat_x0 : wlx0 @ 1 = 1 @ x0}
{urnat_x0 : wrx0 @ 1 = 1 @ x0}
{ulnat_x1 : wlx1 @ 1 = 1 @ x1}
{urnat_x1 : wrx1 @ 1 = 1 @ x1}
{ulnat_y0 : wly0 @ 1 = 1 @ y0}
{urnat_y0 : wry0 @ 1 = 1 @ y0}
{ulnat_y1 : wly1 @ 1 = 1 @ y1}
{urnat_y1 : wry1 @ 1 = 1 @ y1}
{ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0}
{ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1}
{ehrnat_y0 : wry0 @ 1 = 1 @ wly0}
{ehrnat_y1 : wry1 @ 1 = 1 @ wly1}
{wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1}
{wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0}
(* 3 -paths *)
(ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0)
(ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1)
(ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0)
(ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1)
(wlrnat_V_x_y : whiskerR wlrnat_x_y _ @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL _ wlrnat_y_x^)
: let EH_x_y := (rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @
wlrnat_x_y @ rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_y_x := (rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @
wlrnat_y_x @ rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 .X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1
Proof .X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1
apply moveL_pV in wlrnat_V_x_y.X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1
apply (concat (whiskerR_p1' wlrnat_x_y)^) in wlrnat_V_x_y.X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 wlrnat_V_x_y : concat_p1 (wlx0 @ wry0) @ (wlrnat_x_y @ (concat_p1 (wry1 @ wlx1))^) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1
apply moveL_Vp, moveL_pV in wlrnat_V_x_y.X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 wlrnat_V_x_y : wlrnat_x_y =
(concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1
apply symmetry in wlrnat_V_x_y.X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 wlrnat_V_x_y : (concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^ = wlrnat_x_y
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1
destruct wlrnat_V_x_y.X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1
revert ulnat_x0 ehlnat_1p_x0.X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1
forall ulnat_x0 : wlx0 @ 1 = 1 @ x0,
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
let EH_x_y :=
(rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1
(fun (q : wlx0 @ 1 = 1 @ x0) (_ : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q) =>
let EH_x_y :=
(rlucancel_inv (q [-] urnat_y0))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] urnat_x0) (rlucancel 1 )
revert ulnat_x1 ehlnat_1p_x1.X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1
forall ulnat_x1 : wlx1 @ 1 = 1 @ x1,
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(fun (q : wlx0 @ 1 = 1 @ x0) (_ : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q) =>
let EH_x_y :=
(rlucancel_inv (q [-] urnat_y0))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (urnat_y1 [-] ulnat_x1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] urnat_x0) (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1
(fun (q : wlx1 @ 1 = 1 @ x1) (_ : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q) =>
(fun (q0 : wlx0 @ 1 = 1 @ x0) (_ : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q0) =>
let EH_x_y :=
(rlucancel_inv (q0 [-] urnat_y0))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (urnat_y1 [-] q) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 )
revert urnat_y0 ehrnat_p1_y0.X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1
forall urnat_y0 : wry0 @ 1 = 1 @ y0,
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(fun (q : wlx1 @ 1 = 1 @ x1) (_ : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q) =>
(fun (q0 : wlx0 @ 1 = 1 @ x0) (_ : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q0) =>
let EH_x_y :=
(rlucancel_inv (q0 [-] urnat_y0))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (urnat_y1 [-] q) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1
(fun (q : wry0 @ 1 = 1 @ y0) (_ : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q) =>
(fun (q0 : wlx1 @ 1 = 1 @ x1) (_ : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q0) =>
(fun (q1 : wlx0 @ 1 = 1 @ x0) (_ : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q1) =>
let EH_x_y :=
(rlucancel_inv (q1 [-] q))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (urnat_y1 [-] q0) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 )
revert urnat_y1 ehrnat_p1_y1.X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0
forall urnat_y1 : wry1 @ 1 = 1 @ y1,
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(fun (q : wry0 @ 1 = 1 @ y0) (_ : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q) =>
(fun (q0 : wlx1 @ 1 = 1 @ x1) (_ : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q0) =>
(fun (q1 : wlx0 @ 1 = 1 @ x0) (_ : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q1) =>
let EH_x_y :=
(rlucancel_inv (q1 [-] q))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (urnat_y1 [-] q0) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0
(fun (q : wry1 @ 1 = 1 @ y1) (_ : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q) =>
(fun (q0 : wry0 @ 1 = 1 @ y0) (_ : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q0) =>
(fun (q1 : wlx1 @ 1 = 1 @ x1) (_ : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q1) =>
(fun (q2 : wlx0 @ 1 = 1 @ x0) (_ : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q2) =>
let EH_x_y :=
(rlucancel_inv (q2 [-] q0))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q [-] q1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] urnat_x0)
(rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 )
revert x0 urnat_x0.X : Type a, b, c, d : X wlx0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0
forall (x0 : a = b) (urnat_x0 : wrx0 @ 1 = 1 @ x0),
(fun (q : wry1 @ 1 = 1 @ y1) (_ : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q) =>
(fun (q0 : wry0 @ 1 = 1 @ y0) (_ : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q0) =>
(fun (q1 : wlx1 @ 1 = 1 @ x1) (_ : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q1) =>
(fun (q2 : wlx0 @ 1 = 1 @ x0) (_ : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q2) =>
let EH_x_y :=
(rlucancel_inv (q2 [-] q0))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q [-] q1) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] urnat_x0)
(rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0, wrx0 : a = b wlx1, x1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0
(fun (q : a = b) (s : wrx0 @ 1 = 1 @ q) =>
(fun (q0 : wry1 @ 1 = 1 @ y1) (_ : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q0) =>
(fun (q1 : wry0 @ 1 = 1 @ y0) (_ : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q1) =>
(fun (q2 : wlx1 @ 1 = 1 @ x1) (_ : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q2) =>
(fun (q3 : wlx0 @ 1 = 1 @ q) (_ : (ehlnat_x0 [I] s) @ 1 = 1 @ q3) =>
let EH_x_y :=
(rlucancel_inv (q3 [-] q1))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q0 [-] q2) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (s [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] s) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
wrx0 (rlucancel 1 )
revert x1 urnat_x1.X : Type a, b, c, d : X wlx0, wrx0 : a = b wlx1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0
forall (x1 : c = d) (urnat_x1 : wrx1 @ 1 = 1 @ x1),
(fun (q : a = b) (s : wrx0 @ 1 = 1 @ q) =>
(fun (q0 : wry1 @ 1 = 1 @ y1) (_ : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q0) =>
(fun (q1 : wry0 @ 1 = 1 @ y0) (_ : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q1) =>
(fun (q2 : wlx1 @ 1 = 1 @ x1) (_ : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q2) =>
(fun (q3 : wlx0 @ 1 = 1 @ q) (_ : (ehlnat_x0 [I] s) @ 1 = 1 @ q3) =>
let EH_x_y :=
(rlucancel_inv (q3 [-] q1))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q0 [-] q2) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (s [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] s) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
wrx0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0, wrx0 : a = b wlx1, wrx1 : c = d wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0
(fun (q : c = d) (s : wrx1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wrx0 @ 1 = 1 @ q0) =>
(fun (q1 : wry1 @ 1 = 1 @ y1) (_ : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q1) =>
(fun (q2 : wry0 @ 1 = 1 @ y0) (_ : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q2) =>
(fun (q3 : wlx1 @ 1 = 1 @ q) (_ : (ehlnat_x1 [I] s) @ 1 = 1 @ q3) =>
(fun (q4 : wlx0 @ 1 = 1 @ q0) (_ : (ehlnat_x0 [I] s0) @ 1 = 1 @ q4) =>
let EH_x_y :=
(rlucancel_inv (q4 [-] q2))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q1 [-] q3) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] s))^ @ wlrnat_y_x @
rlucancel_inv (s0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] s0) (rlucancel 1 ))
(ehlnat_x1 [I] s) (rlucancel 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 )
revert y0 ulnat_y0.X : Type a, b, c, d : X wlx0, wrx0 : a = b wlx1, wrx1 : c = d wly0, wry0 : b = d wly1, y1, wry1 : a = c ulnat_y1 : wly1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0
forall (y0 : b = d) (ulnat_y0 : wly0 @ 1 = 1 @ y0),
(fun (q : c = d) (s : wrx1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wrx0 @ 1 = 1 @ q0) =>
(fun (q1 : wry1 @ 1 = 1 @ y1) (_ : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q1) =>
(fun (q2 : wry0 @ 1 = 1 @ y0) (_ : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q2) =>
(fun (q3 : wlx1 @ 1 = 1 @ q) (_ : (ehlnat_x1 [I] s) @ 1 = 1 @ q3) =>
(fun (q4 : wlx0 @ 1 = 1 @ q0) (_ : (ehlnat_x0 [I] s0) @ 1 = 1 @ q4) =>
let EH_x_y :=
(rlucancel_inv (q4 [-] q2))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q1 [-] q3) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] s))^ @ wlrnat_y_x @
rlucancel_inv (s0 [-] ulnat_y0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] s0) (rlucancel 1 ))
(ehlnat_x1 [I] s) (rlucancel 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0, wrx0 : a = b wlx1, wrx1 : c = d wly0, wry0 : b = d wly1, y1, wry1 : a = c ulnat_y1 : wly1 @ 1 = 1 @ y1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0
(fun (q : b = d) (s : wly0 @ 1 = 1 @ q) =>
(fun (q0 : c = d) (s0 : wrx1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wrx0 @ 1 = 1 @ q1) =>
(fun (q2 : wry1 @ 1 = 1 @ y1) (_ : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q2) =>
(fun (q3 : wry0 @ 1 = 1 @ q) (_ : (ehrnat_y0 [I] s) @ 1 = 1 @ q3) =>
(fun (q4 : wlx1 @ 1 = 1 @ q0) (_ : (ehlnat_x1 [I] s0) @ 1 = 1 @ q4) =>
(fun (q5 : wlx0 @ 1 = 1 @ q1) (_ : (ehlnat_x0 [I] s1) @ 1 = 1 @ q5) =>
let EH_x_y :=
(rlucancel_inv (q5 [-] q3))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q2 [-] q4) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] s0))^ @ wlrnat_y_x @
rlucancel_inv (s1 [-] s) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] s1) (rlucancel 1 ))
(ehlnat_x1 [I] s0) (rlucancel 1 ))
(ehrnat_y0 [I] s) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wly0 (rlucancel 1 )
revert y1 ulnat_y1.X : Type a, b, c, d : X wlx0, wrx0 : a = b wlx1, wrx1 : c = d wly0, wry0 : b = d wly1, wry1 : a = c ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0
forall (y1 : a = c) (ulnat_y1 : wly1 @ 1 = 1 @ y1),
(fun (q : b = d) (s : wly0 @ 1 = 1 @ q) =>
(fun (q0 : c = d) (s0 : wrx1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wrx0 @ 1 = 1 @ q1) =>
(fun (q2 : wry1 @ 1 = 1 @ y1) (_ : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q2) =>
(fun (q3 : wry0 @ 1 = 1 @ q) (_ : (ehrnat_y0 [I] s) @ 1 = 1 @ q3) =>
(fun (q4 : wlx1 @ 1 = 1 @ q0) (_ : (ehlnat_x1 [I] s0) @ 1 = 1 @ q4) =>
(fun (q5 : wlx0 @ 1 = 1 @ q1) (_ : (ehlnat_x0 [I] s1) @ 1 = 1 @ q5) =>
let EH_x_y :=
(rlucancel_inv (q5 [-] q3))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q2 [-] q4) in
let EH_y_x :=
(rlucancel_inv (ulnat_y1 [-] s0))^ @ wlrnat_y_x @
rlucancel_inv (s1 [-] s) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] s1) (rlucancel 1 ))
(ehlnat_x1 [I] s0) (rlucancel 1 ))
(ehrnat_y0 [I] s) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wly0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0, wrx0 : a = b wlx1, wrx1 : c = d wly0, wry0 : b = d wly1, wry1 : a = c ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0
(fun (q : a = c) (s : wly1 @ 1 = 1 @ q) =>
(fun (q0 : b = d) (s0 : wly0 @ 1 = 1 @ q0) =>
(fun (q1 : c = d) (s1 : wrx1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wrx0 @ 1 = 1 @ q2) =>
(fun (q3 : wry1 @ 1 = 1 @ q) (_ : (ehrnat_y1 [I] s) @ 1 = 1 @ q3) =>
(fun (q4 : wry0 @ 1 = 1 @ q0) (_ : (ehrnat_y0 [I] s0) @ 1 = 1 @ q4) =>
(fun (q5 : wlx1 @ 1 = 1 @ q1) (_ : (ehlnat_x1 [I] s1) @ 1 = 1 @ q5) =>
(fun (q6 : wlx0 @ 1 = 1 @ q2) (_ : (ehlnat_x0 [I] s2) @ 1 = 1 @ q6) =>
let EH_x_y :=
(rlucancel_inv (q6 [-] q4))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q3 [-] q5) in
let EH_y_x :=
(rlucancel_inv (s [-] s1))^ @ wlrnat_y_x @
rlucancel_inv (s2 [-] s0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] s2) (rlucancel 1 ))
(ehlnat_x1 [I] s1) (rlucancel 1 ))
(ehrnat_y0 [I] s0) (rlucancel 1 ))
(ehrnat_y1 [I] s) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 )
revert wlrnat_y_x.X : Type a, b, c, d : X wlx0, wrx0 : a = b wlx1, wrx1 : c = d wly0, wry0 : b = d wly1, wry1 : a = c ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1
forall wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0,
(fun (q : a = c) (s : wly1 @ 1 = 1 @ q) =>
(fun (q0 : b = d) (s0 : wly0 @ 1 = 1 @ q0) =>
(fun (q1 : c = d) (s1 : wrx1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wrx0 @ 1 = 1 @ q2) =>
(fun (q3 : wry1 @ 1 = 1 @ q) (_ : (ehrnat_y1 [I] s) @ 1 = 1 @ q3) =>
(fun (q4 : wry0 @ 1 = 1 @ q0) (_ : (ehrnat_y0 [I] s0) @ 1 = 1 @ q4) =>
(fun (q5 : wlx1 @ 1 = 1 @ q1) (_ : (ehlnat_x1 [I] s1) @ 1 = 1 @ q5) =>
(fun (q6 : wlx0 @ 1 = 1 @ q2) (_ : (ehlnat_x0 [I] s2) @ 1 = 1 @ q6) =>
let EH_x_y :=
(rlucancel_inv (q6 [-] q4))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q3 [-] q5) in
let EH_y_x :=
(rlucancel_inv (s [-] s1))^ @ wlrnat_y_x @
rlucancel_inv (s2 [-] s0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] s2) (rlucancel 1 ))
(ehlnat_x1 [I] s1) (rlucancel 1 ))
(ehrnat_y0 [I] s0) (rlucancel 1 ))
(ehrnat_y1 [I] s) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 )
revert wrx0 ehlnat_x0.X : Type a, b, c, d : X wlx0 : a = b wlx1, wrx1 : c = d wly0, wry0 : b = d wly1, wry1 : a = c ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1
forall (wrx0 : a = b) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0),
(fun (q : a = c) (s : wly1 @ 1 = 1 @ q) =>
(fun (q0 : b = d) (s0 : wly0 @ 1 = 1 @ q0) =>
(fun (q1 : c = d) (s1 : wrx1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wrx0 @ 1 = 1 @ q2) =>
(fun (q3 : wry1 @ 1 = 1 @ q) (_ : (ehrnat_y1 [I] s) @ 1 = 1 @ q3) =>
(fun (q4 : wry0 @ 1 = 1 @ q0) (_ : (ehrnat_y0 [I] s0) @ 1 = 1 @ q4) =>
(fun (q5 : wlx1 @ 1 = 1 @ q1) (_ : (ehlnat_x1 [I] s1) @ 1 = 1 @ q5) =>
(fun (q6 : wlx0 @ 1 = 1 @ q2) (_ : (ehlnat_x0 [I] s2) @ 1 = 1 @ q6) =>
let EH_x_y :=
(rlucancel_inv (q6 [-] q4))^ @
((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q3 [-] q5) in
let EH_y_x :=
(rlucancel_inv (s [-] s1))^ @ wlrnat_y_x @
rlucancel_inv (s2 [-] s0) in
EH_x_y @ EH_y_x = 1 ) (ehlnat_x0 [I] s2) (rlucancel 1 ))
(ehlnat_x1 [I] s1) (rlucancel 1 ))
(ehrnat_y0 [I] s0) (rlucancel 1 ))
(ehrnat_y1 [I] s) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0 : a = b wlx1, wrx1 : c = d wly0, wry0 : b = d wly1, wry1 : a = c ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1
(fun (q : a = b) (s : wlx0 @ 1 = 1 @ q) =>
forall wlrnat_y_x : wly1 @ wrx1 = q @ wly0,
(fun (q0 : a = c) (s0 : wly1 @ 1 = 1 @ q0) =>
(fun (q1 : b = d) (s1 : wly0 @ 1 = 1 @ q1) =>
(fun (q2 : c = d) (s2 : wrx1 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : q @ 1 = 1 @ q3) =>
(fun (q4 : wry1 @ 1 = 1 @ q0) (_ : (ehrnat_y1 [I] s0) @ 1 = 1 @ q4) =>
(fun (q5 : wry0 @ 1 = 1 @ q1) (_ : (ehrnat_y0 [I] s1) @ 1 = 1 @ q5) =>
(fun (q6 : wlx1 @ 1 = 1 @ q2) (_ : (ehlnat_x1 [I] s2) @ 1 = 1 @ q6) =>
(fun (q7 : wlx0 @ 1 = 1 @ q3) (_ : (s [I] s3) @ 1 = 1 @ q7) =>
let EH_x_y :=
(rlucancel_inv (q7 [-] q5))^ @
((concat_p1 (wlx0 @ wry0))^ @
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q4 [-] q6) in
let EH_y_x :=
(rlucancel_inv (s0 [-] s2))^ @ wlrnat_y_x @
rlucancel_inv (s3 [-] s1) in
EH_x_y @ EH_y_x = 1 ) (s [I] s3) (rlucancel 1 ))
(ehlnat_x1 [I] s2) (rlucancel 1 ))
(ehrnat_y0 [I] s1) (rlucancel 1 ))
(ehrnat_y1 [I] s0) (rlucancel 1 ))
q (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlx0 (rlucancel 1 )
revert wrx1 ehlnat_x1.X : Type a, b, c, d : X wlx0 : a = b wlx1 : c = d wly0, wry0 : b = d wly1, wry1 : a = c ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1
forall (wrx1 : c = d) (ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1),
(fun (q : a = b) (s : wlx0 @ 1 = 1 @ q) =>
forall wlrnat_y_x : wly1 @ wrx1 = q @ wly0,
(fun (q0 : a = c) (s0 : wly1 @ 1 = 1 @ q0) =>
(fun (q1 : b = d) (s1 : wly0 @ 1 = 1 @ q1) =>
(fun (q2 : c = d) (s2 : wrx1 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : q @ 1 = 1 @ q3) =>
(fun (q4 : wry1 @ 1 = 1 @ q0) (_ : (ehrnat_y1 [I] s0) @ 1 = 1 @ q4) =>
(fun (q5 : wry0 @ 1 = 1 @ q1) (_ : (ehrnat_y0 [I] s1) @ 1 = 1 @ q5) =>
(fun (q6 : wlx1 @ 1 = 1 @ q2) (_ : (ehlnat_x1 [I] s2) @ 1 = 1 @ q6) =>
(fun (q7 : wlx0 @ 1 = 1 @ q3) (_ : (s [I] s3) @ 1 = 1 @ q7) =>
let EH_x_y :=
(rlucancel_inv (q7 [-] q5))^ @
((concat_p1 (wlx0 @ wry0))^ @
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q4 [-] q6) in
let EH_y_x :=
(rlucancel_inv (s0 [-] s2))^ @ wlrnat_y_x @
rlucancel_inv (s3 [-] s1) in
EH_x_y @ EH_y_x = 1 ) (s [I] s3) (rlucancel 1 ))
(ehlnat_x1 [I] s2) (rlucancel 1 ))
(ehrnat_y0 [I] s1) (rlucancel 1 ))
(ehrnat_y1 [I] s0) (rlucancel 1 ))
q (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlx0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0 : a = b wlx1 : c = d wly0, wry0 : b = d wly1, wry1 : a = c ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1
(fun (q : c = d) (s : wlx1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wlx0 @ 1 = 1 @ q0) =>
forall wlrnat_y_x : wly1 @ q = q0 @ wly0,
(fun (q1 : a = c) (s1 : wly1 @ 1 = 1 @ q1) =>
(fun (q2 : b = d) (s2 : wly0 @ 1 = 1 @ q2) =>
(fun (q3 : c = d) (s3 : q @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : q0 @ 1 = 1 @ q4) =>
(fun (q5 : wry1 @ 1 = 1 @ q1) (_ : (ehrnat_y1 [I] s1) @ 1 = 1 @ q5) =>
(fun (q6 : wry0 @ 1 = 1 @ q2) (_ : (ehrnat_y0 [I] s2) @ 1 = 1 @ q6) =>
(fun (q7 : wlx1 @ 1 = 1 @ q3) (_ : (s [I] s3) @ 1 = 1 @ q7) =>
(fun (q8 : wlx0 @ 1 = 1 @ q4) (_ : (s0 [I] s4) @ 1 = 1 @ q8) =>
let EH_x_y :=
(rlucancel_inv (q8 [-] q6))^ @
((concat_p1 (wlx0 @ wry0))^ @
((s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q5 [-] q7) in
let EH_y_x :=
(rlucancel_inv (s1 [-] s3))^ @ wlrnat_y_x @
rlucancel_inv (s4 [-] s2) in
EH_x_y @ EH_y_x = 1 ) (s0 [I] s4) (rlucancel 1 ))
(s [I] s3) (rlucancel 1 ))
(ehrnat_y0 [I] s2) (rlucancel 1 ))
(ehrnat_y1 [I] s1) (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 )
revert wly0 ehrnat_y0.X : Type a, b, c, d : X wlx0 : a = b wlx1 : c = d wry0 : b = d wly1, wry1 : a = c ehrnat_y1 : wry1 @ 1 = 1 @ wly1
forall (wly0 : b = d) (ehrnat_y0 : wry0 @ 1 = 1 @ wly0),
(fun (q : c = d) (s : wlx1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wlx0 @ 1 = 1 @ q0) =>
forall wlrnat_y_x : wly1 @ q = q0 @ wly0,
(fun (q1 : a = c) (s1 : wly1 @ 1 = 1 @ q1) =>
(fun (q2 : b = d) (s2 : wly0 @ 1 = 1 @ q2) =>
(fun (q3 : c = d) (s3 : q @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : q0 @ 1 = 1 @ q4) =>
(fun (q5 : wry1 @ 1 = 1 @ q1) (_ : (ehrnat_y1 [I] s1) @ 1 = 1 @ q5) =>
(fun (q6 : wry0 @ 1 = 1 @ q2) (_ : (ehrnat_y0 [I] s2) @ 1 = 1 @ q6) =>
(fun (q7 : wlx1 @ 1 = 1 @ q3) (_ : (s [I] s3) @ 1 = 1 @ q7) =>
(fun (q8 : wlx0 @ 1 = 1 @ q4) (_ : (s0 [I] s4) @ 1 = 1 @ q8) =>
let EH_x_y :=
(rlucancel_inv (q8 [-] q6))^ @
((concat_p1 (wlx0 @ wry0))^ @
((s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q5 [-] q7) in
let EH_y_x :=
(rlucancel_inv (s1 [-] s3))^ @ wlrnat_y_x @
rlucancel_inv (s4 [-] s2) in
EH_x_y @ EH_y_x = 1 ) (s0 [I] s4) (rlucancel 1 ))
(s [I] s3) (rlucancel 1 ))
(ehrnat_y0 [I] s2) (rlucancel 1 ))
(ehrnat_y1 [I] s1) (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0 : a = b wlx1 : c = d wry0 : b = d wly1, wry1 : a = c ehrnat_y1 : wry1 @ 1 = 1 @ wly1
(fun (q : b = d) (s : wry0 @ 1 = 1 @ q) =>
(fun (q0 : c = d) (s0 : wlx1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wlx0 @ 1 = 1 @ q1) =>
forall wlrnat_y_x : wly1 @ q0 = q1 @ q,
(fun (q2 : a = c) (s2 : wly1 @ 1 = 1 @ q2) =>
(fun (q3 : b = d) (s3 : q @ 1 = 1 @ q3) =>
(fun (q4 : c = d) (s4 : q0 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : q1 @ 1 = 1 @ q5) =>
(fun (q6 : wry1 @ 1 = 1 @ q2) (_ : (ehrnat_y1 [I] s2) @ 1 = 1 @ q6) =>
(fun (q7 : wry0 @ 1 = 1 @ q3) (_ : (s [I] s3) @ 1 = 1 @ q7) =>
(fun (q8 : wlx1 @ 1 = 1 @ q4) (_ : (s0 [I] s4) @ 1 = 1 @ q8) =>
(fun (q9 : wlx0 @ 1 = 1 @ q5) (_ : (s1 [I] s5) @ 1 = 1 @ q9) =>
let EH_x_y :=
(rlucancel_inv (q9 [-] q7))^ @
((concat_p1 (wlx0 @ wry0))^ @
((s1 [-] s) @ whiskerL 1 wlrnat_y_x^ @ (ehrnat_y1 [-] s0)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q6 [-] q8) in
let EH_y_x :=
(rlucancel_inv (s2 [-] s4))^ @ wlrnat_y_x @
rlucancel_inv (s5 [-] s3) in
EH_x_y @ EH_y_x = 1 ) (s1 [I] s5) (rlucancel 1 ))
(s0 [I] s4) (rlucancel 1 ))
(s [I] s3) (rlucancel 1 ))
(ehrnat_y1 [I] s2) (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wry0 (rlucancel 1 )
revert wly1 ehrnat_y1.X : Type a, b, c, d : X wlx0 : a = b wlx1 : c = d wry0 : b = d wry1 : a = c
forall (wly1 : a = c) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1),
(fun (q : b = d) (s : wry0 @ 1 = 1 @ q) =>
(fun (q0 : c = d) (s0 : wlx1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wlx0 @ 1 = 1 @ q1) =>
forall wlrnat_y_x : wly1 @ q0 = q1 @ q,
(fun (q2 : a = c) (s2 : wly1 @ 1 = 1 @ q2) =>
(fun (q3 : b = d) (s3 : q @ 1 = 1 @ q3) =>
(fun (q4 : c = d) (s4 : q0 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : q1 @ 1 = 1 @ q5) =>
(fun (q6 : wry1 @ 1 = 1 @ q2) (_ : (ehrnat_y1 [I] s2) @ 1 = 1 @ q6) =>
(fun (q7 : wry0 @ 1 = 1 @ q3) (_ : (s [I] s3) @ 1 = 1 @ q7) =>
(fun (q8 : wlx1 @ 1 = 1 @ q4) (_ : (s0 [I] s4) @ 1 = 1 @ q8) =>
(fun (q9 : wlx0 @ 1 = 1 @ q5) (_ : (s1 [I] s5) @ 1 = 1 @ q9) =>
let EH_x_y :=
(rlucancel_inv (q9 [-] q7))^ @
((concat_p1 (wlx0 @ wry0))^ @
((s1 [-] s) @ whiskerL 1 wlrnat_y_x^ @ (ehrnat_y1 [-] s0)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q6 [-] q8) in
let EH_y_x :=
(rlucancel_inv (s2 [-] s4))^ @ wlrnat_y_x @
rlucancel_inv (s5 [-] s3) in
EH_x_y @ EH_y_x = 1 ) (s1 [I] s5) (rlucancel 1 ))
(s0 [I] s4) (rlucancel 1 ))
(s [I] s3) (rlucancel 1 ))
(ehrnat_y1 [I] s2) (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wry0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a, b, c, d : X wlx0 : a = b wlx1 : c = d wry0 : b = d wry1 : a = c
(fun (q : a = c) (s : wry1 @ 1 = 1 @ q) =>
(fun (q0 : b = d) (s0 : wry0 @ 1 = 1 @ q0) =>
(fun (q1 : c = d) (s1 : wlx1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wlx0 @ 1 = 1 @ q2) =>
forall wlrnat_y_x : q @ q1 = q2 @ q0,
(fun (q3 : a = c) (s3 : q @ 1 = 1 @ q3) =>
(fun (q4 : b = d) (s4 : q0 @ 1 = 1 @ q4) =>
(fun (q5 : c = d) (s5 : q1 @ 1 = 1 @ q5) =>
(fun (q6 : a = b) (s6 : q2 @ 1 = 1 @ q6) =>
(fun (q7 : wry1 @ 1 = 1 @ q3) (_ : (s [I] s3) @ 1 = 1 @ q7) =>
(fun (q8 : wry0 @ 1 = 1 @ q4) (_ : (s0 [I] s4) @ 1 = 1 @ q8) =>
(fun (q9 : wlx1 @ 1 = 1 @ q5) (_ : (s1 [I] s5) @ 1 = 1 @ q9) =>
(fun (q10 : wlx0 @ 1 = 1 @ q6) (_ : (s2 [I] s6) @ 1 = 1 @ q10) =>
let EH_x_y :=
(rlucancel_inv (q10 [-] q8))^ @
((concat_p1 (wlx0 @ wry0))^ @
((s2 [-] s0) @ whiskerL 1 wlrnat_y_x^ @ (s [-] s1)^) @
((concat_p1 (wry1 @ wlx1))^)^) @
rlucancel_inv (q7 [-] q9) in
let EH_y_x :=
(rlucancel_inv (s3 [-] s5))^ @ wlrnat_y_x @
rlucancel_inv (s6 [-] s4) in
EH_x_y @ EH_y_x = 1 ) (s2 [I] s6) (rlucancel 1 ))
(s1 [I] s5) (rlucancel 1 ))
(s0 [I] s4) (rlucancel 1 ))
(s [I] s3) (rlucancel 1 ))
q2 (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wry0 (rlucancel 1 ))
wry1 (rlucancel 1 )
destruct wry0, wry1, wlx1.X : Type a : X wlx0 : a = a
forall wlrnat_y_x : 1 @ 1 = wlx0 @ 1 ,
let EH_x_y :=
(rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))^ @
((concat_p1 (wlx0 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_y_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ 1 ))^)^) @
rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
in
let EH_y_x :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_y_x @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
EH_x_y @ EH_y_x = 1
revert wlx0.X : Type a : X
forall (wlx0 : a = a) (wlrnat_y_x : 1 @ 1 = wlx0 @ 1 ),
let EH_x_y :=
(rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))^ @
((concat_p1 (wlx0 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_y_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ 1 ))^)^) @
rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
in
let EH_y_x :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ wlrnat_y_x @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
EH_x_y @ EH_y_x = 1
snapply equiv_path_ind_lrucancel. X : Type a : X
(fun (q : a = a) (s : 1 @ 1 = q @ 1 ) =>
let EH_x_y :=
(rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))^ @
((concat_p1 (q @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ 1 ))^)^) @
rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
in
let EH_y_x :=
(rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ s @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ) in
EH_x_y @ EH_y_x = 1 ) 1 (lrucancel 1 )
reflexivity .
Defined .
Theorem eh_V {X } {a : X} (p q : idpath (idpath a) = idpath (idpath a))
: eh p q @ eh q p = 1 .X : Type a : X p, q : 1 = 1
eh p q @ eh q p = 1
Proof .X : Type a : X p, q : 1 = 1
eh p q @ eh q p = 1
napply eh_V_gen. X : Type a : X p, q : 1 = 1
(?Goal [I] urnat p) @ 1 = 1 @ ulnat p
- X : Type a : X p, q : 1 = 1
(?Goal [I] urnat p) @ 1 = 1 @ ulnat p
exact (ehlnat_1p p).
- X : Type a : X p, q : 1 = 1
(?Goal [I] urnat p) @ 1 = 1 @ ulnat p
exact (ehlnat_1p p).
- X : Type a : X p, q : 1 = 1
(?Goal [I] ulnat q) @ 1 = 1 @ urnat q
exact (ehrnat_p1 q).
- X : Type a : X p, q : 1 = 1
(?Goal [I] ulnat q) @ 1 = 1 @ urnat q
exact (ehrnat_p1 q).
- X : Type a : X p, q : 1 = 1
whiskerR (wlrnat p q) 1 @ (ehrnat q 1 [-] ehlnat 1 p) =
(ehlnat 1 p [-] ehrnat q 1 ) @ whiskerL 1 (wlrnat q p)^
exact (wlrnat_V p q).
Defined .
(** Given [ehrnat_p1 y] and [ehrnat_p1 z], we can explicitly construct [ehrnat_p1 (y @ z)]. *)
(** The composite iso *)
Definition Ehrnat_p1_pp
{X : Type }
(** 0 -paths *)
{a0 a1 a2 : X}
{b0 b1 b2 : X}
{c0 c1 c2 : X}
(** 1 -paths *)
{wry : a0 = b0}
{wrz : b0 = c0}
{wly : a1 = b1}
{wlz : b1 = c1}
{y : a2 = b2}
{z : b2 = c2}
{wryz : a0 = c0}
{wlyz : a1 = c1}
{a01 : a0 = a1}
{a12 : a1 = a2}
{b01 : b0 = b1}
{b12 : b1 = b2}
{c01 : c0 = c1}
{c12 : c1 = c2}
{a02 : a0 = a2}
{c02 : c0 = c2}
(** 2 -paths *)
{ehrnat_y : wry @ b01 = a01 @ wly}
{ehrnat_z : wrz @ c01 = b01 @ wlz}
{ehrnat_yz : wryz @ c01 = a01 @ wlyz}
{ulnat_y : wly @ b12 = a12 @ y}
{ulnat_z : wlz @ c12 = b12 @ z}
{ulnat_yz : wlyz @ c12 = a12 @ (y @ z)}
{urnat_y : wry @ (b01 @ b12) = a02 @ y}
{urnat_z : wrz @ c02 = (b01 @ b12) @ z}
{urnat_yz : wryz @ c02 = a02 @ (y @ z)}
{wrpp_yz : wry @ wrz = wryz}
{wlpp_yz : wly @ wlz = wlyz}
(H_a02 : a01 @ a12 = a02)
(H_c02 : c01 @ c12 = c02)
(* 3 -paths *)
(H_ehrnat_yz : (ehrnat_y [-] ehrnat_z) @ whiskerL _ wlpp_yz =
whiskerR wrpp_yz _ @ ehrnat_yz)
(H_ulnat_yz : (ulnat_y [-] ulnat_z) = whiskerR wlpp_yz _ @ ulnat_yz)
(H_urnat_yz : (urnat_y [-] urnat_z) = whiskerR wrpp_yz _ @ urnat_yz)
(ehrnat_p1_y : (ehrnat_y [I] ulnat_y) @ whiskerR H_a02 _ = 1 @ urnat_y)
(ehrnat_p1_z : (ehrnat_z [I] ulnat_z) @ 1 = whiskerL _ H_c02 @ urnat_z)
: (ehrnat_yz [I] ulnat_yz) @ whiskerR H_a02 _ =
whiskerL _ H_c02 @ urnat_yz.X : Type a0, a1, a2, b0, b1, b2, c0, c1, c2 : X wry : a0 = b0 wrz : b0 = c0 wly : a1 = b1 wlz : b1 = c1 y : a2 = b2 z : b2 = c2 wryz : a0 = c0 wlyz : a1 = c1 a01 : a0 = a1 a12 : a1 = a2 b01 : b0 = b1 b12 : b1 = b2 c01 : c0 = c1 c12 : c1 = c2 a02 : a0 = a2 c02 : c0 = c2 ehrnat_y : wry @ b01 = a01 @ wly ehrnat_z : wrz @ c01 = b01 @ wlz ehrnat_yz : wryz @ c01 = a01 @ wlyz ulnat_y : wly @ b12 = a12 @ y ulnat_z : wlz @ c12 = b12 @ z ulnat_yz : wlyz @ c12 = a12 @ (y @ z) urnat_y : wry @ (b01 @ b12) = a02 @ y urnat_z : wrz @ c02 = b01 @ b12 @ z urnat_yz : wryz @ c02 = a02 @ (y @ z) wrpp_yz : wry @ wrz = wryz wlpp_yz : wly @ wlz = wlyz H_a02 : a01 @ a12 = a02 H_c02 : c01 @ c12 = c02 H_ehrnat_yz : (ehrnat_y [-] ehrnat_z) @ whiskerL a01 wlpp_yz =
whiskerR wrpp_yz c01 @ ehrnat_yz H_ulnat_yz : ulnat_y [-] ulnat_z = whiskerR wlpp_yz c12 @ ulnat_yz H_urnat_yz : urnat_y [-] urnat_z = whiskerR wrpp_yz c02 @ urnat_yz ehrnat_p1_y : (ehrnat_y [I] ulnat_y) @ whiskerR H_a02 y = 1 @ urnat_y ehrnat_p1_z : (ehrnat_z [I] ulnat_z) @ 1 = whiskerL wrz H_c02 @ urnat_z
(ehrnat_yz [I] ulnat_yz) @ whiskerR H_a02 (y @ z) =
whiskerL wryz H_c02 @ urnat_yz
Proof .X : Type a0, a1, a2, b0, b1, b2, c0, c1, c2 : X wry : a0 = b0 wrz : b0 = c0 wly : a1 = b1 wlz : b1 = c1 y : a2 = b2 z : b2 = c2 wryz : a0 = c0 wlyz : a1 = c1 a01 : a0 = a1 a12 : a1 = a2 b01 : b0 = b1 b12 : b1 = b2 c01 : c0 = c1 c12 : c1 = c2 a02 : a0 = a2 c02 : c0 = c2 ehrnat_y : wry @ b01 = a01 @ wly ehrnat_z : wrz @ c01 = b01 @ wlz ehrnat_yz : wryz @ c01 = a01 @ wlyz ulnat_y : wly @ b12 = a12 @ y ulnat_z : wlz @ c12 = b12 @ z ulnat_yz : wlyz @ c12 = a12 @ (y @ z) urnat_y : wry @ (b01 @ b12) = a02 @ y urnat_z : wrz @ c02 = b01 @ b12 @ z urnat_yz : wryz @ c02 = a02 @ (y @ z) wrpp_yz : wry @ wrz = wryz wlpp_yz : wly @ wlz = wlyz H_a02 : a01 @ a12 = a02 H_c02 : c01 @ c12 = c02 H_ehrnat_yz : (ehrnat_y [-] ehrnat_z) @ whiskerL a01 wlpp_yz =
whiskerR wrpp_yz c01 @ ehrnat_yz H_ulnat_yz : ulnat_y [-] ulnat_z = whiskerR wlpp_yz c12 @ ulnat_yz H_urnat_yz : urnat_y [-] urnat_z = whiskerR wrpp_yz c02 @ urnat_yz ehrnat_p1_y : (ehrnat_y [I] ulnat_y) @ whiskerR H_a02 y = 1 @ urnat_y ehrnat_p1_z : (ehrnat_z [I] ulnat_z) @ 1 = whiskerL wrz H_c02 @ urnat_z
(ehrnat_yz [I] ulnat_yz) @ whiskerR H_a02 (y @ z) =
whiskerL wryz H_c02 @ urnat_yz
apply moveR_Vp in H_urnat_yz, H_ulnat_yz, H_ehrnat_yz.X : Type a0, a1, a2, b0, b1, b2, c0, c1, c2 : X wry : a0 = b0 wrz : b0 = c0 wly : a1 = b1 wlz : b1 = c1 y : a2 = b2 z : b2 = c2 wryz : a0 = c0 wlyz : a1 = c1 a01 : a0 = a1 a12 : a1 = a2 b01 : b0 = b1 b12 : b1 = b2 c01 : c0 = c1 c12 : c1 = c2 a02 : a0 = a2 c02 : c0 = c2 ehrnat_y : wry @ b01 = a01 @ wly ehrnat_z : wrz @ c01 = b01 @ wlz ehrnat_yz : wryz @ c01 = a01 @ wlyz ulnat_y : wly @ b12 = a12 @ y ulnat_z : wlz @ c12 = b12 @ z ulnat_yz : wlyz @ c12 = a12 @ (y @ z) urnat_y : wry @ (b01 @ b12) = a02 @ y urnat_z : wrz @ c02 = b01 @ b12 @ z urnat_yz : wryz @ c02 = a02 @ (y @ z) wrpp_yz : wry @ wrz = wryz wlpp_yz : wly @ wlz = wlyz H_a02 : a01 @ a12 = a02 H_c02 : c01 @ c12 = c02 H_ehrnat_yz : (whiskerR wrpp_yz c01)^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL a01 wlpp_yz) =
ehrnat_yz H_ulnat_yz : (whiskerR wlpp_yz c12)^ @ (ulnat_y [-] ulnat_z) = ulnat_yz H_urnat_yz : (whiskerR wrpp_yz c02)^ @ (urnat_y [-] urnat_z) = urnat_yz ehrnat_p1_y : (ehrnat_y [I] ulnat_y) @ whiskerR H_a02 y = 1 @ urnat_y ehrnat_p1_z : (ehrnat_z [I] ulnat_z) @ 1 = whiskerL wrz H_c02 @ urnat_z
(ehrnat_yz [I] ulnat_yz) @ whiskerR H_a02 (y @ z) =
whiskerL wryz H_c02 @ urnat_yz
destruct H_urnat_yz, H_ulnat_yz, H_ehrnat_yz.X : Type a0, a1, a2, b0, b1, b2, c0, c1, c2 : X wry : a0 = b0 wrz : b0 = c0 wly : a1 = b1 wlz : b1 = c1 y : a2 = b2 z : b2 = c2 wryz : a0 = c0 wlyz : a1 = c1 a01 : a0 = a1 a12 : a1 = a2 b01 : b0 = b1 b12 : b1 = b2 c01 : c0 = c1 c12 : c1 = c2 a02 : a0 = a2 c02 : c0 = c2 ehrnat_y : wry @ b01 = a01 @ wly ehrnat_z : wrz @ c01 = b01 @ wlz ulnat_y : wly @ b12 = a12 @ y ulnat_z : wlz @ c12 = b12 @ z urnat_y : wry @ (b01 @ b12) = a02 @ y urnat_z : wrz @ c02 = b01 @ b12 @ z wrpp_yz : wry @ wrz = wryz wlpp_yz : wly @ wlz = wlyz H_a02 : a01 @ a12 = a02 H_c02 : c01 @ c12 = c02 ehrnat_p1_y : (ehrnat_y [I] ulnat_y) @ whiskerR H_a02 y = 1 @ urnat_y ehrnat_p1_z : (ehrnat_z [I] ulnat_z) @ 1 = whiskerL wrz H_c02 @ urnat_z
((whiskerR wrpp_yz c01)^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL a01 wlpp_yz)
[I] (whiskerR wlpp_yz c12)^ @ (ulnat_y [-] ulnat_z)) @
whiskerR H_a02 (y @ z) =
whiskerL wryz H_c02 @ ((whiskerR wrpp_yz c02)^ @ (urnat_y [-] urnat_z))
apply moveR_Vp in ehrnat_p1_y, ehrnat_p1_z.X : Type a0, a1, a2, b0, b1, b2, c0, c1, c2 : X wry : a0 = b0 wrz : b0 = c0 wly : a1 = b1 wlz : b1 = c1 y : a2 = b2 z : b2 = c2 wryz : a0 = c0 wlyz : a1 = c1 a01 : a0 = a1 a12 : a1 = a2 b01 : b0 = b1 b12 : b1 = b2 c01 : c0 = c1 c12 : c1 = c2 a02 : a0 = a2 c02 : c0 = c2 ehrnat_y : wry @ b01 = a01 @ wly ehrnat_z : wrz @ c01 = b01 @ wlz ulnat_y : wly @ b12 = a12 @ y ulnat_z : wlz @ c12 = b12 @ z urnat_y : wry @ (b01 @ b12) = a02 @ y urnat_z : wrz @ c02 = b01 @ b12 @ z wrpp_yz : wry @ wrz = wryz wlpp_yz : wly @ wlz = wlyz H_a02 : a01 @ a12 = a02 H_c02 : c01 @ c12 = c02 ehrnat_p1_y : 1 ^ @ ((ehrnat_y [I] ulnat_y) @ whiskerR H_a02 y) = urnat_yehrnat_p1_z : (whiskerL wrz H_c02)^ @ ((ehrnat_z [I] ulnat_z) @ 1 ) = urnat_z
((whiskerR wrpp_yz c01)^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL a01 wlpp_yz)
[I] (whiskerR wlpp_yz c12)^ @ (ulnat_y [-] ulnat_z)) @
whiskerR H_a02 (y @ z) =
whiskerL wryz H_c02 @ ((whiskerR wrpp_yz c02)^ @ (urnat_y [-] urnat_z))
destruct ehrnat_p1_y, ehrnat_p1_z.X : Type a0, a1, a2, b0, b1, b2, c0, c1, c2 : X wry : a0 = b0 wrz : b0 = c0 wly : a1 = b1 wlz : b1 = c1 y : a2 = b2 z : b2 = c2 wryz : a0 = c0 wlyz : a1 = c1 a01 : a0 = a1 a12 : a1 = a2 b01 : b0 = b1 b12 : b1 = b2 c01 : c0 = c1 c12 : c1 = c2 a02 : a0 = a2 c02 : c0 = c2 ehrnat_y : wry @ b01 = a01 @ wly ehrnat_z : wrz @ c01 = b01 @ wlz ulnat_y : wly @ b12 = a12 @ y ulnat_z : wlz @ c12 = b12 @ z wrpp_yz : wry @ wrz = wryz wlpp_yz : wly @ wlz = wlyz H_a02 : a01 @ a12 = a02 H_c02 : c01 @ c12 = c02
((whiskerR wrpp_yz c01)^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL a01 wlpp_yz)
[I] (whiskerR wlpp_yz c12)^ @ (ulnat_y [-] ulnat_z)) @
whiskerR H_a02 (y @ z) =
whiskerL wryz H_c02 @
((whiskerR wrpp_yz c02)^ @
(1 ^ @ ((ehrnat_y [I] ulnat_y) @ whiskerR H_a02 y)
[-] (whiskerL wrz H_c02)^ @ ((ehrnat_z [I] ulnat_z) @ 1 )))
destruct H_a02, H_c02.X : Type a0, a1, a2, b0, b1, b2, c0, c1, c2 : X wry : a0 = b0 wrz : b0 = c0 wly : a1 = b1 wlz : b1 = c1 y : a2 = b2 z : b2 = c2 wryz : a0 = c0 wlyz : a1 = c1 a01 : a0 = a1 a12 : a1 = a2 b01 : b0 = b1 b12 : b1 = b2 c01 : c0 = c1 c12 : c1 = c2 ehrnat_y : wry @ b01 = a01 @ wly ehrnat_z : wrz @ c01 = b01 @ wlz ulnat_y : wly @ b12 = a12 @ y ulnat_z : wlz @ c12 = b12 @ z wrpp_yz : wry @ wrz = wryz wlpp_yz : wly @ wlz = wlyz
((whiskerR wrpp_yz c01)^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL a01 wlpp_yz)
[I] (whiskerR wlpp_yz c12)^ @ (ulnat_y [-] ulnat_z)) @
whiskerR 1 (y @ z) =
whiskerL wryz 1 @
((whiskerR wrpp_yz (c01 @ c12))^ @
(1 ^ @ ((ehrnat_y [I] ulnat_y) @ whiskerR 1 y)
[-] (whiskerL wrz 1 )^ @ ((ehrnat_z [I] ulnat_z) @ 1 )))
destruct wrpp_yz, wlpp_yz.X : Type a0, a1, a2, b0, b1, b2, c0, c1, c2 : X wry : a0 = b0 wrz : b0 = c0 wly : a1 = b1 wlz : b1 = c1 y : a2 = b2 z : b2 = c2 a01 : a0 = a1 a12 : a1 = a2 b01 : b0 = b1 b12 : b1 = b2 c01 : c0 = c1 c12 : c1 = c2 ehrnat_y : wry @ b01 = a01 @ wly ehrnat_z : wrz @ c01 = b01 @ wlz ulnat_y : wly @ b12 = a12 @ y ulnat_z : wlz @ c12 = b12 @ z
((whiskerR 1 c01)^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL a01 1 )
[I] (whiskerR 1 c12)^ @ (ulnat_y [-] ulnat_z)) @
whiskerR 1 (y @ z) =
whiskerL (wry @ wrz) 1 @
((whiskerR 1 (c01 @ c12))^ @
(1 ^ @ ((ehrnat_y [I] ulnat_y) @ whiskerR 1 y)
[-] (whiskerL wrz 1 )^ @ ((ehrnat_z [I] ulnat_z) @ 1 )))
destruct a01, a12, b01, b12, c01, c12.X : Type a0, b0, c0 : X wry : a0 = b0 wrz : b0 = c0 wly : a0 = b0 wlz : b0 = c0 y : a0 = b0 z : b0 = c0 ehrnat_y : wry @ 1 = 1 @ wly ehrnat_z : wrz @ 1 = 1 @ wlz ulnat_y : wly @ 1 = 1 @ y ulnat_z : wlz @ 1 = 1 @ z
((whiskerR 1 1 )^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL 1 1 )
[I] (whiskerR 1 1 )^ @ (ulnat_y [-] ulnat_z)) @
whiskerR 1 (y @ z) =
whiskerL (wry @ wrz) 1 @
((whiskerR 1 (1 @ 1 ))^ @
(1 ^ @ ((ehrnat_y [I] ulnat_y) @ whiskerR 1 y)
[-] (whiskerL wrz 1 )^ @ ((ehrnat_z [I] ulnat_z) @ 1 )))
revert y ulnat_y.X : Type a0, b0, c0 : X wry : a0 = b0 wrz : b0 = c0 wly : a0 = b0 wlz, z : b0 = c0 ehrnat_y : wry @ 1 = 1 @ wly ehrnat_z : wrz @ 1 = 1 @ wlz ulnat_z : wlz @ 1 = 1 @ z
forall (y : a0 = b0) (ulnat_y : wly @ 1 = 1 @ y),
((whiskerR 1 1 )^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL 1 1 )
[I] (whiskerR 1 1 )^ @ (ulnat_y [-] ulnat_z)) @
whiskerR 1 (y @ z) =
whiskerL (wry @ wrz) 1 @
((whiskerR 1 (1 @ 1 ))^ @
(1 ^ @ ((ehrnat_y [I] ulnat_y) @ whiskerR 1 y)
[-] (whiskerL wrz 1 )^ @ ((ehrnat_z [I] ulnat_z) @ 1 )))
snapply equiv_path_ind_rlucancel. X : Type a0, b0, c0 : X wry : a0 = b0 wrz : b0 = c0 wly : a0 = b0 wlz, z : b0 = c0 ehrnat_y : wry @ 1 = 1 @ wly ehrnat_z : wrz @ 1 = 1 @ wlz ulnat_z : wlz @ 1 = 1 @ z
(fun (q : a0 = b0) (s : wly @ 1 = 1 @ q) =>
((whiskerR 1 1 )^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL 1 1 )
[I] (whiskerR 1 1 )^ @ (s [-] ulnat_z)) @
whiskerR 1 (q @ z) =
whiskerL (wry @ wrz) 1 @
((whiskerR 1 (1 @ 1 ))^ @
(1 ^ @ ((ehrnat_y [I] s) @ whiskerR 1 q)
[-] (whiskerL wrz 1 )^ @ ((ehrnat_z [I] ulnat_z) @ 1 ))))
wly (rlucancel 1 )
revert z ulnat_z.X : Type a0, b0, c0 : X wry : a0 = b0 wrz : b0 = c0 wly : a0 = b0 wlz : b0 = c0 ehrnat_y : wry @ 1 = 1 @ wly ehrnat_z : wrz @ 1 = 1 @ wlz
forall (z : b0 = c0) (ulnat_z : wlz @ 1 = 1 @ z),
(fun (q : a0 = b0) (s : wly @ 1 = 1 @ q) =>
((whiskerR 1 1 )^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL 1 1 )
[I] (whiskerR 1 1 )^ @ (s [-] ulnat_z)) @
whiskerR 1 (q @ z) =
whiskerL (wry @ wrz) 1 @
((whiskerR 1 (1 @ 1 ))^ @
(1 ^ @ ((ehrnat_y [I] s) @ whiskerR 1 q)
[-] (whiskerL wrz 1 )^ @ ((ehrnat_z [I] ulnat_z) @ 1 ))))
wly (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a0, b0, c0 : X wry : a0 = b0 wrz : b0 = c0 wly : a0 = b0 wlz : b0 = c0 ehrnat_y : wry @ 1 = 1 @ wly ehrnat_z : wrz @ 1 = 1 @ wlz
(fun (q : b0 = c0) (s : wlz @ 1 = 1 @ q) =>
(fun (q0 : a0 = b0) (s0 : wly @ 1 = 1 @ q0) =>
((whiskerR 1 1 )^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL 1 1 )
[I] (whiskerR 1 1 )^ @ (s0 [-] s)) @
whiskerR 1 (q0 @ q) =
whiskerL (wry @ wrz) 1 @
((whiskerR 1 (1 @ 1 ))^ @
(1 ^ @ ((ehrnat_y [I] s0) @ whiskerR 1 q0)
[-] (whiskerL wrz 1 )^ @ ((ehrnat_z [I] s) @ 1 ))))
wly (rlucancel 1 ))
wlz (rlucancel 1 )
revert wly ehrnat_y.X : Type a0, b0, c0 : X wry : a0 = b0 wrz, wlz : b0 = c0 ehrnat_z : wrz @ 1 = 1 @ wlz
forall (wly : a0 = b0) (ehrnat_y : wry @ 1 = 1 @ wly),
(fun (q : b0 = c0) (s : wlz @ 1 = 1 @ q) =>
(fun (q0 : a0 = b0) (s0 : wly @ 1 = 1 @ q0) =>
((whiskerR 1 1 )^ @ ((ehrnat_y [-] ehrnat_z) @ whiskerL 1 1 )
[I] (whiskerR 1 1 )^ @ (s0 [-] s)) @
whiskerR 1 (q0 @ q) =
whiskerL (wry @ wrz) 1 @
((whiskerR 1 (1 @ 1 ))^ @
(1 ^ @ ((ehrnat_y [I] s0) @ whiskerR 1 q0)
[-] (whiskerL wrz 1 )^ @ ((ehrnat_z [I] s) @ 1 ))))
wly (rlucancel 1 ))
wlz (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a0, b0, c0 : X wry : a0 = b0 wrz, wlz : b0 = c0 ehrnat_z : wrz @ 1 = 1 @ wlz
(fun (q : a0 = b0) (s : wry @ 1 = 1 @ q) =>
(fun (q0 : b0 = c0) (s0 : wlz @ 1 = 1 @ q0) =>
(fun (q1 : a0 = b0) (s1 : q @ 1 = 1 @ q1) =>
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z) @ whiskerL 1 1 )
[I] (whiskerR 1 1 )^ @ (s1 [-] s0)) @
whiskerR 1 (q1 @ q0) =
whiskerL (wry @ wrz) 1 @
((whiskerR 1 (1 @ 1 ))^ @
(1 ^ @ ((s [I] s1) @ whiskerR 1 q1)
[-] (whiskerL wrz 1 )^ @ ((ehrnat_z [I] s0) @ 1 ))))
q (rlucancel 1 ))
wlz (rlucancel 1 ))
wry (rlucancel 1 )
revert wlz ehrnat_z.X : Type a0, b0, c0 : X wry : a0 = b0 wrz : b0 = c0
forall (wlz : b0 = c0) (ehrnat_z : wrz @ 1 = 1 @ wlz),
(fun (q : a0 = b0) (s : wry @ 1 = 1 @ q) =>
(fun (q0 : b0 = c0) (s0 : wlz @ 1 = 1 @ q0) =>
(fun (q1 : a0 = b0) (s1 : q @ 1 = 1 @ q1) =>
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z) @ whiskerL 1 1 )
[I] (whiskerR 1 1 )^ @ (s1 [-] s0)) @
whiskerR 1 (q1 @ q0) =
whiskerL (wry @ wrz) 1 @
((whiskerR 1 (1 @ 1 ))^ @
(1 ^ @ ((s [I] s1) @ whiskerR 1 q1)
[-] (whiskerL wrz 1 )^ @ ((ehrnat_z [I] s0) @ 1 ))))
q (rlucancel 1 ))
wlz (rlucancel 1 ))
wry (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a0, b0, c0 : X wry : a0 = b0 wrz : b0 = c0
(fun (q : b0 = c0) (s : wrz @ 1 = 1 @ q) =>
(fun (q0 : a0 = b0) (s0 : wry @ 1 = 1 @ q0) =>
(fun (q1 : b0 = c0) (s1 : q @ 1 = 1 @ q1) =>
(fun (q2 : a0 = b0) (s2 : q0 @ 1 = 1 @ q2) =>
((whiskerR 1 1 )^ @ ((s0 [-] s) @ whiskerL 1 1 )
[I] (whiskerR 1 1 )^ @ (s2 [-] s1)) @
whiskerR 1 (q2 @ q1) =
whiskerL (wry @ wrz) 1 @
((whiskerR 1 (1 @ 1 ))^ @
(1 ^ @ ((s0 [I] s2) @ whiskerR 1 q2)
[-] (whiskerL wrz 1 )^ @ ((s [I] s1) @ 1 ))))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wry (rlucancel 1 ))
wrz (rlucancel 1 )
destruct wry, wrz.X : Type a0 : X
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
[I] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 )) @
whiskerR 1 (1 @ 1 ) =
whiskerL (1 @ 1 ) 1 @
((whiskerR 1 (1 @ 1 ))^ @
(1 ^ @ ((rlucancel 1 [I] rlucancel 1 ) @ whiskerR 1 1 )
[-] (whiskerL 1 1 )^ @ ((rlucancel 1 [I] rlucancel 1 ) @ 1 )))
reflexivity .
Defined .
Definition ehrnat_p1_pp {X } {a : X} {u v : idpath a = idpath a} (q : u = 1 ) (r : 1 = v)
: Ehrnat_p1_pp (eh_p1 u) (eh_p1 v) (ehrnat_pp q r 1 ) (ulnat_pp q r) (urnat_pp q r)
(ehrnat_p1 q) (ehrnat_p1 r) =
ehrnat_p1 (q @ r).X : Type a : X u, v : 1 = 1 q : u = 1 r : 1 = v
Ehrnat_p1_pp (eh_p1 u) (eh_p1 v) (ehrnat_pp q r 1 )
(ulnat_pp q r) (urnat_pp q r) (ehrnat_p1 q) (ehrnat_p1 r) =
ehrnat_p1 (q @ r)
Proof .X : Type a : X u, v : 1 = 1 q : u = 1 r : 1 = v
Ehrnat_p1_pp (eh_p1 u) (eh_p1 v) (ehrnat_pp q r 1 )
(ulnat_pp q r) (urnat_pp q r) (ehrnat_p1 q) (ehrnat_p1 r) =
ehrnat_p1 (q @ r)
revert u q.X : Type a : X v : 1 = 1 r : 1 = v
forall (u : 1 = 1 ) (q : u = 1 ),
Ehrnat_p1_pp (eh_p1 u) (eh_p1 v) (ehrnat_pp q r 1 )
(ulnat_pp q r) (urnat_pp q r) (ehrnat_p1 q) (ehrnat_p1 r) =
ehrnat_p1 (q @ r)
snapply (equiv_path_ind (equiv_path_inverse _)). X : Type a : X v : 1 = 1 r : 1 = v
(fun (b : 1 = 1 ) (x : (fun y : 1 = 1 => y = 1 ) b) =>
Ehrnat_p1_pp (eh_p1 b) (eh_p1 v) (ehrnat_pp x r 1 )
(ulnat_pp x r) (urnat_pp x r) (ehrnat_p1 x) (ehrnat_p1 r) =
ehrnat_p1 (x @ r)) 1 (equiv_path_inverse 1 1 1 )
by destruct r.
Defined .
(** Given [wlrnat_V x y] and [wlrnat_V x z], we can explicitly construct [wlrnat_V x (y @ z)]. *)
(** The composite square *)
Definition Wlrnat_V_p_pp
{X : Type }
(** 0 -paths *)
{a0 b0 c0 d0 e0 f0 : X}
{a1 b1 c1 d1 e1 f1 : X}
(** 1 -paths *)
{wlx0 : a0 = b0}
{wlx1 : c0 = d0}
{wlx2 : e0 = f0}
{wrx0 : a1 = b1}
{wrx1 : c1 = d1}
{wrx2 : e1 = f1}
{wry0 : b0 = d0}
{wly0 : b1 = d1}
{wry1 : a0 = c0}
{wly1 : a1 = c1}
{wrz0 : d0 = f0}
{wlz0 : d1 = f1}
{wrz1 : c0 = e0}
{wlz1 : c1 = e1}
{a01 : a0 = a1}
{b01 : b0 = b1}
{c01 : c0 = c1}
{d01 : d0 = d1}
{e01 : e0 = e1}
{f01 : f0 = f1}
{wryz0 : b0 = f0}
{wlyz0 : b1 = f1}
{wryz1 : a0 = e0}
{wlyz1 : a1 = e1}
(** 2 -paths *)
{ehlnat_x0 : wlx0 @ b01 = a01 @ wrx0}
{ehlnat_x1 : wlx1 @ d01 = c01 @ wrx1}
{ehlnat_x2 : wlx2 @ f01 = e01 @ wrx2}
{ehrnat_y0 : wry0 @ d01 = b01 @ wly0}
{ehrnat_y1 : wry1 @ c01 = a01 @ wly1}
{ehrnat_z0 : wrz0 @ f01 = d01 @ wlz0}
{ehrnat_z1 : wrz1 @ e01 = c01 @ wlz1}
{ehrnat_yz0 : wryz0 @ f01 = b01 @ wlyz0}
{ehrnat_yz1 : wryz1 @ e01 = a01 @ wlyz1}
{wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1}
{wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0}
{wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2}
{wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0}
{wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2}
{wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0}
{wrpp_yz0 : wry0 @ wrz0 = wryz0}
{wlpp_yz0 : wly0 @ wlz0 = wlyz0}
{wrpp_yz1 : wry1 @ wrz1 = wryz1}
{wlpp_yz1 : wly1 @ wlz1 = wlyz1}
(** 3 -paths *)
(H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL _ wlpp_yz0 =
whiskerR wrpp_yz0 _ @ ehrnat_yz0)
(H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL _ wlpp_yz1 =
whiskerR wrpp_yz1 _ @ ehrnat_yz1)
(H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 _ =
whiskerL _ wrpp_yz0 @ wlrnat_x_yz)
(H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL _ wlpp_yz0 =
whiskerR wlpp_yz1 _ @ wlrnat_yz_x)
(wlrnat_V_x_y : whiskerR wlrnat_x_y _ @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL _ wlrnat_y_x^)
(wlrnat_V_x_z : whiskerR wlrnat_x_z _ @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL _ wlrnat_z_x^)
: whiskerR wlrnat_x_yz _ @ (ehrnat_yz1 [-] ehlnat_x2) =
(ehlnat_x0 [-] ehrnat_yz0) @ whiskerL _ wlrnat_yz_x^.X : Type a0, b0, c0, d0, e0, f0, a1, b1, c1, d1, e1, f1 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a1 = b1 wrx1 : c1 = d1 wrx2 : e1 = f1 wry0 : b0 = d0 wly0 : b1 = d1 wry1 : a0 = c0 wly1 : a1 = c1 wrz0 : d0 = f0 wlz0 : d1 = f1 wrz1 : c0 = e0 wlz1 : c1 = e1 a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 d01 : d0 = d1 e01 : e0 = e1 f01 : f0 = f1 wryz0 : b0 = f0 wlyz0 : b1 = f1 wryz1 : a0 = e0 wlyz1 : a1 = e1 ehlnat_x0 : wlx0 @ b01 = a01 @ wrx0 ehlnat_x1 : wlx1 @ d01 = c01 @ wrx1 ehlnat_x2 : wlx2 @ f01 = e01 @ wrx2 ehrnat_y0 : wry0 @ d01 = b01 @ wly0 ehrnat_y1 : wry1 @ c01 = a01 @ wly1 ehrnat_z0 : wrz0 @ f01 = d01 @ wlz0 ehrnat_z1 : wrz1 @ e01 = c01 @ wlz1 ehrnat_yz0 : wryz0 @ f01 = b01 @ wlyz0 ehrnat_yz1 : wryz1 @ e01 = a01 @ wlyz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL b01 wlpp_yz0 =
whiskerR wrpp_yz0 f01 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL a01 wlpp_yz1 =
whiskerR wrpp_yz1 e01 @ ehrnat_yz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x wlrnat_V_x_y : whiskerR wlrnat_x_y d01 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL a01 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z f01 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL c01 wlrnat_z_x^
whiskerR wlrnat_x_yz f01 @ (ehrnat_yz1 [-] ehlnat_x2) =
(ehlnat_x0 [-] ehrnat_yz0) @ whiskerL a01 wlrnat_yz_x^
Proof .X : Type a0, b0, c0, d0, e0, f0, a1, b1, c1, d1, e1, f1 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a1 = b1 wrx1 : c1 = d1 wrx2 : e1 = f1 wry0 : b0 = d0 wly0 : b1 = d1 wry1 : a0 = c0 wly1 : a1 = c1 wrz0 : d0 = f0 wlz0 : d1 = f1 wrz1 : c0 = e0 wlz1 : c1 = e1 a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 d01 : d0 = d1 e01 : e0 = e1 f01 : f0 = f1 wryz0 : b0 = f0 wlyz0 : b1 = f1 wryz1 : a0 = e0 wlyz1 : a1 = e1 ehlnat_x0 : wlx0 @ b01 = a01 @ wrx0 ehlnat_x1 : wlx1 @ d01 = c01 @ wrx1 ehlnat_x2 : wlx2 @ f01 = e01 @ wrx2 ehrnat_y0 : wry0 @ d01 = b01 @ wly0 ehrnat_y1 : wry1 @ c01 = a01 @ wly1 ehrnat_z0 : wrz0 @ f01 = d01 @ wlz0 ehrnat_z1 : wrz1 @ e01 = c01 @ wlz1 ehrnat_yz0 : wryz0 @ f01 = b01 @ wlyz0 ehrnat_yz1 : wryz1 @ e01 = a01 @ wlyz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL b01 wlpp_yz0 =
whiskerR wrpp_yz0 f01 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL a01 wlpp_yz1 =
whiskerR wrpp_yz1 e01 @ ehrnat_yz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x wlrnat_V_x_y : whiskerR wlrnat_x_y d01 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL a01 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z f01 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL c01 wlrnat_z_x^
whiskerR wlrnat_x_yz f01 @ (ehrnat_yz1 [-] ehlnat_x2) =
(ehlnat_x0 [-] ehrnat_yz0) @ whiskerL a01 wlrnat_yz_x^
apply moveR_Vp in H_ehrnat_yz0, H_ehrnat_yz1.X : Type a0, b0, c0, d0, e0, f0, a1, b1, c1, d1, e1, f1 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a1 = b1 wrx1 : c1 = d1 wrx2 : e1 = f1 wry0 : b0 = d0 wly0 : b1 = d1 wry1 : a0 = c0 wly1 : a1 = c1 wrz0 : d0 = f0 wlz0 : d1 = f1 wrz1 : c0 = e0 wlz1 : c1 = e1 a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 d01 : d0 = d1 e01 : e0 = e1 f01 : f0 = f1 wryz0 : b0 = f0 wlyz0 : b1 = f1 wryz1 : a0 = e0 wlyz1 : a1 = e1 ehlnat_x0 : wlx0 @ b01 = a01 @ wrx0 ehlnat_x1 : wlx1 @ d01 = c01 @ wrx1 ehlnat_x2 : wlx2 @ f01 = e01 @ wrx2 ehrnat_y0 : wry0 @ d01 = b01 @ wly0 ehrnat_y1 : wry1 @ c01 = a01 @ wly1 ehrnat_z0 : wrz0 @ f01 = d01 @ wlz0 ehrnat_z1 : wrz1 @ e01 = c01 @ wlz1 ehrnat_yz0 : wryz0 @ f01 = b01 @ wlyz0 ehrnat_yz1 : wryz1 @ e01 = a01 @ wlyz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 H_ehrnat_yz0 : (whiskerR wrpp_yz0 f01)^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL b01 wlpp_yz0) = ehrnat_yz0 H_ehrnat_yz1 : (whiskerR wrpp_yz1 e01)^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL a01 wlpp_yz1) = ehrnat_yz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x wlrnat_V_x_y : whiskerR wlrnat_x_y d01 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL a01 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z f01 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL c01 wlrnat_z_x^
whiskerR wlrnat_x_yz f01 @ (ehrnat_yz1 [-] ehlnat_x2) =
(ehlnat_x0 [-] ehrnat_yz0) @ whiskerL a01 wlrnat_yz_x^
destruct H_ehrnat_yz0, H_ehrnat_yz1.X : Type a0, b0, c0, d0, e0, f0, a1, b1, c1, d1, e1, f1 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a1 = b1 wrx1 : c1 = d1 wrx2 : e1 = f1 wry0 : b0 = d0 wly0 : b1 = d1 wry1 : a0 = c0 wly1 : a1 = c1 wrz0 : d0 = f0 wlz0 : d1 = f1 wrz1 : c0 = e0 wlz1 : c1 = e1 a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 d01 : d0 = d1 e01 : e0 = e1 f01 : f0 = f1 wryz0 : b0 = f0 wlyz0 : b1 = f1 wryz1 : a0 = e0 wlyz1 : a1 = e1 ehlnat_x0 : wlx0 @ b01 = a01 @ wrx0 ehlnat_x1 : wlx1 @ d01 = c01 @ wrx1 ehlnat_x2 : wlx2 @ f01 = e01 @ wrx2 ehrnat_y0 : wry0 @ d01 = b01 @ wly0 ehrnat_y1 : wry1 @ c01 = a01 @ wly1 ehrnat_z0 : wrz0 @ f01 = d01 @ wlz0 ehrnat_z1 : wrz1 @ e01 = c01 @ wlz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x wlrnat_V_x_y : whiskerR wlrnat_x_y d01 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL a01 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z f01 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL c01 wlrnat_z_x^
whiskerR wlrnat_x_yz f01 @
((whiskerR wrpp_yz1 e01)^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL a01 wlpp_yz1) [-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 f01)^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL b01 wlpp_yz0)) @
whiskerL a01 wlrnat_yz_x^
apply moveR_Vp in H_wlrnat_x_yz, H_wlrnat_yz_x.X : Type a0, b0, c0, d0, e0, f0, a1, b1, c1, d1, e1, f1 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a1 = b1 wrx1 : c1 = d1 wrx2 : e1 = f1 wry0 : b0 = d0 wly0 : b1 = d1 wry1 : a0 = c0 wly1 : a1 = c1 wrz0 : d0 = f0 wlz0 : d1 = f1 wrz1 : c0 = e0 wlz1 : c1 = e1 a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 d01 : d0 = d1 e01 : e0 = e1 f01 : f0 = f1 wryz0 : b0 = f0 wlyz0 : b1 = f1 wryz1 : a0 = e0 wlyz1 : a1 = e1 ehlnat_x0 : wlx0 @ b01 = a01 @ wrx0 ehlnat_x1 : wlx1 @ d01 = c01 @ wrx1 ehlnat_x2 : wlx2 @ f01 = e01 @ wrx2 ehrnat_y0 : wry0 @ d01 = b01 @ wly0 ehrnat_y1 : wry1 @ c01 = a01 @ wly1 ehrnat_z0 : wrz0 @ f01 = d01 @ wlz0 ehrnat_z1 : wrz1 @ e01 = c01 @ wlz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 H_wlrnat_x_yz : (whiskerL wlx0 wrpp_yz0)^ @
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2) = wlrnat_x_yz H_wlrnat_yz_x : (whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0) = wlrnat_yz_x wlrnat_V_x_y : whiskerR wlrnat_x_y d01 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL a01 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z f01 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL c01 wlrnat_z_x^
whiskerR wlrnat_x_yz f01 @
((whiskerR wrpp_yz1 e01)^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL a01 wlpp_yz1) [-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 f01)^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL b01 wlpp_yz0)) @
whiskerL a01 wlrnat_yz_x^
destruct H_wlrnat_x_yz, H_wlrnat_yz_x.X : Type a0, b0, c0, d0, e0, f0, a1, b1, c1, d1, e1, f1 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a1 = b1 wrx1 : c1 = d1 wrx2 : e1 = f1 wry0 : b0 = d0 wly0 : b1 = d1 wry1 : a0 = c0 wly1 : a1 = c1 wrz0 : d0 = f0 wlz0 : d1 = f1 wrz1 : c0 = e0 wlz1 : c1 = e1 a01 : a0 = a1 b01 : b0 = b1 c01 : c0 = c1 d01 : d0 = d1 e01 : e0 = e1 f01 : f0 = f1 wryz0 : b0 = f0 wlyz0 : b1 = f1 wryz1 : a0 = e0 wlyz1 : a1 = e1 ehlnat_x0 : wlx0 @ b01 = a01 @ wrx0 ehlnat_x1 : wlx1 @ d01 = c01 @ wrx1 ehlnat_x2 : wlx2 @ f01 = e01 @ wrx2 ehrnat_y0 : wry0 @ d01 = b01 @ wly0 ehrnat_y1 : wry1 @ c01 = a01 @ wly1 ehrnat_z0 : wrz0 @ f01 = d01 @ wlz0 ehrnat_z1 : wrz1 @ e01 = c01 @ wlz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 wlrnat_V_x_y : whiskerR wlrnat_x_y d01 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL a01 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z f01 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL c01 wlrnat_z_x^
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2))
f01 @
((whiskerR wrpp_yz1 e01)^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL a01 wlpp_yz1) [-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 f01)^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL b01 wlpp_yz0)) @
whiskerL a01
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
destruct a01, b01, c01, d01, e01, f01.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 wryz0, wlyz0 : b0 = f0 wryz1, wlyz1 : a0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2))
1 @
((whiskerR wrpp_yz1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1)
[-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0)) @
whiskerL 1
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
apply moveL_pV in wlrnat_V_x_y.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 wryz0, wlyz0 : b0 = f0 wryz1, wlyz1 : a0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2))
1 @
((whiskerR wrpp_yz1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1)
[-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0)) @
whiskerL 1
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
apply (concat (whiskerR_p1' wlrnat_x_y)^) in wlrnat_V_x_y.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 wryz0, wlyz0 : b0 = f0 wryz1, wlyz1 : a0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 wlrnat_V_x_y : concat_p1 (wlx0 @ wry0) @ (wlrnat_x_y @ (concat_p1 (wry1 @ wlx1))^) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2))
1 @
((whiskerR wrpp_yz1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1)
[-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0)) @
whiskerL 1
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
apply moveL_Vp, moveL_pV in wlrnat_V_x_y.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 wryz0, wlyz0 : b0 = f0 wryz1, wlyz1 : a0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 wlrnat_V_x_y : wlrnat_x_y =
(concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2))
1 @
((whiskerR wrpp_yz1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1)
[-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0)) @
whiskerL 1
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
apply symmetry in wlrnat_V_x_y.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 wryz0, wlyz0 : b0 = f0 wryz1, wlyz1 : a0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 wlrnat_V_x_y : (concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^ = wlrnat_x_y wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2))
1 @
((whiskerR wrpp_yz1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1)
[-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0)) @
whiskerL 1
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
destruct wlrnat_V_x_y.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 wryz0, wlyz0 : b0 = f0 wryz1, wlyz1 : a0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
(((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^ [I] wlrnat_x_z) @
whiskerR wrpp_yz1 wlx2))
1 @
((whiskerR wrpp_yz1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1)
[-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0)) @
whiskerL 1
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
apply moveL_pV in wlrnat_V_x_z.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 wryz0, wlyz0 : b0 = f0 wryz1, wlyz1 : a0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 wlrnat_V_x_z : whiskerR wlrnat_x_z 1 =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
(((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^ [I] wlrnat_x_z) @
whiskerR wrpp_yz1 wlx2))
1 @
((whiskerR wrpp_yz1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1)
[-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0)) @
whiskerL 1
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
apply (concat (whiskerR_p1' wlrnat_x_z)^) in wlrnat_V_x_z.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 wryz0, wlyz0 : b0 = f0 wryz1, wlyz1 : a0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 wlrnat_V_x_z : concat_p1 (wlx1 @ wrz0) @ (wlrnat_x_z @ (concat_p1 (wrz1 @ wlx2))^) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
(((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^ [I] wlrnat_x_z) @
whiskerR wrpp_yz1 wlx2))
1 @
((whiskerR wrpp_yz1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1)
[-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0)) @
whiskerL 1
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
apply moveL_Vp, moveL_pV in wlrnat_V_x_z.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 wryz0, wlyz0 : b0 = f0 wryz1, wlyz1 : a0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 wlrnat_V_x_z : wlrnat_x_z =
(concat_p1 (wlx1 @ wrz0))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
((concat_p1 (wrz1 @ wlx2))^)^
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
(((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^ [I] wlrnat_x_z) @
whiskerR wrpp_yz1 wlx2))
1 @
((whiskerR wrpp_yz1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1)
[-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0)) @
whiskerL 1
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
apply symmetry in wlrnat_V_x_z.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 wryz0, wlyz0 : b0 = f0 wryz1, wlyz1 : a0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 wlrnat_V_x_z : (concat_p1 (wlx1 @ wrz0))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
((concat_p1 (wrz1 @ wlx2))^)^ = wlrnat_x_z
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
(((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^ [I] wlrnat_x_z) @
whiskerR wrpp_yz1 wlx2))
1 @
((whiskerR wrpp_yz1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1)
[-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0)) @
whiskerL 1
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
destruct wlrnat_V_x_z.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 wryz0, wlyz0 : b0 = f0 wryz1, wlyz1 : a0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1
whiskerR
((whiskerL wlx0 wrpp_yz0)^ @
(((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR wrpp_yz1 wlx2))
1 @
((whiskerR wrpp_yz1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1)
[-] ehlnat_x2) =
(ehlnat_x0
[-] (whiskerR wrpp_yz0 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0)) @
whiskerL 1
((whiskerR wlpp_yz1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0))^
destruct wrpp_yz0, wlpp_yz0, wrpp_yz1, wlpp_yz1.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] ehlnat_x2) =
(ehlnat_x0 [-] (whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))^
revert wlrnat_y_x wlrnat_z_x.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx0 : a0 = b0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
forall (wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] ehlnat_x2) =
(ehlnat_x0 [-] (whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))^
revert wrx0 ehlnat_x0.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
forall (wrx0 : a0 = b0) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] ehlnat_x2) =
(ehlnat_x0 [-] (whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))^
snapply equiv_path_ind_rlucancel. X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wrx1 : c0 = d0 wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
(fun (q : a0 = b0) (s : wlx0 @ 1 = 1 @ q) =>
forall (wlrnat_y_x : wly1 @ wrx1 = q @ wly0)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] ehlnat_x2) =
(s [-] (whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 ))^)
wlx0 (rlucancel 1 )
revert wrx1 ehlnat_x1.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2, wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
forall (wrx1 : c0 = d0) (ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1),
(fun (q : a0 = b0) (s : wlx0 @ 1 = 1 @ q) =>
forall (wlrnat_y_x : wly1 @ wrx1 = q @ wly0)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] ehlnat_x2) =
(s [-] (whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 ))^)
wlx0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2, wrx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
(fun (q : c0 = d0) (s : wlx1 @ 1 = 1 @ q) =>
(fun (q0 : a0 = b0) (s0 : wlx0 @ 1 = 1 @ q0) =>
forall (wlrnat_y_x : wly1 @ q = q0 @ wly0)
(wlrnat_z_x : wlz1 @ wrx2 = q @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @ (ehrnat_y1 [-] s)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((s [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] ehlnat_x2) =
(s0 [-] (whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q0 1 ))^)
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 )
revert wrx2 ehlnat_x2.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
forall (wrx2 : e0 = f0) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2),
(fun (q : c0 = d0) (s : wlx1 @ 1 = 1 @ q) =>
(fun (q0 : a0 = b0) (s0 : wlx0 @ 1 = 1 @ q0) =>
forall (wlrnat_y_x : wly1 @ q = q0 @ wly0)
(wlrnat_z_x : wlz1 @ wrx2 = q @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @ (ehrnat_y1 [-] s)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((s [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] ehlnat_x2) =
(s0 [-] (whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q0 1 ))^)
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wry0, wly0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
(fun (q : e0 = f0) (s : wlx2 @ 1 = 1 @ q) =>
(fun (q0 : c0 = d0) (s0 : wlx1 @ 1 = 1 @ q0) =>
(fun (q1 : a0 = b0) (s1 : wlx0 @ 1 = 1 @ q1) =>
forall (wlrnat_y_x : wly1 @ q0 = q1 @ wly0)
(wlrnat_z_x : wlz1 @ q = q0 @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s1 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @ (ehrnat_y1 [-] s0)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((s0 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @ (ehrnat_z1 [-] s)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] s) =
(s1 [-] (whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 q)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q1 1 ))^)
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 )
revert wly0 ehrnat_y0.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wry0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
forall (wly0 : b0 = d0) (ehrnat_y0 : wry0 @ 1 = 1 @ wly0),
(fun (q : e0 = f0) (s : wlx2 @ 1 = 1 @ q) =>
(fun (q0 : c0 = d0) (s0 : wlx1 @ 1 = 1 @ q0) =>
(fun (q1 : a0 = b0) (s1 : wlx0 @ 1 = 1 @ q1) =>
forall (wlrnat_y_x : wly1 @ q0 = q1 @ wly0)
(wlrnat_z_x : wlz1 @ q = q0 @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s1 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @ (ehrnat_y1 [-] s0)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((s0 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @ (ehrnat_z1 [-] s)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] s) =
(s1 [-] (whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 q)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q1 1 ))^)
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wry0 : b0 = d0 wry1, wly1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
(fun (q : b0 = d0) (s : wry0 @ 1 = 1 @ q) =>
(fun (q0 : e0 = f0) (s0 : wlx2 @ 1 = 1 @ q0) =>
(fun (q1 : c0 = d0) (s1 : wlx1 @ 1 = 1 @ q1) =>
(fun (q2 : a0 = b0) (s2 : wlx0 @ 1 = 1 @ q2) =>
forall (wlrnat_y_x : wly1 @ q1 = q2 @ q)
(wlrnat_z_x : wlz1 @ q0 = q1 @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s2 [-] s) @ whiskerL 1 wlrnat_y_x^ @ (ehrnat_y1 [-] s1)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((s1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s0)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] s0) =
(s2 [-] (whiskerR 1 1 )^ @ ((s [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 q0)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q2 1 ))^)
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 )
revert wly1 ehrnat_y1.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wry0 : b0 = d0 wry1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
forall (wly1 : a0 = c0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1),
(fun (q : b0 = d0) (s : wry0 @ 1 = 1 @ q) =>
(fun (q0 : e0 = f0) (s0 : wlx2 @ 1 = 1 @ q0) =>
(fun (q1 : c0 = d0) (s1 : wlx1 @ 1 = 1 @ q1) =>
(fun (q2 : a0 = b0) (s2 : wlx0 @ 1 = 1 @ q2) =>
forall (wlrnat_y_x : wly1 @ q1 = q2 @ q)
(wlrnat_z_x : wlz1 @ q0 = q1 @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s2 [-] s) @ whiskerL 1 wlrnat_y_x^ @ (ehrnat_y1 [-] s1)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((s1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s0)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] s0) =
(s2 [-] (whiskerR 1 1 )^ @ ((s [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 q0)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q2 1 ))^)
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wry0 : b0 = d0 wry1 : a0 = c0 wrz0, wlz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
(fun (q : a0 = c0) (s : wry1 @ 1 = 1 @ q) =>
(fun (q0 : b0 = d0) (s0 : wry0 @ 1 = 1 @ q0) =>
(fun (q1 : e0 = f0) (s1 : wlx2 @ 1 = 1 @ q1) =>
(fun (q2 : c0 = d0) (s2 : wlx1 @ 1 = 1 @ q2) =>
(fun (q3 : a0 = b0) (s3 : wlx0 @ 1 = 1 @ q3) =>
forall (wlrnat_y_x : q @ q2 = q3 @ q0)
(wlrnat_z_x : wlz1 @ q1 = q2 @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s3 [-] s0) @ whiskerL 1 wlrnat_y_x^ @ (s [-] s2)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((s2 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s1)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z1) @ whiskerL 1 1 ) [-] s1) =
(s3 [-] (whiskerR 1 1 )^ @ ((s0 [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 q1)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q3 1 ))^)
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 ))
wry1 (rlucancel 1 )
revert wlz0 ehrnat_z0.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wry0 : b0 = d0 wry1 : a0 = c0 wrz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
forall (wlz0 : d0 = f0) (ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0),
(fun (q : a0 = c0) (s : wry1 @ 1 = 1 @ q) =>
(fun (q0 : b0 = d0) (s0 : wry0 @ 1 = 1 @ q0) =>
(fun (q1 : e0 = f0) (s1 : wlx2 @ 1 = 1 @ q1) =>
(fun (q2 : c0 = d0) (s2 : wlx1 @ 1 = 1 @ q2) =>
(fun (q3 : a0 = b0) (s3 : wlx0 @ 1 = 1 @ q3) =>
forall (wlrnat_y_x : q @ q2 = q3 @ q0)
(wlrnat_z_x : wlz1 @ q1 = q2 @ wlz0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s3 [-] s0) @ whiskerL 1 wlrnat_y_x^ @ (s [-] s2)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((s2 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s1)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z1) @ whiskerL 1 1 ) [-] s1) =
(s3 [-] (whiskerR 1 1 )^ @ ((s0 [-] ehrnat_z0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 q1)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q3 1 ))^)
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 ))
wry1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wry0 : b0 = d0 wry1 : a0 = c0 wrz0 : d0 = f0 wrz1, wlz1 : c0 = e0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1
(fun (q : d0 = f0) (s : wrz0 @ 1 = 1 @ q) =>
(fun (q0 : a0 = c0) (s0 : wry1 @ 1 = 1 @ q0) =>
(fun (q1 : b0 = d0) (s1 : wry0 @ 1 = 1 @ q1) =>
(fun (q2 : e0 = f0) (s2 : wlx2 @ 1 = 1 @ q2) =>
(fun (q3 : c0 = d0) (s3 : wlx1 @ 1 = 1 @ q3) =>
(fun (q4 : a0 = b0) (s4 : wlx0 @ 1 = 1 @ q4) =>
forall (wlrnat_y_x : q0 @ q3 = q4 @ q1)
(wlrnat_z_x : wlz1 @ q2 = q3 @ q),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s4 [-] s1) @ whiskerL 1 wlrnat_y_x^ @ (s0 [-] s3)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((s3 [-] s) @ whiskerL 1 wlrnat_z_x^ @ (ehrnat_z1 [-] s2)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((s0 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] s2) =
(s4 [-] (whiskerR 1 1 )^ @ ((s1 [-] s) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 q2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q4 1 ))^)
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 ))
wry1 (rlucancel 1 ))
wrz0 (rlucancel 1 )
revert wlz1 ehrnat_z1.X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wry0 : b0 = d0 wry1 : a0 = c0 wrz0 : d0 = f0 wrz1 : c0 = e0
forall (wlz1 : c0 = e0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1),
(fun (q : d0 = f0) (s : wrz0 @ 1 = 1 @ q) =>
(fun (q0 : a0 = c0) (s0 : wry1 @ 1 = 1 @ q0) =>
(fun (q1 : b0 = d0) (s1 : wry0 @ 1 = 1 @ q1) =>
(fun (q2 : e0 = f0) (s2 : wlx2 @ 1 = 1 @ q2) =>
(fun (q3 : c0 = d0) (s3 : wlx1 @ 1 = 1 @ q3) =>
(fun (q4 : a0 = b0) (s4 : wlx0 @ 1 = 1 @ q4) =>
forall (wlrnat_y_x : q0 @ q3 = q4 @ q1)
(wlrnat_z_x : wlz1 @ q2 = q3 @ q),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s4 [-] s1) @ whiskerL 1 wlrnat_y_x^ @ (s0 [-] s3)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((s3 [-] s) @ whiskerL 1 wlrnat_z_x^ @ (ehrnat_z1 [-] s2)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((s0 [-] ehrnat_z1) @ whiskerL 1 1 ) [-] s2) =
(s4 [-] (whiskerR 1 1 )^ @ ((s1 [-] s) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 q2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q4 1 ))^)
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 ))
wry1 (rlucancel 1 ))
wrz0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a0, b0, c0, d0, e0, f0 : X wlx0 : a0 = b0 wlx1 : c0 = d0 wlx2 : e0 = f0 wry0 : b0 = d0 wry1 : a0 = c0 wrz0 : d0 = f0 wrz1 : c0 = e0
(fun (q : c0 = e0) (s : wrz1 @ 1 = 1 @ q) =>
(fun (q0 : d0 = f0) (s0 : wrz0 @ 1 = 1 @ q0) =>
(fun (q1 : a0 = c0) (s1 : wry1 @ 1 = 1 @ q1) =>
(fun (q2 : b0 = d0) (s2 : wry0 @ 1 = 1 @ q2) =>
(fun (q3 : e0 = f0) (s3 : wlx2 @ 1 = 1 @ q3) =>
(fun (q4 : c0 = d0) (s4 : wlx1 @ 1 = 1 @ q4) =>
(fun (q5 : a0 = b0) (s5 : wlx0 @ 1 = 1 @ q5) =>
forall (wlrnat_y_x : q1 @ q4 = q5 @ q2)
(wlrnat_z_x : q @ q3 = q4 @ q0),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ wry0))^ @
((s5 [-] s2) @ whiskerL 1 wlrnat_y_x^ @ (s1 [-] s4)^) @
((concat_p1 (wry1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ wrz0))^ @
((s4 [-] s0) @ whiskerL 1 wlrnat_z_x^ @ (s [-] s3)^) @
((concat_p1 (wrz1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((s1 [-] s) @ whiskerL 1 1 ) [-] s3) =
(s5 [-] (whiskerR 1 1 )^ @ ((s2 [-] s0) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 q3)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q5 1 ))^)
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wry0 (rlucancel 1 ))
wry1 (rlucancel 1 ))
wrz0 (rlucancel 1 ))
wrz1 (rlucancel 1 )
destruct wry0, wry1, wrz0, wrz1.X : Type a0, b0 : X wlx0, wlx1, wlx2 : a0 = b0
forall (wlrnat_y_x : 1 @ wlx1 = wlx0 @ 1 ) (wlrnat_z_x : 1 @ wlx2 = wlx1 @ 1 ),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_y_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_z_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
[-] rlucancel 1 ) =
(rlucancel 1
[-] (whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 wlx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wlx0 1 ))^
revert wlx0.X : Type a0, b0 : X wlx1, wlx2 : a0 = b0
forall (wlx0 : a0 = b0) (wlrnat_y_x : 1 @ wlx1 = wlx0 @ 1 )
(wlrnat_z_x : 1 @ wlx2 = wlx1 @ 1 ),
whiskerR
((whiskerL wlx0 1 )^ @
(((concat_p1 (wlx0 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_y_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_z_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
[-] rlucancel 1 ) =
(rlucancel 1
[-] (whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 wlx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wlx0 1 ))^
snapply equiv_path_ind_lrucancel. X : Type a0, b0 : X wlx1, wlx2 : a0 = b0
(fun (q : a0 = b0) (s : 1 @ wlx1 = q @ 1 ) =>
forall wlrnat_z_x : 1 @ wlx2 = wlx1 @ 1 ,
whiskerR
((whiskerL q 1 )^ @
(((concat_p1 (q @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_z_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
[-] rlucancel 1 ) =
(rlucancel 1
[-] (whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )) @
whiskerL 1 ((whiskerR 1 wlx2)^ @ ((s [-] wlrnat_z_x) @ whiskerL q 1 ))^) wlx1
(lrucancel 1 )
revert wlx1.X : Type a0, b0 : X wlx2 : a0 = b0
forall wlx1 : a0 = b0,
(fun (q : a0 = b0) (s : 1 @ wlx1 = q @ 1 ) =>
forall wlrnat_z_x : 1 @ wlx2 = wlx1 @ 1 ,
whiskerR
((whiskerL q 1 )^ @
(((concat_p1 (q @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ wlx1))^)^
[I] (concat_p1 (wlx1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_z_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
[-] rlucancel 1 ) =
(rlucancel 1
[-] (whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )) @
whiskerL 1 ((whiskerR 1 wlx2)^ @ ((s [-] wlrnat_z_x) @ whiskerL q 1 ))^) wlx1
(lrucancel 1 )
snapply equiv_path_ind_lrucancel. X : Type a0, b0 : X wlx2 : a0 = b0
(fun (q : a0 = b0) (s : 1 @ wlx2 = q @ 1 ) =>
whiskerR
((whiskerL q 1 )^ @
(((concat_p1 (q @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ q))^)^
[I] (concat_p1 (q @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ wlx2))^)^) @
whiskerR 1 wlx2))
1 @
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
[-] rlucancel 1 ) =
(rlucancel 1
[-] (whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )) @
whiskerL 1 ((whiskerR 1 wlx2)^ @ ((lrucancel 1 [-] s) @ whiskerL q 1 ))^)
wlx2 (lrucancel 1 )
destruct wlx2.X : Type a0 : X
whiskerR
((whiskerL 1 1 )^ @
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ 1 ))^)^
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
((concat_p1 (1 @ 1 ))^)^) @
whiskerR 1 1 ))
1 @
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
[-] rlucancel 1 ) =
(rlucancel 1
[-] (whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )) @
whiskerL 1
((whiskerR 1 1 )^ @ ((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 ))^
reflexivity .
Defined .
Definition wlrnat_V_p_pp {X } {a : X} {u v w : idpath a = idpath a} (p : 1 = w) (q : u = 1 ) (r : 1 = v)
: Wlrnat_V_p_pp (ehrnat_pp q r _) (ehrnat_pp q r _) (wlrnat_p_pp p q r) (wlrnat_pp_p q r p)
(wlrnat_V p q) (wlrnat_V p r) =
wlrnat_V p (q @ r).X : Type a : X u, v, w : 1 = 1 p : 1 = wq : u = 1 r : 1 = v
Wlrnat_V_p_pp (ehrnat_pp q r w) (ehrnat_pp q r 1 )
(wlrnat_p_pp p q r) (wlrnat_pp_p q r p) (wlrnat_V p q)
(wlrnat_V p r) =
wlrnat_V p (q @ r)
Proof .X : Type a : X u, v, w : 1 = 1 p : 1 = wq : u = 1 r : 1 = v
Wlrnat_V_p_pp (ehrnat_pp q r w) (ehrnat_pp q r 1 )
(wlrnat_p_pp p q r) (wlrnat_pp_p q r p) (wlrnat_V p q)
(wlrnat_V p r) =
wlrnat_V p (q @ r)
revert u q.X : Type a : X v, w : 1 = 1 p : 1 = wr : 1 = v
forall (u : 1 = 1 ) (q : u = 1 ),
Wlrnat_V_p_pp (ehrnat_pp q r w) (ehrnat_pp q r 1 )
(wlrnat_p_pp p q r) (wlrnat_pp_p q r p) (wlrnat_V p q)
(wlrnat_V p r) =
wlrnat_V p (q @ r)
snapply (equiv_path_ind (equiv_path_inverse _)). X : Type a : X v, w : 1 = 1 p : 1 = wr : 1 = v
(fun (b : 1 = 1 ) (x : (fun y : 1 = 1 => y = 1 ) b) =>
Wlrnat_V_p_pp (ehrnat_pp x r w) (ehrnat_pp x r 1 )
(wlrnat_p_pp p x r) (wlrnat_pp_p x r p) (wlrnat_V p x)
(wlrnat_V p r) =
wlrnat_V p (x @ r)) 1 (equiv_path_inverse 1 1 1 )
by destruct p, r.
Defined .
(** Next we prove a coherence law relating [eh_V p (q @ r)] to [eh_V p q] and [eh_V p r]. *)
(* The following tactics will be used to make the proof faster, but with only minor modifications, the proof goes through without these tactics. The final tactic [generalize_goal] takes a goal of the form [forall a b c ..., expression] and asserts a new goal [forall P, _ -> forall a b c ..., P a b c ...] which can be used to prove the original goal. During the proof, the underscore gets replaced by a special case of [P]. Because [expression] has been replaced with a generic function, the proof of the new goal can be more efficient than the proof of the special case, especially when there are around 84 variables. *)
(* This can be done with Ltac1, but is a bit faster with Ltac2. See the git history for the Ltac1 version. *)
Require Import Ltac2 .Ltac2 .
Ltac2 rec replace_under_prod (ty : constr ) (final : constr ) :=
match Constr.Unsafe.kind ty with
| Constr.Unsafe.Prod a ty
=> Constr.Unsafe.make (Constr.Unsafe.Prod a (replace_under_prod ty final))
| _ => final
end .
Ltac2 make_P (ty : constr ) := replace_under_prod ty 'Type .
Ltac2 rec count_prod (ty : constr ) :=
match Constr.Unsafe.kind ty with
| Constr.Unsafe.Prod _ ty => Int.add 1 (count_prod ty)
| _ => 0
end .
Ltac2 apply_P_on (p : constr ) (n : int) :=
Constr.Unsafe.make
(Constr.Unsafe.App
p
(Array.init
n
(fun i => Constr.Unsafe.make (Constr.Unsafe.Rel (Int.sub n i))))).
Ltac2 apply_P (ty : constr ) (p : int -> constr ) :=
let n := count_prod ty in
replace_under_prod ty (apply_P_on (p n) n).
Ltac2 make_P_and_evars (ty : constr ) :=
let p_ty := make_P ty in
let res := apply_P ty (fun n => Constr.Unsafe.make (Constr.Unsafe.Rel (Int.add n 1 ))) in
'(forall P : $p_ty, _ -> $res).
Ltac make_P_and_evars :=
ltac2 :(ty |- Control.refine (fun _ => make_P_and_evars (Option.get (Ltac1.to_constr ty)))).
Ltac generalize_goal X :=
match goal with |- ?G =>
let T := open_constr:(ltac :(make_P_and_evars G)) in
assert (X : T) end .
(* Make Ltac1 the default again. *)
Set Default Proof Mode "Classic" .
(* We need this equivalence twice below. *)
Local Lemma equiv_helper {X } {a b : X} {p q r : a = b} (t : q @ 1 = r) (u : p @ 1 = r) (s : p = q)
: ((concat_p1 p)^ @ (u @ t^)) @ (concat_p1 q) = s
<~> whiskerR s 1 @ t = u.X : Type a, b : X p, q, r : a = b t : q @ 1 = r u : p @ 1 = r s : p = q
(concat_p1 p)^ @ (u @ t^) @ concat_p1 q = s <~> whiskerR s 1 @ t = u
Proof .X : Type a, b : X p, q, r : a = b t : q @ 1 = r u : p @ 1 = r s : p = q
(concat_p1 p)^ @ (u @ t^) @ concat_p1 q = s <~> whiskerR s 1 @ t = u
snapply (_ oE equiv_path_inverse _ _). X : Type a, b : X p, q, r : a = b t : q @ 1 = r u : p @ 1 = r s : p = q
s = (concat_p1 p)^ @ (u @ t^) @ concat_p1 q <~> whiskerR s 1 @ t = u
snapply (_ oE equiv_moveR_pV _ _ _). X : Type a, b : X p, q, r : a = b t : q @ 1 = r u : p @ 1 = r s : p = q
s @ (concat_p1 q)^ = (concat_p1 p)^ @ (u @ t^) <~> whiskerR s 1 @ t = u
snapply (_ oE equiv_moveR_Mp _ _ _). X : Type a, b : X p, q, r : a = b t : q @ 1 = r u : p @ 1 = r s : p = q
concat_p1 p @ (s @ (concat_p1 q)^) = u @ t^ <~> whiskerR s 1 @ t = u
snapply (_ oE equiv_concat_l (whiskerR_p1' s) _). X : Type a, b : X p, q, r : a = b t : q @ 1 = r u : p @ 1 = r s : p = q
whiskerR s 1 = u @ t^ <~> whiskerR s 1 @ t = u
exact (equiv_moveR_pM _ _ _).
Defined .
(* This special case of [equiv_path_ind] comes up a lot. *)
Definition equiv_path_ind_moveL_Mp {X } (a b c : X) (p : a = c) (r : a = b)
(P : forall (q : b = c), p = r @ q -> Type )
(i : P (r^ @ p) (equiv_moveL_Mp _ _ _ 1 ))
: forall (q : b = c) (s : p = r @ q), P q s.X : Type a, b, c : X p : a = c r : a = b P : forall q : b = c, p = r @ q -> Type i : P (r^ @ p) (equiv_moveL_Mp (r^ @ p) p r 1 )
forall (q : b = c) (s : p = r @ q), P q s
Proof .X : Type a, b, c : X p : a = c r : a = b P : forall q : b = c, p = r @ q -> Type i : P (r^ @ p) (equiv_moveL_Mp (r^ @ p) p r 1 )
forall (q : b = c) (s : p = r @ q), P q s
exact (equiv_path_ind (fun q => (equiv_moveL_Mp q _ _)) P i).
Defined .
(* A form of the coherence we can prove by path induction. *)
Definition eh_V_p_pp_gen {X : Type }
(* 0 -paths *)
{a b c d e f : X}
(* 1 -paths *)
{wlx0 x0 wrx0 : a = b}
{wlx1 x1 wrx1 : c = d}
{wlx2 x2 wrx2 : e = f}
{wly0 y0 wry0 : b = d}
{wly1 y1 wry1 : a = c}
{wlz0 z0 wrz0 : d = f}
{wlz1 z1 wrz1 : c = e}
{wlyz0 wryz0 : b = f}
{wlyz1 wryz1 : a = e}
(* 2 -paths *)
{ulnat_x0 : wlx0 @ 1 = 1 @ x0}
{urnat_x0 : wrx0 @ 1 = 1 @ x0}
{ulnat_x1 : wlx1 @ 1 = 1 @ x1}
{urnat_x1 : wrx1 @ 1 = 1 @ x1}
{ulnat_x2 : wlx2 @ 1 = 1 @ x2}
{urnat_x2 : wrx2 @ 1 = 1 @ x2}
{ulnat_y0 : wly0 @ 1 = 1 @ y0}
{urnat_y0 : wry0 @ 1 = 1 @ y0}
{ulnat_y1 : wly1 @ 1 = 1 @ y1}
{urnat_y1 : wry1 @ 1 = 1 @ y1}
{ulnat_z0 : wlz0 @ 1 = 1 @ z0}
{urnat_z0 : wrz0 @ 1 = 1 @ z0}
{ulnat_z1 : wlz1 @ 1 = 1 @ z1}
{urnat_z1 : wrz1 @ 1 = 1 @ z1}
{ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0)}
{urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0)}
{ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1)}
{urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)}
{ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0}
{ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1}
{ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2}
{ehrnat_y0 : wry0 @ 1 = 1 @ wly0}
{ehrnat_y1 : wry1 @ 1 = 1 @ wly1}
{ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0}
{ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1}
{ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0}
{ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1}
{wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1}
{wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0}
{wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2}
{wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0}
{wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2}
{wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0}
{wrpp_yz0 : wry0 @ wrz0 = wryz0}
{wlpp_yz0 : wly0 @ wlz0 = wlyz0}
{wrpp_yz1 : wry1 @ wrz1 = wryz1}
{wlpp_yz1 : wly1 @ wlz1 = wlyz1}
(* 3 -paths *)
{H_ulnat_yz0 : (ulnat_y0 [-] ulnat_z0) = whiskerR wlpp_yz0 _ @ ulnat_yz0}
{H_urnat_yz0 : (urnat_y0 [-] urnat_z0) = whiskerR wrpp_yz0 _ @ urnat_yz0}
{H_ulnat_yz1 : (ulnat_y1 [-] ulnat_z1) = whiskerR wlpp_yz1 _ @ ulnat_yz1}
{H_urnat_yz1 : (urnat_y1 [-] urnat_z1) = whiskerR wrpp_yz1 _ @ urnat_yz1}
{H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL _ wlpp_yz0 =
whiskerR wrpp_yz0 _ @ ehrnat_yz0}
{H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL _ wlpp_yz1 =
whiskerR wrpp_yz1 _ @ ehrnat_yz1}
{H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 _ =
whiskerL _ wrpp_yz0 @ wlrnat_x_yz}
{H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL _ wlpp_yz0 =
whiskerR wlpp_yz1 _ @ wlrnat_yz_x}
(ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0)
(ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1)
(ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2)
{ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0}
{ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1}
{ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0}
{ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1}
{ehrnat_p1_yz0 : (ehrnat_yz0 [I] ulnat_yz0) @ 1 = 1 @ urnat_yz0}
{ehrnat_p1_yz1 : (ehrnat_yz1 [I] ulnat_yz1) @ 1 = 1 @ urnat_yz1}
{wlrnat_V_x_y : whiskerR wlrnat_x_y _ @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL _ wlrnat_y_x^}
{wlrnat_V_x_z : whiskerR wlrnat_x_z _ @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL _ wlrnat_z_x^}
{wlrnat_V_x_yz : whiskerR wlrnat_x_yz _ @ (ehrnat_yz1 [-] ehlnat_x2) =
(ehlnat_x0 [-] ehrnat_yz0) @ whiskerL _ wlrnat_yz_x^}
(* 4 -paths *)
(H_ehrnat_p1_yz0
: Ehrnat_p1_pp 1 1 H_ehrnat_yz0 H_ulnat_yz0 H_urnat_yz0 ehrnat_p1_y0 ehrnat_p1_z0 =
ehrnat_p1_yz0)
(H_ehrnat_p1_yz1
: Ehrnat_p1_pp 1 1 H_ehrnat_yz1 H_ulnat_yz1 H_urnat_yz1 ehrnat_p1_y1 ehrnat_p1_z1 =
ehrnat_p1_yz1)
(H_wlrnat_V_x_yz
: Wlrnat_V_p_pp H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz H_wlrnat_yz_x wlrnat_V_x_y wlrnat_V_x_z =
wlrnat_V_x_yz)
: let eh_x_y := concat_p_pp x0 y0 z0 @
whiskerR (((rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y) @
rlucancel_inv (urnat_y1 [-] ulnat_x1)) z0 in
whiskerR (concat_p1 _ @@ concat_p1 _) eh_x_y @
whiskerR (eh_V_gen (ehlnat_1p_x0) (ehlnat_1p_x2) (ehrnat_p1_yz0) (ehrnat_p1_yz1) wlrnat_V_x_yz) eh_x_y @
lrucancel 1 @
whiskerL eh_x_y (Syllepsis.concat_pp_p_p_pp _ _ _)^ @
whiskerL eh_x_y (concat_p1 _ @@ concat_p1 _)^ =
(eh_p_pp_gen H_urnat_yz0 H_urnat_yz1 H_wlrnat_x_yz [-]
lrucancel (whiskerL _ (ap (fun p => whiskerL y1 p)
(moveL_V1 _ _ (eh_V_gen ehlnat_1p_x1 ehlnat_1p_x2
ehrnat_p1_z0 ehrnat_p1_z1 wlrnat_V_x_z))))) [-]
(eh_pp_p_gen H_ulnat_yz1 H_ulnat_yz0 H_wlrnat_yz_x [-]
lrucancel (whiskerL _ (ap (fun p => whiskerR p z0)
(moveL_1V _ _ (eh_V_gen ehlnat_1p_x0 ehlnat_1p_x1
ehrnat_p1_y0 ehrnat_p1_y1 wlrnat_V_x_y))))).X : Type a, b, c, d, e, f : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wlx2, x2, wrx2 : e = f wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c wlz0, z0, wrz0 : d = f wlz1, z1, wrz1 : c = e wlyz0, wryz0 : b = f wlyz1, wryz1 : a = e ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : wrz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : wrz1 @ 1 = 1 @ z1 ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0 ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ehrnat_p1_yz0 : (ehrnat_yz0 [I] ulnat_yz0) @ 1 = 1 @ urnat_yz0 ehrnat_p1_yz1 : (ehrnat_yz1 [I] ulnat_yz1) @ 1 = 1 @ urnat_yz1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ wlrnat_V_x_yz : whiskerR wlrnat_x_yz 1 @ (ehrnat_yz1 [-] ehlnat_x2) =
(ehlnat_x0 [-] ehrnat_yz0) @ whiskerL 1 wlrnat_yz_x^ H_ehrnat_p1_yz0 : Ehrnat_p1_pp 1 1 H_ehrnat_yz0 H_ulnat_yz0 H_urnat_yz0 ehrnat_p1_y0
ehrnat_p1_z0 =
ehrnat_p1_yz0 H_ehrnat_p1_yz1 : Ehrnat_p1_pp 1 1 H_ehrnat_yz1 H_ulnat_yz1 H_urnat_yz1 ehrnat_p1_y1
ehrnat_p1_z1 =
ehrnat_p1_yz1 H_wlrnat_V_x_yz : Wlrnat_V_p_pp H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz H_wlrnat_yz_x
wlrnat_V_x_y wlrnat_V_x_z =
wlrnat_V_x_yz
let eh_x_y :=
concat_p_pp x0 y0 z0 @
whiskerR
((rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1))
z0
in
whiskerR
(concat_p1
((rlucancel_inv (ulnat_x0 [-] urnat_yz0))^ @ wlrnat_x_yz @
rlucancel_inv (urnat_yz1 [-] ulnat_x2)) @@
concat_p1
((rlucancel_inv (ulnat_yz1 [-] urnat_x2))^ @ wlrnat_yz_x @
rlucancel_inv (urnat_x0 [-] ulnat_yz0)))
eh_x_y @
whiskerR
(eh_V_gen ehlnat_1p_x0 ehlnat_1p_x2 ehrnat_p1_yz0 ehrnat_p1_yz1
wlrnat_V_x_yz)
eh_x_y @
lrucancel 1 @ whiskerL eh_x_y (concat_pp_p_p_pp y1 x1 z0)^ @
whiskerL eh_x_y
(concat_p1 (concat_pp_p y1 x1 z0) @@ concat_p1 (concat_p_pp y1 x1 z0))^ =
(eh_p_pp_gen H_urnat_yz0 H_urnat_yz1 H_wlrnat_x_yz
[-] lrucancel
(whiskerL (concat_pp_p y1 z1 x2)
(ap (fun p : z1 @ x2 = x1 @ z0 => whiskerL y1 p)
(moveL_V1
((rlucancel_inv (ulnat_z1 [-] urnat_x2))^ @ wlrnat_z_x @
rlucancel_inv (urnat_x1 [-] ulnat_z0))
((rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2))
(eh_V_gen ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_z0 ehrnat_p1_z1
wlrnat_V_x_z)))))
[-] (eh_pp_p_gen H_ulnat_yz1 H_ulnat_yz0 H_wlrnat_yz_x
[-] lrucancel
(whiskerL (concat_p_pp x0 y0 z0)
(ap (fun p : x0 @ y0 = y1 @ x1 => whiskerR p z0)
(moveL_1V
((rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1))
((rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0))
(eh_V_gen ehlnat_1p_x0 ehlnat_1p_x1 ehrnat_p1_y0
ehrnat_p1_y1 wlrnat_V_x_y)))))
Proof .X : Type a, b, c, d, e, f : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wlx2, x2, wrx2 : e = f wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c wlz0, z0, wrz0 : d = f wlz1, z1, wrz1 : c = e wlyz0, wryz0 : b = f wlyz1, wryz1 : a = e ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : wrz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : wrz1 @ 1 = 1 @ z1 ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0 ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ehrnat_p1_yz0 : (ehrnat_yz0 [I] ulnat_yz0) @ 1 = 1 @ urnat_yz0 ehrnat_p1_yz1 : (ehrnat_yz1 [I] ulnat_yz1) @ 1 = 1 @ urnat_yz1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ wlrnat_V_x_yz : whiskerR wlrnat_x_yz 1 @ (ehrnat_yz1 [-] ehlnat_x2) =
(ehlnat_x0 [-] ehrnat_yz0) @ whiskerL 1 wlrnat_yz_x^ H_ehrnat_p1_yz0 : Ehrnat_p1_pp 1 1 H_ehrnat_yz0 H_ulnat_yz0 H_urnat_yz0 ehrnat_p1_y0
ehrnat_p1_z0 =
ehrnat_p1_yz0 H_ehrnat_p1_yz1 : Ehrnat_p1_pp 1 1 H_ehrnat_yz1 H_ulnat_yz1 H_urnat_yz1 ehrnat_p1_y1
ehrnat_p1_z1 =
ehrnat_p1_yz1 H_wlrnat_V_x_yz : Wlrnat_V_p_pp H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz H_wlrnat_yz_x
wlrnat_V_x_y wlrnat_V_x_z =
wlrnat_V_x_yz
let eh_x_y :=
concat_p_pp x0 y0 z0 @
whiskerR
((rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1))
z0
in
whiskerR
(concat_p1
((rlucancel_inv (ulnat_x0 [-] urnat_yz0))^ @ wlrnat_x_yz @
rlucancel_inv (urnat_yz1 [-] ulnat_x2)) @@
concat_p1
((rlucancel_inv (ulnat_yz1 [-] urnat_x2))^ @ wlrnat_yz_x @
rlucancel_inv (urnat_x0 [-] ulnat_yz0)))
eh_x_y @
whiskerR
(eh_V_gen ehlnat_1p_x0 ehlnat_1p_x2 ehrnat_p1_yz0 ehrnat_p1_yz1
wlrnat_V_x_yz)
eh_x_y @
lrucancel 1 @ whiskerL eh_x_y (concat_pp_p_p_pp y1 x1 z0)^ @
whiskerL eh_x_y
(concat_p1 (concat_pp_p y1 x1 z0) @@ concat_p1 (concat_p_pp y1 x1 z0))^ =
(eh_p_pp_gen H_urnat_yz0 H_urnat_yz1 H_wlrnat_x_yz
[-] lrucancel
(whiskerL (concat_pp_p y1 z1 x2)
(ap (fun p : z1 @ x2 = x1 @ z0 => whiskerL y1 p)
(moveL_V1
((rlucancel_inv (ulnat_z1 [-] urnat_x2))^ @ wlrnat_z_x @
rlucancel_inv (urnat_x1 [-] ulnat_z0))
((rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2))
(eh_V_gen ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_z0 ehrnat_p1_z1
wlrnat_V_x_z)))))
[-] (eh_pp_p_gen H_ulnat_yz1 H_ulnat_yz0 H_wlrnat_yz_x
[-] lrucancel
(whiskerL (concat_p_pp x0 y0 z0)
(ap (fun p : x0 @ y0 = y1 @ x1 => whiskerR p z0)
(moveL_1V
((rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1))
((rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0))
(eh_V_gen ehlnat_1p_x0 ehlnat_1p_x1 ehrnat_p1_y0
ehrnat_p1_y1 wlrnat_V_x_y)))))
(* For some reason, it's most efficient to destruct a few things here but the rest within the subgoal. *)
destruct H_ehrnat_p1_yz0, H_ehrnat_p1_yz1, H_wlrnat_V_x_yz.X : Type a, b, c, d, e, f : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wlx2, x2, wrx2 : e = f wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c wlz0, z0, wrz0 : d = f wlz1, z1, wrz1 : c = e wlyz0, wryz0 : b = f wlyz1, wryz1 : a = e ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : wrz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : wrz1 @ 1 = 1 @ z1 ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0 ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
let eh_x_y :=
concat_p_pp x0 y0 z0 @
whiskerR
((rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1))
z0
in
whiskerR
(concat_p1
((rlucancel_inv (ulnat_x0 [-] urnat_yz0))^ @ wlrnat_x_yz @
rlucancel_inv (urnat_yz1 [-] ulnat_x2)) @@
concat_p1
((rlucancel_inv (ulnat_yz1 [-] urnat_x2))^ @ wlrnat_yz_x @
rlucancel_inv (urnat_x0 [-] ulnat_yz0)))
eh_x_y @
whiskerR
(eh_V_gen ehlnat_1p_x0 ehlnat_1p_x2
(Ehrnat_p1_pp 1 1 H_ehrnat_yz0 H_ulnat_yz0 H_urnat_yz0 ehrnat_p1_y0
ehrnat_p1_z0)
(Ehrnat_p1_pp 1 1 H_ehrnat_yz1 H_ulnat_yz1 H_urnat_yz1 ehrnat_p1_y1
ehrnat_p1_z1)
(Wlrnat_V_p_pp H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz H_wlrnat_yz_x
wlrnat_V_x_y wlrnat_V_x_z))
eh_x_y @
lrucancel 1 @ whiskerL eh_x_y (concat_pp_p_p_pp y1 x1 z0)^ @
whiskerL eh_x_y
(concat_p1 (concat_pp_p y1 x1 z0) @@ concat_p1 (concat_p_pp y1 x1 z0))^ =
(eh_p_pp_gen H_urnat_yz0 H_urnat_yz1 H_wlrnat_x_yz
[-] lrucancel
(whiskerL (concat_pp_p y1 z1 x2)
(ap (fun p : z1 @ x2 = x1 @ z0 => whiskerL y1 p)
(moveL_V1
((rlucancel_inv (ulnat_z1 [-] urnat_x2))^ @ wlrnat_z_x @
rlucancel_inv (urnat_x1 [-] ulnat_z0))
((rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2))
(eh_V_gen ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_z0 ehrnat_p1_z1
wlrnat_V_x_z)))))
[-] (eh_pp_p_gen H_ulnat_yz1 H_ulnat_yz0 H_wlrnat_yz_x
[-] lrucancel
(whiskerL (concat_p_pp x0 y0 z0)
(ap (fun p : x0 @ y0 = y1 @ x1 => whiskerR p z0)
(moveL_1V
((rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1))
((rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0))
(eh_V_gen ehlnat_1p_x0 ehlnat_1p_x1 ehrnat_p1_y0
ehrnat_p1_y1 wlrnat_V_x_y)))))
(* For efficiency purposes, we generalize the goal to an arbitrary function [P] of the context (except for [X] and [a]), and do all of the induction steps in this generality. This reduces the size of the term that Coq needs to manipulate, speeding up the proof. The same proof works with the next three lines removed and with the second and third last lines removed. *)
revert_until a. X : Type a : X
forall (b c d e f : X) (wlx0 x0 wrx0 : a = b) (wlx1 x1 wrx1 : c = d)
(wlx2 x2 wrx2 : e = f) (wly0 y0 wry0 : b = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx0 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx1 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx2 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1)
(H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0)
(H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0)
(H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1)
(H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1)
(H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0)
(H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1)
(H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz)
(H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x)
(ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0)
(ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1)
(ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2)
(ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0)
(ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1)
(ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0)
(ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1)
(wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
(wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^),
let eh_x_y :=
concat_p_pp x0 y0 z0 @
whiskerR
((rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1))
z0
in
whiskerR
(concat_p1
((rlucancel_inv (ulnat_x0 [-] urnat_yz0))^ @ wlrnat_x_yz @
rlucancel_inv (urnat_yz1 [-] ulnat_x2)) @@
concat_p1
((rlucancel_inv (ulnat_yz1 [-] urnat_x2))^ @ wlrnat_yz_x @
rlucancel_inv (urnat_x0 [-] ulnat_yz0)))
eh_x_y @
whiskerR
(eh_V_gen ehlnat_1p_x0 ehlnat_1p_x2
(Ehrnat_p1_pp 1 1 H_ehrnat_yz0 H_ulnat_yz0 H_urnat_yz0 ehrnat_p1_y0
ehrnat_p1_z0)
(Ehrnat_p1_pp 1 1 H_ehrnat_yz1 H_ulnat_yz1 H_urnat_yz1 ehrnat_p1_y1
ehrnat_p1_z1)
(Wlrnat_V_p_pp H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz H_wlrnat_yz_x
wlrnat_V_x_y wlrnat_V_x_z))
eh_x_y @
lrucancel 1 @ whiskerL eh_x_y (concat_pp_p_p_pp y1 x1 z0)^ @
whiskerL eh_x_y
(concat_p1 (concat_pp_p y1 x1 z0) @@ concat_p1 (concat_p_pp y1 x1 z0))^ =
(eh_p_pp_gen H_urnat_yz0 H_urnat_yz1 H_wlrnat_x_yz
[-] lrucancel
(whiskerL (concat_pp_p y1 z1 x2)
(ap (fun p : z1 @ x2 = x1 @ z0 => whiskerL y1 p)
(moveL_V1
((rlucancel_inv (ulnat_z1 [-] urnat_x2))^ @ wlrnat_z_x @
rlucancel_inv (urnat_x1 [-] ulnat_z0))
((rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2))
(eh_V_gen ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_z0 ehrnat_p1_z1
wlrnat_V_x_z)))))
[-] (eh_pp_p_gen H_ulnat_yz1 H_ulnat_yz0 H_wlrnat_yz_x
[-] lrucancel
(whiskerL (concat_p_pp x0 y0 z0)
(ap (fun p : x0 @ y0 = y1 @ x1 => whiskerR p z0)
(moveL_1V
((rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1))
((rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0))
(eh_V_gen ehlnat_1p_x0 ehlnat_1p_x1 ehrnat_p1_y0
ehrnat_p1_y1 wlrnat_V_x_y)))))
generalize_goal lem. X : Type a : X
forall
P : forall (b c d e f : X) (wlx0 x0 wrx0 : a = b)
(wlx1 x1 wrx1 : c = d) (wlx2 x2 wrx2 : e = f)
(wly0 y0 wry0 : b = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e)
(wlyz0 wryz0 : b = f) (wlyz1 wryz1 : a = e)
(ulnat_x0 : wlx0 @ 1 = 1 @ x0) (urnat_x0 : wrx0 @ 1 = 1 @ x0)
(ulnat_x1 : wlx1 @ 1 = 1 @ x1) (urnat_x1 : wrx1 @ 1 = 1 @ x1)
(ulnat_x2 : wlx2 @ 1 = 1 @ x2) (urnat_x2 : wrx2 @ 1 = 1 @ x2)
(ulnat_y0 : wly0 @ 1 = 1 @ y0) (urnat_y0 : wry0 @ 1 = 1 @ y0)
(ulnat_y1 : wly1 @ 1 = 1 @ y1) (urnat_y1 : wry1 @ 1 = 1 @ y1)
(ulnat_z0 : wlz0 @ 1 = 1 @ z0) (urnat_z0 : wrz0 @ 1 = 1 @ z0)
(ulnat_z1 : wlz1 @ 1 = 1 @ z1) (urnat_z1 : wrz1 @ 1 = 1 @ z1)
(ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0)
(wrpp_yz0 : wry0 @ wrz0 = wryz0) (wlpp_yz0 : wly0 @ wlz0 = wlyz0)
(wrpp_yz1 : wry1 @ wrz1 = wryz1) (wlpp_yz1 : wly1 @ wlz1 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type ,
?Goal ->
forall (b c d e f : X) (wlx0 x0 wrx0 : a = b) (wlx1 x1 wrx1 : c = d)
(wlx2 x2 wrx2 : e = f) (wly0 y0 wry0 : b = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx0 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx1 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx2 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1)
(H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0)
(H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0)
(H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1)
(H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1)
(H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0)
(H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1)
(H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz)
(H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x)
(ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0)
(ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1)
(ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2)
(ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0)
(ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1)
(ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0)
(ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1)
(wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
(wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^),
P b c d e f wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 wry0 wly1 y1 wry1
wlz0 z0 wrz0 wlz1 z1 wrz1 wlyz0 wryz0 wlyz1 wryz1 ulnat_x0 urnat_x0
ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1
ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0 urnat_yz0 ulnat_yz1 urnat_yz1
ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1
ehrnat_yz0 ehrnat_yz1 wlrnat_x_y wlrnat_y_x wlrnat_x_z wlrnat_z_x
wlrnat_x_yz wlrnat_yz_x wrpp_yz0 wlpp_yz0 wrpp_yz1 wlpp_yz1 H_ulnat_yz0
H_urnat_yz0 H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz
H_wlrnat_yz_x ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0
ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 wlrnat_V_x_y wlrnat_V_x_z
{ X : Type a : X
forall
P : forall (b c d e f : X) (wlx0 x0 wrx0 : a = b)
(wlx1 x1 wrx1 : c = d) (wlx2 x2 wrx2 : e = f)
(wly0 y0 wry0 : b = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e)
(wlyz0 wryz0 : b = f) (wlyz1 wryz1 : a = e)
(ulnat_x0 : wlx0 @ 1 = 1 @ x0) (urnat_x0 : wrx0 @ 1 = 1 @ x0)
(ulnat_x1 : wlx1 @ 1 = 1 @ x1) (urnat_x1 : wrx1 @ 1 = 1 @ x1)
(ulnat_x2 : wlx2 @ 1 = 1 @ x2) (urnat_x2 : wrx2 @ 1 = 1 @ x2)
(ulnat_y0 : wly0 @ 1 = 1 @ y0) (urnat_y0 : wry0 @ 1 = 1 @ y0)
(ulnat_y1 : wly1 @ 1 = 1 @ y1) (urnat_y1 : wry1 @ 1 = 1 @ y1)
(ulnat_z0 : wlz0 @ 1 = 1 @ z0) (urnat_z0 : wrz0 @ 1 = 1 @ z0)
(ulnat_z1 : wlz1 @ 1 = 1 @ z1) (urnat_z1 : wrz1 @ 1 = 1 @ z1)
(ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0)
(wrpp_yz0 : wry0 @ wrz0 = wryz0) (wlpp_yz0 : wly0 @ wlz0 = wlyz0)
(wrpp_yz1 : wry1 @ wrz1 = wryz1) (wlpp_yz1 : wly1 @ wlz1 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type ,
?Goal ->
forall (b c d e f : X) (wlx0 x0 wrx0 : a = b) (wlx1 x1 wrx1 : c = d)
(wlx2 x2 wrx2 : e = f) (wly0 y0 wry0 : b = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx0 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx1 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx2 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1)
(H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0)
(H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0)
(H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1)
(H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1)
(H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0)
(H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1)
(H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz)
(H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x)
(ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0)
(ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1)
(ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2)
(ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0)
(ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1)
(ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0)
(ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1)
(wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
(wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^),
P b c d e f wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 wry0 wly1 y1 wry1
wlz0 z0 wrz0 wlz1 z1 wrz1 wlyz0 wryz0 wlyz1 wryz1 ulnat_x0 urnat_x0
ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1
ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0 urnat_yz0 ulnat_yz1 urnat_yz1
ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1
ehrnat_yz0 ehrnat_yz1 wlrnat_x_y wlrnat_y_x wlrnat_x_z wlrnat_z_x
wlrnat_x_yz wlrnat_yz_x wrpp_yz0 wlpp_yz0 wrpp_yz1 wlpp_yz1 H_ulnat_yz0
H_urnat_yz0 H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz
H_wlrnat_yz_x ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0
ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 wlrnat_V_x_y wlrnat_V_x_z
intros P H; intros .X : Type a : X P : forall (b0 c0 d0 e0 f0 : X) (wlx3 x3 wrx3 : a = b0)
(wlx4 x4 wrx4 : c0 = d0) (wlx5 x5 wrx5 : e0 = f0)
(wly2 y2 wry2 : b0 = d0) (wly3 y3 wry3 : a = c0) (wlz2 z2 wrz2 : d0 = f0)
(wlz3 z3 wrz3 : c0 = e0) (wlyz2 wryz2 : b0 = f0) (wlyz3 wryz3 : a = e0)
(ulnat_x3 : wlx3 @ 1 = 1 @ x3) (urnat_x3 : wrx3 @ 1 = 1 @ x3)
(ulnat_x4 : wlx4 @ 1 = 1 @ x4) (urnat_x4 : wrx4 @ 1 = 1 @ x4)
(ulnat_x5 : wlx5 @ 1 = 1 @ x5) (urnat_x5 : wrx5 @ 1 = 1 @ x5)
(ulnat_y2 : wly2 @ 1 = 1 @ y2) (urnat_y2 : wry2 @ 1 = 1 @ y2)
(ulnat_y3 : wly3 @ 1 = 1 @ y3) (urnat_y3 : wry3 @ 1 = 1 @ y3)
(ulnat_z2 : wlz2 @ 1 = 1 @ z2) (urnat_z2 : wrz2 @ 1 = 1 @ z2)
(ulnat_z3 : wlz3 @ 1 = 1 @ z3) (urnat_z3 : wrz3 @ 1 = 1 @ z3)
(ulnat_yz2 : wlyz2 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz2 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz3 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz3 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry2 @ 1 = 1 @ wly2) (ehrnat_y3 : wry3 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz2 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz3 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz2 @ 1 = 1 @ wlyz2) (ehrnat_yz3 : wryz3 @ 1 = 1 @ wlyz3)
(wlrnat_x_y0 : wlx3 @ wry2 = wry3 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z0 : wlx4 @ wrz2 = wrz3 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz0 : wlx3 @ wryz2 = wryz3 @ wlx5)
(wlrnat_yz_x0 : wlyz3 @ wrx5 = wrx3 @ wlyz2) (wrpp_yz2 : wry2 @ wrz2 = wryz2)
(wlpp_yz2 : wly2 @ wlz2 = wlyz2) (wrpp_yz3 : wry3 @ wrz3 = wryz3)
(wlpp_yz3 : wly3 @ wlz3 = wlyz3),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz2 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz2 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz3 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz3 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz2 =
whiskerR wrpp_yz2 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz3 =
whiskerR wrpp_yz3 1 @ ehrnat_yz3 ->
(wlrnat_x_y0 [I] wlrnat_x_z0) @ whiskerR wrpp_yz3 wlx5 =
whiskerL wlx3 wrpp_yz2 @ wlrnat_x_yz0 ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz2 =
whiskerR wlpp_yz3 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x3 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x4 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x5 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y0 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z0 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b, c, d, e, f : X wlx0, x0, wrx0 : a = b wlx1, x1, wrx1 : c = d wlx2, x2, wrx2 : e = f wly0, y0, wry0 : b = d wly1, y1, wry1 : a = c wlz0, z0, wrz0 : d = f wlz1, z1, wrz1 : c = e wlyz0, wryz0 : b = f wlyz1, wryz1 : a = e ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : wry0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : wry1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : wrz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : wrz1 @ 1 = 1 @ z1 ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : wry0 @ 1 = 1 @ wly0 ehrnat_y1 : wry1 @ 1 = 1 @ wly1 ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0 ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1 ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0 ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1 wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0 wrpp_yz0 : wry0 @ wrz0 = wryz0 wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : wry1 @ wrz1 = wryz1 wlpp_yz1 : wly1 @ wlz1 = wlyz1 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
P b c d e f wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 wry0 wly1 y1 wry1
wlz0 z0 wrz0 wlz1 z1 wrz1 wlyz0 wryz0 wlyz1 wryz1 ulnat_x0 urnat_x0
ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1
ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0 urnat_yz0 ulnat_yz1 urnat_yz1
ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1
ehrnat_yz0 ehrnat_yz1 wlrnat_x_y wlrnat_y_x wlrnat_x_z wlrnat_z_x
wlrnat_x_yz wlrnat_yz_x wrpp_yz0 wlpp_yz0 wrpp_yz1 wlpp_yz1 H_ulnat_yz0
H_urnat_yz0 H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz
H_wlrnat_yz_x ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0
ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 wlrnat_V_x_y wlrnat_V_x_z
destruct wry0, wry1, wrz0, wrz1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz2 wryz2 : b0 = f)
(wlyz3 wryz3 : a = e) (ulnat_x3 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x4 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x5 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz2 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz2 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz3 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz3 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz2 @ 1 = 1 @ wlyz2) (ehrnat_yz3 : wryz3 @ 1 = 1 @ wlyz3)
(wlrnat_x_y0 : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z0 : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz0 : wlx3 @ wryz2 = wryz3 @ wlx5)
(wlrnat_yz_x0 : wlyz3 @ wrx5 = wrx3 @ wlyz2) (wrpp_yz2 : wry0 @ wrz0 = wryz2)
(wlpp_yz2 : wly2 @ wlz2 = wlyz2) (wrpp_yz3 : wry1 @ wrz1 = wryz3)
(wlpp_yz3 : wly3 @ wlz3 = wlyz3),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz2 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz2 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz3 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz3 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz2 =
whiskerR wrpp_yz2 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz3 =
whiskerR wrpp_yz3 1 @ ehrnat_yz3 ->
(wlrnat_x_y0 [I] wlrnat_x_z0) @ whiskerR wrpp_yz3 wlx5 =
whiskerL wlx3 wrpp_yz2 @ wlrnat_x_yz0 ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz2 =
whiskerR wlpp_yz3 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x3 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x4 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x5 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y0 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z0 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a wlyz0, wryz0 : b = b wlyz1, wryz1 : a = a ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0 ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1 wlrnat_x_y : wlx0 @ 1 = 1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ 1 = 1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2 wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0 wrpp_yz0 : 1 @ 1 = wryz0wlpp_yz0 : wly0 @ wlz0 = wlyz0 wrpp_yz1 : 1 @ 1 = wryz1wlpp_yz1 : wly1 @ wlz1 = wlyz1 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1 wlz0
z0 1 wlz1 z1 1 wlyz0 wryz0 wlyz1 wryz1 ulnat_x0 urnat_x0 ulnat_x1 urnat_x1
ulnat_x2 urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0
ulnat_z1 urnat_z1 ulnat_yz0 urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0
ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0
ehrnat_yz1 wlrnat_x_y wlrnat_y_x wlrnat_x_z wlrnat_z_x wlrnat_x_yz
wlrnat_yz_x wrpp_yz0 wlpp_yz0 wrpp_yz1 wlpp_yz1 H_ulnat_yz0 H_urnat_yz0
H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz
H_wlrnat_yz_x ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0
ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 wlrnat_V_x_y wlrnat_V_x_z
destruct wrpp_yz0, wlpp_yz0, wrpp_yz1, wlpp_yz1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x3 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x4 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x5 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y0 : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z0 : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz0 : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y0 [I] wlrnat_x_z0) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz0 ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x3 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x4 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x5 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y0 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z0 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_x_y : wlx0 @ 1 = 1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ 1 = 1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_x_yz : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ wlrnat_x_yz H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1 wlz0
z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) ulnat_x0 urnat_x0 ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0
urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 wlrnat_x_y wlrnat_y_x
wlrnat_x_z wlrnat_z_x wlrnat_x_yz wlrnat_yz_x 1 1 1 1 H_ulnat_yz0
H_urnat_yz0 H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz
H_wlrnat_yz_x ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0
ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 wlrnat_V_x_y wlrnat_V_x_z
revert wlrnat_x_yz H_wlrnat_x_yz.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x3 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x4 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x5 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y0 : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z0 : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y0 [I] wlrnat_x_z0) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x3 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x4 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x5 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y0 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z0 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_x_y : wlx0 @ 1 = 1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ 1 = 1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
forall (wlrnat_x_yz : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ wlrnat_x_yz),
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1 wlz0
z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) ulnat_x0 urnat_x0 ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0
urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 wlrnat_x_y wlrnat_y_x
wlrnat_x_z wlrnat_z_x wlrnat_x_yz wlrnat_yz_x 1 1 1 1 H_ulnat_yz0
H_urnat_yz0 H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz
H_wlrnat_yz_x ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0
ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 wlrnat_V_x_y wlrnat_V_x_z
snapply equiv_path_ind_moveL_Mp. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x3 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x4 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x5 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y0 : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z0 : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y0 [I] wlrnat_x_z0) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x3 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x4 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x5 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y0 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z0 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_x_y : wlx0 @ 1 = 1 @ wlx1 wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ 1 = 1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
(fun (q : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1 wlz0
z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) ulnat_x0 urnat_x0 ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0
urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 wlrnat_x_y wlrnat_y_x
wlrnat_x_z wlrnat_z_x q wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 H_urnat_yz0
H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s H_wlrnat_yz_x
ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0 ehrnat_p1_y1
ehrnat_p1_z0 ehrnat_p1_z1 wlrnat_V_x_y wlrnat_V_x_z)
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2))
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 )
revert wlrnat_x_y wlrnat_V_x_y.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x3 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x4 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x5 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z0 : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z0) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x3 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x4 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x5 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z0 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ 1 = 1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
forall (wlrnat_x_y : wlx0 @ 1 = 1 @ wlx1)
(wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^),
(fun (q : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1 wlz0
z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) ulnat_x0 urnat_x0 ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0
urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 wlrnat_x_y wlrnat_y_x
wlrnat_x_z wlrnat_z_x q wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 H_urnat_yz0
H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s H_wlrnat_yz_x
ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0 ehrnat_p1_y1
ehrnat_p1_z0 ehrnat_p1_z1 wlrnat_V_x_y wlrnat_V_x_z)
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2))
((wlrnat_x_y [I] wlrnat_x_z) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 )
snapply (equiv_path_ind (equiv_helper _ _)). X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x3 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x4 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x5 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z0 : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z0) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x3 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x4 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x5 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z0 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_x_z : wlx1 @ 1 = 1 @ wlx2 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^
(fun (b0 : wlx0 @ 1 = 1 @ wlx1)
(x : (fun s : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b0) =>
(fun (q : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s : (b0 [I] wlrnat_x_z) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1 wlz0
z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) ulnat_x0 urnat_x0 ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0
urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b0 wlrnat_y_x
wlrnat_x_z wlrnat_z_x q wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 H_urnat_yz0
H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s H_wlrnat_yz_x
ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0 ehrnat_p1_y1
ehrnat_p1_z0 ehrnat_p1_z1 x wlrnat_V_x_z)
((whiskerL wlx0 1 )^ @ ((b0 [I] wlrnat_x_z) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b0 [I] wlrnat_x_z) @ whiskerR 1 wlx2))
((b0 [I] wlrnat_x_z) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 )
revert wlrnat_x_z wlrnat_V_x_z.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x3 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x4 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x5 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x3 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x4 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x5 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (wlrnat_x_z : wlx1 @ 1 = 1 @ wlx2)
(wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^),
(fun (b0 : wlx0 @ 1 = 1 @ wlx1)
(x : (fun s : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b0) =>
(fun (q : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s : (b0 [I] wlrnat_x_z) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1 wlz0
z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) ulnat_x0 urnat_x0 ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0
urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b0 wlrnat_y_x
wlrnat_x_z wlrnat_z_x q wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 H_urnat_yz0
H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s H_wlrnat_yz_x
ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0 ehrnat_p1_y1
ehrnat_p1_z0 ehrnat_p1_z1 x wlrnat_V_x_z)
((whiskerL wlx0 1 )^ @ ((b0 [I] wlrnat_x_z) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b0 [I] wlrnat_x_z) @ whiskerR 1 wlx2))
((b0 [I] wlrnat_x_z) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 )
snapply (equiv_path_ind (equiv_helper _ _)). X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x3 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x4 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x5 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x3 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x4 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x5 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_x0 : wlx0 @ 1 = 1 @ x0 urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1
wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) ulnat_x0 urnat_x0 ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0
urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1 wlrnat_y_x b0
wlrnat_z_x q wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 H_urnat_yz0 H_ulnat_yz1
H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s H_wlrnat_yz_x ehlnat_1p_x0
ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0
ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp ((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 )
revert ulnat_x0 ehlnat_1p_x0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x3 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x4 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x3 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x4 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (ulnat_x0 : wlx0 @ 1 = 1 @ x0)
(ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0),
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1
wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) ulnat_x0 urnat_x0 ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0
urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1 wlrnat_y_x b0
wlrnat_z_x q wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 H_urnat_yz0 H_ulnat_yz1
H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s H_wlrnat_yz_x ehlnat_1p_x0
ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0
ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp ((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x3 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x4 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x3 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x4 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 ulnat_x1 : wlx1 @ 1 = 1 @ x1 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : wlx0 @ 1 = 1 @ x0) (s : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s0 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s0 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s0 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s0 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q0 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s0 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q0) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1
wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q urnat_x0 ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1
ulnat_yz0 urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1
wlrnat_y_x b0 wlrnat_z_x q0 wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 H_urnat_yz0
H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s0 H_wlrnat_yz_x s
ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0
ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp ((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 )
revert ulnat_x1 ehlnat_1p_x1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x3 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x3 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (ulnat_x1 : wlx1 @ 1 = 1 @ x1)
(ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1),
(fun (q : wlx0 @ 1 = 1 @ x0) (s : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s0 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s0 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s0 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s0 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q0 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s0 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q0) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1
wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q urnat_x0 ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1
ulnat_yz0 urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1
wlrnat_y_x b0 wlrnat_z_x q0 wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 H_urnat_yz0
H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s0 H_wlrnat_yz_x s
ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0
ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp ((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x3 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x3 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 ulnat_x2 : wlx2 @ 1 = 1 @ x2 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : wlx1 @ 1 = 1 @ x1) (s : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q) =>
(fun (q0 : wlx0 @ 1 = 1 @ x0) (s0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q0) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s1 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s1 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s1 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s1 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q1 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s1 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q1) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1
wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q0 urnat_x0 q urnat_x1 ulnat_x2 urnat_x2 ulnat_y0 urnat_y0
ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0
urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1 wlrnat_y_x b0
wlrnat_z_x q1 wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 H_urnat_yz0 H_ulnat_yz1
H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s1 H_wlrnat_yz_x s0 s
ehlnat_1p_x2 ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp ((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 )
revert ulnat_x2 ehlnat_1p_x2.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (ulnat_x2 : wlx2 @ 1 = 1 @ x2)
(ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2),
(fun (q : wlx1 @ 1 = 1 @ x1) (s : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q) =>
(fun (q0 : wlx0 @ 1 = 1 @ x0) (s0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q0) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s1 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s1 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s1 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s1 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q1 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s1 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q1) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1
wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q0 urnat_x0 q urnat_x1 ulnat_x2 urnat_x2 ulnat_y0 urnat_y0
ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0
urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1 wlrnat_y_x b0
wlrnat_z_x q1 wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 H_urnat_yz0 H_ulnat_yz1
H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s1 H_wlrnat_yz_x s0 s
ehlnat_1p_x2 ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp ((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz2 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz3 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz2 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz3 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0)ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : wlx2 @ 1 = 1 @ x2) (s : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q) =>
(fun (q0 : wlx1 @ 1 = 1 @ x1) (s0 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q0) =>
(fun (q1 : wlx0 @ 1 = 1 @ x0) (s1 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q1) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s2 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s2 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s2 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s2 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q2 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s2 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q2) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1
wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q1 urnat_x0 q0 urnat_x1 q urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1
ulnat_yz0 urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1
wlrnat_y_x b0 wlrnat_z_x q2 wlrnat_yz_x 1 1 1 1 H_ulnat_yz0
H_urnat_yz0 H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s2
H_wlrnat_yz_x s1 s0 s ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0
ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp ((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 )
revert urnat_yz0 H_urnat_yz0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz2 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz2 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (urnat_yz0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ urnat_yz0),
(fun (q : wlx2 @ 1 = 1 @ x2) (s : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q) =>
(fun (q0 : wlx1 @ 1 = 1 @ x1) (s0 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q0) =>
(fun (q1 : wlx0 @ 1 = 1 @ x0) (s1 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q1) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s2 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s2 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s2 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s2 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q2 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s2 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q2) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1
wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q1 urnat_x0 q0 urnat_x1 q urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1
ulnat_yz0 urnat_yz0 ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1
wlrnat_y_x b0 wlrnat_z_x q2 wlrnat_yz_x 1 1 1 1 H_ulnat_yz0
H_urnat_yz0 H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s2
H_wlrnat_yz_x s1 s0 s ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0
ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp ((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 )
snapply equiv_path_ind_moveL_Mp. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz2 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz2 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1)ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q) =>
(fun (q0 : wlx2 @ 1 = 1 @ x2) (s0 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q0) =>
(fun (q1 : wlx1 @ 1 = 1 @ x1) (s1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q1) =>
(fun (q2 : wlx0 @ 1 = 1 @ x0) (s2 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q2) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s3 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s3 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s3 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s3 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q3 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s3 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q3) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1
wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q2 urnat_x0 q1 urnat_x1 q0 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1
ulnat_yz0 q ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1
wlrnat_y_x b0 wlrnat_z_x q3 wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 s
H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s3 H_wlrnat_yz_x
s2 s1 s0 ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 )
revert urnat_yz1 H_urnat_yz1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (urnat_yz1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ urnat_yz1),
(fun (q : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q) =>
(fun (q0 : wlx2 @ 1 = 1 @ x2) (s0 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q0) =>
(fun (q1 : wlx1 @ 1 = 1 @ x1) (s1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q1) =>
(fun (q2 : wlx0 @ 1 = 1 @ x0) (s2 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q2) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s3 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s3 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s3 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s3 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q3 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s3 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q3) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1 1
wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q2 urnat_x0 q1 urnat_x1 q0 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1
ulnat_yz0 q ulnat_yz1 urnat_yz1 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1
wlrnat_y_x b0 wlrnat_z_x q3 wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 s
H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 s3 H_wlrnat_yz_x
s2 s1 s0 ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 )
snapply equiv_path_ind_moveL_Mp. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x0 : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x0 ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0) H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ wlrnat_yz_x ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q) =>
(fun (q0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q0) =>
(fun (q1 : wlx2 @ 1 = 1 @ x2) (s1 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q1) =>
(fun (q2 : wlx1 @ 1 = 1 @ x1) (s2 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q2) =>
(fun (q3 : wlx0 @ 1 = 1 @ x0)
(s3 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q3) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s4 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s4 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s4 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s4 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q4 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s4 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q4) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1
1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q3 urnat_x0 q2 urnat_x1 q1 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1
ulnat_yz0 q0 ulnat_yz1 q ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1 wlrnat_y_x
b0 wlrnat_z_x q4 wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 s0 H_ulnat_yz1 s
H_ehrnat_yz0 H_ehrnat_yz1 s4 H_wlrnat_yz_x s3 s2 s1 ehrnat_p1_y0
ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 )
revert wlrnat_yz_x H_wlrnat_yz_x.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (wlrnat_yz_x : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ wlrnat_yz_x),
(fun (q : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q) =>
(fun (q0 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s0 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q0) =>
(fun (q1 : wlx2 @ 1 = 1 @ x2) (s1 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q1) =>
(fun (q2 : wlx1 @ 1 = 1 @ x1) (s2 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q2) =>
(fun (q3 : wlx0 @ 1 = 1 @ x0)
(s3 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q3) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s4 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s4 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s4 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s4 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q4 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s4 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q4) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1
1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q3 urnat_x0 q2 urnat_x1 q1 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1
ulnat_yz0 q0 ulnat_yz1 q ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1 wlrnat_y_x
b0 wlrnat_z_x q4 wlrnat_yz_x 1 1 1 1 H_ulnat_yz0 s0 H_ulnat_yz1 s
H_ehrnat_yz0 H_ehrnat_yz1 s4 H_wlrnat_yz_x s3 s2 s1 ehrnat_p1_y0
ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 )
snapply equiv_path_ind_moveL_Mp. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz2 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz3 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz2 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz3 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0)ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz0 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ q) =>
(fun (q0 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s0 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q0) =>
(fun (q1 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s1 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q1) =>
(fun (q2 : wlx2 @ 1 = 1 @ x2) (s2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q2) =>
(fun (q3 : wlx1 @ 1 = 1 @ x1)
(s3 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q3) =>
(fun (q4 : wlx0 @ 1 = 1 @ x0)
(s4 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q4) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s5 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s5 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s5 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s5 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q5 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s5 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q5) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1
1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q4 urnat_x0 q3 urnat_x1 q2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1
ulnat_yz0 q1 ulnat_yz1 q0 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1 wlrnat_y_x
b0 wlrnat_z_x q5 q 1 1 1 1 H_ulnat_yz0 s1 H_ulnat_yz1 s0
H_ehrnat_yz0 H_ehrnat_yz1 s5 s s4 s3 s2 ehrnat_p1_y0 ehrnat_p1_y1
ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 )
revert ehrnat_yz0 H_ehrnat_yz0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz2 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz2 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (ehrnat_yz0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ ehrnat_yz0),
(fun (q : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 = whiskerR 1 wrx2 @ q) =>
(fun (q0 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s0 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q0) =>
(fun (q1 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s1 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q1) =>
(fun (q2 : wlx2 @ 1 = 1 @ x2) (s2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q2) =>
(fun (q3 : wlx1 @ 1 = 1 @ x1)
(s3 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q3) =>
(fun (q4 : wlx0 @ 1 = 1 @ x0)
(s4 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q4) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s5 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s5 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s5 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s5 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q5 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s5 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q5) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1 y1
1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q4 urnat_x0 q3 urnat_x1 q2 urnat_x2 ulnat_y0
urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1 urnat_z1
ulnat_yz0 q1 ulnat_yz1 q0 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 ehrnat_yz0 ehrnat_yz1 b1 wlrnat_y_x
b0 wlrnat_z_x q5 q 1 1 1 1 H_ulnat_yz0 s1 H_ulnat_yz1 s0
H_ehrnat_yz0 H_ehrnat_yz1 s5 s s4 s3 s2 ehrnat_p1_y0 ehrnat_p1_y1
ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 )
snapply equiv_path_ind_moveL_Mp. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz2 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz2 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1)wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ ehrnat_yz1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q) =>
(fun (q0 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s0 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q0) =>
(fun (q1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q1) =>
(fun (q2 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s2 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q2) =>
(fun (q3 : wlx2 @ 1 = 1 @ x2)
(s3 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q3) =>
(fun (q4 : wlx1 @ 1 = 1 @ x1)
(s4 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q4) =>
(fun (q5 : wlx0 @ 1 = 1 @ x0)
(s5 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q5) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s6 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s6 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s6 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s6 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q6 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s6 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q6) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1
y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q5 urnat_x0 q4 urnat_x1 q3 urnat_x2
ulnat_y0 urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1
urnat_z1 ulnat_yz0 q2 ulnat_yz1 q1 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q ehrnat_yz1 b1
wlrnat_y_x b0 wlrnat_z_x q6 q0 1 1 1 1 H_ulnat_yz0 s2 H_ulnat_yz1
s1 s H_ehrnat_yz1 s6 s0 s5 s4 s3 ehrnat_p1_y0 ehrnat_p1_y1
ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ) (whiskerR 1 1 ) 1 )
revert ehrnat_yz1 H_ehrnat_yz1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (ehrnat_yz1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ ehrnat_yz1),
(fun (q : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q) =>
(fun (q0 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s0 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q0) =>
(fun (q1 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s1 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q1) =>
(fun (q2 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s2 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q2) =>
(fun (q3 : wlx2 @ 1 = 1 @ x2)
(s3 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q3) =>
(fun (q4 : wlx1 @ 1 = 1 @ x1)
(s4 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q4) =>
(fun (q5 : wlx0 @ 1 = 1 @ x0)
(s5 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q5) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s6 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s6 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s6 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s6 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q6 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s6 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q6) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1
y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q5 urnat_x0 q4 urnat_x1 q3 urnat_x2
ulnat_y0 urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0 ulnat_z1
urnat_z1 ulnat_yz0 q2 ulnat_yz1 q1 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q ehrnat_yz1 b1
wlrnat_y_x b0 wlrnat_z_x q6 q0 1 1 1 1 H_ulnat_yz0 s2 H_ulnat_yz1
s1 s H_ehrnat_yz1 s6 s0 s5 s4 s3 ehrnat_p1_y0 ehrnat_p1_y1
ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ) (whiskerR 1 1 ) 1 )
snapply equiv_path_ind_moveL_Mp. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz2 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz3 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz2 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz3 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q) =>
(fun (q0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q0) =>
(fun (q1 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s1 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q1) =>
(fun (q2 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s2 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q2) =>
(fun (q3 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s3 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q3) =>
(fun (q4 : wlx2 @ 1 = 1 @ x2)
(s4 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q4) =>
(fun (q5 : wlx1 @ 1 = 1 @ x1)
(s5 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q5) =>
(fun (q6 : wlx0 @ 1 = 1 @ x0)
(s6 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q6) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s7 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s7 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s7 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s7 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q7 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s7 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q7) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1
y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q6 urnat_x0 q5 urnat_x1 q4
urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0
ulnat_z1 urnat_z1 ulnat_yz0 q3 ulnat_yz1 q2 ehlnat_x0 ehlnat_x1
ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q0 q b1
wlrnat_y_x b0 wlrnat_z_x q7 q1 1 1 1 1 H_ulnat_yz0 s3
H_ulnat_yz1 s2 s0 s s7 s1 s6 s5 s4 ehrnat_p1_y0 ehrnat_p1_y1
ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) (whiskerR 1 1 ) 1 )
revert ulnat_yz1 H_ulnat_yz1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz1 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz2 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz1 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz2 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (ulnat_yz1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ ulnat_yz1),
(fun (q : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q) =>
(fun (q0 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q0) =>
(fun (q1 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s1 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q1) =>
(fun (q2 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s2 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q2) =>
(fun (q3 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s3 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q3) =>
(fun (q4 : wlx2 @ 1 = 1 @ x2)
(s4 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q4) =>
(fun (q5 : wlx1 @ 1 = 1 @ x1)
(s5 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q5) =>
(fun (q6 : wlx0 @ 1 = 1 @ x0)
(s6 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q6) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s7 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s7 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s7 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s7 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q7 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s7 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q7) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1
y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q6 urnat_x0 q5 urnat_x1 q4
urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0
ulnat_z1 urnat_z1 ulnat_yz0 q3 ulnat_yz1 q2 ehlnat_x0 ehlnat_x1
ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q0 q b1
wlrnat_y_x b0 wlrnat_z_x q7 q1 1 1 1 1 H_ulnat_yz0 s3
H_ulnat_yz1 s2 s0 s s7 s1 s6 s5 s4 ehrnat_p1_y0 ehrnat_p1_y1
ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) (whiskerR 1 1 ) 1 )
snapply equiv_path_ind_moveL_Mp. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz1 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz2 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz1 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz2 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0) ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q) =>
(fun (q0 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s0 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q0) =>
(fun (q1 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s1 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q1) =>
(fun (q2 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s2 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q2) =>
(fun (q3 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s3 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q3) =>
(fun (q4 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s4 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q4) =>
(fun (q5 : wlx2 @ 1 = 1 @ x2)
(s5 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q5) =>
(fun (q6 : wlx1 @ 1 = 1 @ x1)
(s6 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q6) =>
(fun (q7 : wlx0 @ 1 = 1 @ x0)
(s7 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q7) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s8 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s8 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s8 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s8 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q8 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s8 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q8) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1
y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q7 urnat_x0 q6 urnat_x1 q5
urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0
ulnat_z1 urnat_z1 ulnat_yz0 q4 q q3 ehlnat_x0 ehlnat_x1
ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q1 q0 b1
wlrnat_y_x b0 wlrnat_z_x q8 q2 1 1 1 1 H_ulnat_yz0 s4 s s3 s1
s0 s8 s2 s7 s6 s5 ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0
ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 )
revert ulnat_yz0 H_ulnat_yz0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (ulnat_yz0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ ulnat_yz0),
(fun (q : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q) =>
(fun (q0 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s0 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q0) =>
(fun (q1 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s1 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q1) =>
(fun (q2 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s2 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q2) =>
(fun (q3 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s3 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q3) =>
(fun (q4 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s4 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q4) =>
(fun (q5 : wlx2 @ 1 = 1 @ x2)
(s5 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q5) =>
(fun (q6 : wlx1 @ 1 = 1 @ x1)
(s6 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q6) =>
(fun (q7 : wlx0 @ 1 = 1 @ x0)
(s7 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q7) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s8 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s8 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s8 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s8 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q8 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s8 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q8) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1 wly1
y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q7 urnat_x0 q6 urnat_x1 q5
urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0
ulnat_z1 urnat_z1 ulnat_yz0 q4 q q3 ehlnat_x0 ehlnat_x1
ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q1 q0 b1
wlrnat_y_x b0 wlrnat_z_x q8 q2 1 1 1 1 H_ulnat_yz0 s4 s s3 s1
s0 s8 s2 s7 s6 s5 ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0
ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 )
snapply equiv_path_ind_moveL_Mp. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y2 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y3 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y2 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y3 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y2 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y3 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 urnat_y0 : 1 @ 1 = 1 @ y0ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q) =>
(fun (q0 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s0 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q0) =>
(fun (q1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q1) =>
(fun (q2 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s2 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q2) =>
(fun (q3 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s3 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q3) =>
(fun (q4 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s4 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q4) =>
(fun (q5 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s5 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q5) =>
(fun (q6 : wlx2 @ 1 = 1 @ x2)
(s6 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q6) =>
(fun (q7 : wlx1 @ 1 = 1 @ x1)
(s7 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q7) =>
(fun (q8 : wlx0 @ 1 = 1 @ x0)
(s8 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q8) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s9 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s9 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s9 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s9 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q9 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s9 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q9) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q8 urnat_x0 q7 urnat_x1 q6
urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0
ulnat_z1 urnat_z1 q q5 q0 q4 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q2 q1 b1 wlrnat_y_x b0
wlrnat_z_x q9 q3 1 1 1 1 s s5 s0 s4 s2 s1 s9 s3 s8 s7 s6
ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 )
revert urnat_y0 ehrnat_p1_y0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y2 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y2 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y2 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (urnat_y0 : 1 @ 1 = 1 @ y0)
(ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0),
(fun (q : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q) =>
(fun (q0 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s0 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q0) =>
(fun (q1 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q1) =>
(fun (q2 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s2 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q2) =>
(fun (q3 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s3 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q3) =>
(fun (q4 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s4 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q4) =>
(fun (q5 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s5 : urnat_y0 [-] urnat_z0 = whiskerR 1 1 @ q5) =>
(fun (q6 : wlx2 @ 1 = 1 @ x2)
(s6 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q6) =>
(fun (q7 : wlx1 @ 1 = 1 @ x1)
(s7 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q7) =>
(fun (q8 : wlx0 @ 1 = 1 @ x0)
(s8 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q8) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s9 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s9 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s9 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s9 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q9 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s9 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q9) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q8 urnat_x0 q7 urnat_x1 q6
urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1 ulnat_z0 urnat_z0
ulnat_z1 urnat_z1 q q5 q0 q4 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q2 q1 b1 wlrnat_y_x b0
wlrnat_z_x q9 q3 1 1 1 1 s s5 s0 s4 s2 s1 s9 s3 s8 s7 s6
ehrnat_p1_y0 ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2) (whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y0 [-] urnat_z0))
(urnat_y0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y2 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y2 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y2 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 urnat_y1 : 1 @ 1 = 1 @ y1ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : 1 @ 1 = 1 @ y0) (s : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q) =>
(fun (q0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q0) =>
(fun (q1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q1) =>
(fun (q2 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s2 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q2) =>
(fun (q3 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s3 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q3) =>
(fun (q4 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s4 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q4) =>
(fun (q5 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s5 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q5) =>
(fun (q6 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s6 : q [-] urnat_z0 = whiskerR 1 1 @ q6) =>
(fun (q7 : wlx2 @ 1 = 1 @ x2)
(s7 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q7) =>
(fun (q8 : wlx1 @ 1 = 1 @ x1)
(s8 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q8) =>
(fun (q9 : wlx0 @ 1 = 1 @ x0)
(s9 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q9) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s10 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s10 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s10 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s10 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q10 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s10 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q10) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q9 urnat_x0 q8 urnat_x1 q7
urnat_x2 ulnat_y0 q ulnat_y1 urnat_y1 ulnat_z0 urnat_z0
ulnat_z1 urnat_z1 q0 q6 q1 q5 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q3 q2 b1 wlrnat_y_x
b0 wlrnat_z_x q10 q4 1 1 1 1 s0 s6 s1 s5 s3 s2 s10 s4 s9 s8
s7 s ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q [-] urnat_z0))
(q [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 )
revert urnat_y1 ehrnat_p1_y1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (urnat_y1 : 1 @ 1 = 1 @ y1)
(ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1),
(fun (q : 1 @ 1 = 1 @ y0) (s : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q) =>
(fun (q0 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s0 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q0) =>
(fun (q1 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s1 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q1) =>
(fun (q2 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s2 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q2) =>
(fun (q3 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s3 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q3) =>
(fun (q4 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s4 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q4) =>
(fun (q5 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s5 : urnat_y1 [-] urnat_z1 = whiskerR 1 1 @ q5) =>
(fun (q6 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s6 : q [-] urnat_z0 = whiskerR 1 1 @ q6) =>
(fun (q7 : wlx2 @ 1 = 1 @ x2)
(s7 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q7) =>
(fun (q8 : wlx1 @ 1 = 1 @ x1)
(s8 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q8) =>
(fun (q9 : wlx0 @ 1 = 1 @ x0)
(s9 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q9) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s10 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s10 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s10 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s10 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q10 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s10 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q10) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q9 urnat_x0 q8 urnat_x1 q7
urnat_x2 ulnat_y0 q ulnat_y1 urnat_y1 ulnat_z0 urnat_z0
ulnat_z1 urnat_z1 q0 q6 q1 q5 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q3 q2 b1 wlrnat_y_x
b0 wlrnat_z_x q10 q4 1 1 1 1 s0 s6 s1 s5 s3 s2 s10 s4 s9 s8
s7 s ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q [-] urnat_z0))
(q [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (urnat_y1 [-] urnat_z1))
(urnat_y1 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z2 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z3 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z2 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z3 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z2 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z3 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 urnat_z0 : 1 @ 1 = 1 @ z0ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : 1 @ 1 = 1 @ y1) (s : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q) =>
(fun (q0 : 1 @ 1 = 1 @ y0) (s0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q0) =>
(fun (q1 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s1 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q1) =>
(fun (q2 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s2 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q2) =>
(fun (q3 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s3 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q3) =>
(fun (q4 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s4 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q4) =>
(fun (q5 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s5 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q5) =>
(fun (q6 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s6 : q [-] urnat_z1 = whiskerR 1 1 @ q6) =>
(fun (q7 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s7 : q0 [-] urnat_z0 = whiskerR 1 1 @ q7) =>
(fun (q8 : wlx2 @ 1 = 1 @ x2)
(s8 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q8) =>
(fun (q9 : wlx1 @ 1 = 1 @ x1)
(s9 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q9) =>
(fun (q10 : wlx0 @ 1 = 1 @ x0)
(s10 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q10) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s11 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s11 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s11 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s11 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q11 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s11 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q11) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q10 urnat_x0 q9 urnat_x1 q8
urnat_x2 ulnat_y0 q0 ulnat_y1 q ulnat_z0 urnat_z0 ulnat_z1
urnat_z1 q1 q7 q2 q6 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 q4 q3 b1 wlrnat_y_x b0
wlrnat_z_x q11 q5 1 1 1 1 s1 s7 s2 s6 s4 s3 s11 s5 s10 s9 s8
s0 s ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q0 [-] urnat_z0))
(q0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q [-] urnat_z1))
(q [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 )
revert urnat_z0 ehrnat_p1_z0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z2 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z2 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z2 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
forall (urnat_z0 : 1 @ 1 = 1 @ z0)
(ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0),
(fun (q : 1 @ 1 = 1 @ y1) (s : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q) =>
(fun (q0 : 1 @ 1 = 1 @ y0) (s0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q0) =>
(fun (q1 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s1 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q1) =>
(fun (q2 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s2 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q2) =>
(fun (q3 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s3 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q3) =>
(fun (q4 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s4 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q4) =>
(fun (q5 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s5 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q5) =>
(fun (q6 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s6 : q [-] urnat_z1 = whiskerR 1 1 @ q6) =>
(fun (q7 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s7 : q0 [-] urnat_z0 = whiskerR 1 1 @ q7) =>
(fun (q8 : wlx2 @ 1 = 1 @ x2)
(s8 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q8) =>
(fun (q9 : wlx1 @ 1 = 1 @ x1)
(s9 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q9) =>
(fun (q10 : wlx0 @ 1 = 1 @ x0)
(s10 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q10) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s11 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s11 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s11 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s11 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q11 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s11 : (b1 [I] b0) @ whiskerR 1 wlx2 = whiskerL wlx0 1 @ q11) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q10 urnat_x0 q9 urnat_x1 q8
urnat_x2 ulnat_y0 q0 ulnat_y1 q ulnat_z0 urnat_z0 ulnat_z1
urnat_z1 q1 q7 q2 q6 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 q4 q3 b1 wlrnat_y_x b0
wlrnat_z_x q11 q5 1 1 1 1 s1 s7 s2 s6 s4 s3 s11 s5 s10 s9 s8
s0 s ehrnat_p1_z0 ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q0 [-] urnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q0 [-] urnat_z0))
(q0 [-] urnat_z0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q [-] urnat_z1))
(q [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @ ((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z2 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z2 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z2 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 urnat_z1 : 1 @ 1 = 1 @ z1ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0 ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1
(fun (q : 1 @ 1 = 1 @ z0) (s : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q) =>
(fun (q0 : 1 @ 1 = 1 @ y1) (s0 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q0) =>
(fun (q1 : 1 @ 1 = 1 @ y0) (s1 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q1) =>
(fun (q2 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s2 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q2) =>
(fun (q3 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s3 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q3) =>
(fun (q4 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s4 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q4) =>
(fun (q5 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s5 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q5) =>
(fun (q6 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s6 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q6) =>
(fun (q7 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s7 : q0 [-] urnat_z1 = whiskerR 1 1 @ q7) =>
(fun (q8 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s8 : q1 [-] q = whiskerR 1 1 @ q8) =>
(fun (q9 : wlx2 @ 1 = 1 @ x2)
(s9 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q9) =>
(fun (q10 : wlx1 @ 1 = 1 @ x1)
(s10 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q10) =>
(fun (q11 : wlx0 @ 1 = 1 @ x0)
(s11 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q11) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s12 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s12 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s12 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s12 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q12 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s12 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q12) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q11 urnat_x0 q10 urnat_x1 q9
urnat_x2 ulnat_y0 q1 ulnat_y1 q0 ulnat_z0 q ulnat_z1
urnat_z1 q2 q8 q3 q7 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q5 q4 b1 wlrnat_y_x
b0 wlrnat_z_x q12 q6 1 1 1 1 s2 s8 s3 s7 s5 s4 s12 s6 s11
s10 s9 s1 s0 s ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q1 [-] q))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q1 [-] q))
(q1 [-] q) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q0 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q0 [-] urnat_z1))
(q0 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 )
revert urnat_z1 ehrnat_p1_z1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
forall (urnat_z1 : 1 @ 1 = 1 @ z1)
(ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1),
(fun (q : 1 @ 1 = 1 @ z0) (s : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q) =>
(fun (q0 : 1 @ 1 = 1 @ y1) (s0 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q0) =>
(fun (q1 : 1 @ 1 = 1 @ y0) (s1 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q1) =>
(fun (q2 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s2 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q2) =>
(fun (q3 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s3 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q3) =>
(fun (q4 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s4 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q4) =>
(fun (q5 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s5 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q5) =>
(fun (q6 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s6 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q6) =>
(fun (q7 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s7 : q0 [-] urnat_z1 = whiskerR 1 1 @ q7) =>
(fun (q8 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s8 : q1 [-] q = whiskerR 1 1 @ q8) =>
(fun (q9 : wlx2 @ 1 = 1 @ x2)
(s9 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q9) =>
(fun (q10 : wlx1 @ 1 = 1 @ x1)
(s10 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q10) =>
(fun (q11 : wlx0 @ 1 = 1 @ x0)
(s11 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q11) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s12 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s12 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s12 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s12 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q12 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s12 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q12) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q11 urnat_x0 q10 urnat_x1 q9
urnat_x2 ulnat_y0 q1 ulnat_y1 q0 ulnat_z0 q ulnat_z1
urnat_z1 q2 q8 q3 q7 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q5 q4 b1 wlrnat_y_x
b0 wlrnat_z_x q12 q6 1 1 1 1 s2 s8 s3 s7 s5 s4 s12 s6 s11
s10 s9 s1 s0 s ehrnat_p1_z1 x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q1 [-] q))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q1 [-] q))
(q1 [-] q) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q0 [-] urnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q0 [-] urnat_z1))
(q0 [-] urnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x3 wrx3 : a = b0) (wlx4 x4 wrx4 : c = d)
(wlx5 x5 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x3)
(urnat_x3 : wrx3 @ 1 = 1 @ x3) (ulnat_x1 : wlx4 @ 1 = 1 @ x4)
(urnat_x4 : wrx4 @ 1 = 1 @ x4) (ulnat_x2 : wlx5 @ 1 = 1 @ x5)
(urnat_x5 : wrx5 @ 1 = 1 @ x5) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x3) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x4) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x5) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, x0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x0 : wrx0 @ 1 = 1 @ x0 urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
(fun (q : 1 @ 1 = 1 @ z1) (s : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q) =>
(fun (q0 : 1 @ 1 = 1 @ z0) (s0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q0) =>
(fun (q1 : 1 @ 1 = 1 @ y1) (s1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q1) =>
(fun (q2 : 1 @ 1 = 1 @ y0) (s2 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q2) =>
(fun (q3 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s3 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q3) =>
(fun (q4 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s4 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q4) =>
(fun (q5 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s5 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q5) =>
(fun (q6 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s6 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q6) =>
(fun (q7 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s7 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q7) =>
(fun (q8 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s8 : q1 [-] q = whiskerR 1 1 @ q8) =>
(fun (q9 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s9 : q2 [-] q0 = whiskerR 1 1 @ q9) =>
(fun (q10 : wlx2 @ 1 = 1 @ x2)
(s10 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q10) =>
(fun (q11 : wlx1 @ 1 = 1 @ x1)
(s11 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q11) =>
(fun (q12 : wlx0 @ 1 = 1 @ x0)
(s12 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q12) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s13 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s13 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s13 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s13 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q13 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s13 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q13) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q12 urnat_x0 q11 urnat_x1
q10 urnat_x2 ulnat_y0 q2 ulnat_y1 q1 ulnat_z0 q0 ulnat_z1
q q3 q9 q4 q8 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 q6 q5 b1 wlrnat_y_x b0
wlrnat_z_x q13 q7 1 1 1 1 s3 s9 s4 s8 s6 s5 s13 s7 s12 s11
s10 s2 s1 s0 s x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q2 [-] q0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q2 [-] q0))
(q2 [-] q0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q1 [-] q))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q1 [-] q))
(q1 [-] q) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 )
revert x0 urnat_x0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x3 wrx4 : c = d)
(wlx5 x4 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x3)
(urnat_x3 : wrx4 @ 1 = 1 @ x3) (ulnat_x2 : wlx5 @ 1 = 1 @ x4)
(urnat_x4 : wrx5 @ 1 = 1 @ x4) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x3) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x4) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
forall (x0 : a = b) (urnat_x0 : wrx0 @ 1 = 1 @ x0),
(fun (q : 1 @ 1 = 1 @ z1) (s : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q) =>
(fun (q0 : 1 @ 1 = 1 @ z0) (s0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q0) =>
(fun (q1 : 1 @ 1 = 1 @ y1) (s1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q1) =>
(fun (q2 : 1 @ 1 = 1 @ y0) (s2 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q2) =>
(fun (q3 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s3 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q3) =>
(fun (q4 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s4 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q4) =>
(fun (q5 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s5 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q5) =>
(fun (q6 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s6 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q6) =>
(fun (q7 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s7 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q7) =>
(fun (q8 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s8 : q1 [-] q = whiskerR 1 1 @ q8) =>
(fun (q9 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s9 : q2 [-] q0 = whiskerR 1 1 @ q9) =>
(fun (q10 : wlx2 @ 1 = 1 @ x2)
(s10 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q10) =>
(fun (q11 : wlx1 @ 1 = 1 @ x1)
(s11 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q11) =>
(fun (q12 : wlx0 @ 1 = 1 @ x0)
(s12 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ q12) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s13 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s13 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x3 : (fun s13 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s13 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q13 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s13 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q13) =>
P b a b a b wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1 (wly0 @ wlz0)
(1 @ 1 ) (wly1 @ wlz1) (1 @ 1 ) q12 urnat_x0 q11 urnat_x1
q10 urnat_x2 ulnat_y0 q2 ulnat_y1 q1 ulnat_z0 q0 ulnat_z1
q q3 q9 q4 q8 ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 q6 q5 b1 wlrnat_y_x b0
wlrnat_z_x q13 q7 1 1 1 1 s3 s9 s4 s8 s6 s5 s13 s7 s12 s11
s10 s2 s1 s0 s x3 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] urnat_x0) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q2 [-] q0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q2 [-] q0))
(q2 [-] q0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q1 [-] q))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q1 [-] q))
(q1 [-] q) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x3 wrx4 : c = d)
(wlx5 x4 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x3)
(urnat_x3 : wrx4 @ 1 = 1 @ x3) (ulnat_x2 : wlx5 @ 1 = 1 @ x4)
(urnat_x4 : wrx5 @ 1 = 1 @ x4) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x3) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x4) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, x1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x1 : wrx1 @ 1 = 1 @ x1 urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
(fun (q : a = b) (s : wrx0 @ 1 = 1 @ q) =>
(fun (q0 : 1 @ 1 = 1 @ z1) (s0 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q0) =>
(fun (q1 : 1 @ 1 = 1 @ z0) (s1 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q1) =>
(fun (q2 : 1 @ 1 = 1 @ y1) (s2 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q2) =>
(fun (q3 : 1 @ 1 = 1 @ y0) (s3 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q3) =>
(fun (q4 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s4 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q4) =>
(fun (q5 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s5 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q5) =>
(fun (q6 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s6 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q6) =>
(fun (q7 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s7 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q7) =>
(fun (q8 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s8 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q8) =>
(fun (q9 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s9 : q2 [-] q0 = whiskerR 1 1 @ q9) =>
(fun (q10 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s10 : q3 [-] q1 = whiskerR 1 1 @ q10) =>
(fun (q11 : wlx2 @ 1 = 1 @ x2)
(s11 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q11) =>
(fun (q12 : wlx1 @ 1 = 1 @ x1)
(s12 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q12) =>
(fun (q13 : wlx0 @ 1 = 1 @ q)
(s13 : (ehlnat_x0 [I] s) @ 1 = 1 @ q13) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s14 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s14 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s14 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s14 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q14 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s14 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q14) =>
P b a b a b wlx0 q wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q13 s q12 urnat_x1 q11 urnat_x2 ulnat_y0 q3
ulnat_y1 q2 ulnat_z0 q1 ulnat_z1 q0 q4 q10 q5 q9
ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1
ehrnat_z0 ehrnat_z1 q7 q6 b1 wlrnat_y_x b0 wlrnat_z_x q14
q8 1 1 1 1 s4 s10 s5 s9 s7 s6 s14 s8 s13 s12 s11 s3 s2 s1
s0 x0 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q3 [-] q1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q3 [-] q1))
(q3 [-] q1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q2 [-] q0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q2 [-] q0))
(q2 [-] q0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 )
revert x1 urnat_x1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x3 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x3)
(urnat_x3 : wrx5 @ 1 = 1 @ x3) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x3) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
forall (x1 : a = b) (urnat_x1 : wrx1 @ 1 = 1 @ x1),
(fun (q : a = b) (s : wrx0 @ 1 = 1 @ q) =>
(fun (q0 : 1 @ 1 = 1 @ z1) (s0 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q0) =>
(fun (q1 : 1 @ 1 = 1 @ z0) (s1 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q1) =>
(fun (q2 : 1 @ 1 = 1 @ y1) (s2 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q2) =>
(fun (q3 : 1 @ 1 = 1 @ y0) (s3 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q3) =>
(fun (q4 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s4 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q4) =>
(fun (q5 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s5 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q5) =>
(fun (q6 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s6 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q6) =>
(fun (q7 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s7 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 = whiskerR 1 1 @ q7) =>
(fun (q8 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s8 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q8) =>
(fun (q9 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s9 : q2 [-] q0 = whiskerR 1 1 @ q9) =>
(fun (q10 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s10 : q3 [-] q1 = whiskerR 1 1 @ q10) =>
(fun (q11 : wlx2 @ 1 = 1 @ x2)
(s11 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q11) =>
(fun (q12 : wlx1 @ 1 = 1 @ x1)
(s12 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ q12) =>
(fun (q13 : wlx0 @ 1 = 1 @ q)
(s13 : (ehlnat_x0 [I] s) @ 1 = 1 @ q13) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s14 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s14 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s14 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s14 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q14 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s14 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q14) =>
P b a b a b wlx0 q wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 1
wly1 y1 1 wlz0 z0 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q13 s q12 urnat_x1 q11 urnat_x2 ulnat_y0 q3
ulnat_y1 q2 ulnat_z0 q1 ulnat_z1 q0 q4 q10 q5 q9
ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1
ehrnat_z0 ehrnat_z1 q7 q6 b1 wlrnat_y_x b0 wlrnat_z_x q14
q8 1 1 1 1 s4 s10 s5 s9 s7 s6 s14 s8 s13 s12 s11 s3 s2 s1
s0 x0 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s) (rlucancel 1 ))
(ehlnat_x1 [I] urnat_x1) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q3 [-] q1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q3 [-] q1))
(q3 [-] q1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q2 [-] q0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q2 [-] q0))
(q2 [-] q0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x3 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x3)
(urnat_x3 : wrx5 @ 1 = 1 @ x3) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x3) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, x2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a urnat_x2 : wrx2 @ 1 = 1 @ x2 ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
(fun (q : a = b) (s : wrx1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wrx0 @ 1 = 1 @ q0) =>
(fun (q1 : 1 @ 1 = 1 @ z1) (s1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q1) =>
(fun (q2 : 1 @ 1 = 1 @ z0) (s2 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q2) =>
(fun (q3 : 1 @ 1 = 1 @ y1) (s3 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q3) =>
(fun (q4 : 1 @ 1 = 1 @ y0) (s4 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q4) =>
(fun (q5 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s5 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q5) =>
(fun (q6 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s6 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q6) =>
(fun (q7 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s7 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q7) =>
(fun (q8 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s8 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q8) =>
(fun (q9 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s9 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q9) =>
(fun (q10 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s10 : q3 [-] q1 = whiskerR 1 1 @ q10) =>
(fun (q11 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s11 : q4 [-] q2 = whiskerR 1 1 @ q11) =>
(fun (q12 : wlx2 @ 1 = 1 @ x2)
(s12 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q12) =>
(fun (q13 : wlx1 @ 1 = 1 @ q)
(s13 : (ehlnat_x1 [I] s) @ 1 = 1 @ q13) =>
(fun (q14 : wlx0 @ 1 = 1 @ q0)
(s14 : (ehlnat_x0 [I] s0) @ 1 = 1 @ q14) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s15 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s15 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s15 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s15 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q15 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s15 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q15) =>
P b a b a b wlx0 q0 wrx0 wlx1 q wrx1 wlx2 x2 wrx2 wly0 y0
1 wly1 y1 1 wlz0 z0 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q14 s0 q13 s q12 urnat_x2 ulnat_y0 q4 ulnat_y1
q3 ulnat_z0 q2 ulnat_z1 q1 q5 q11 q6 q10 ehlnat_x0
ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0
ehrnat_z1 q8 q7 b1 wlrnat_y_x b0 wlrnat_z_x q15 q9 1 1 1
1 s5 s11 s6 s10 s8 s7 s15 s9 s14 s13 s12 s4 s3 s2 s1 x0
x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s0) (rlucancel 1 ))
(ehlnat_x1 [I] s) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q4 [-] q2))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q4 [-] q2))
(q4 [-] q2) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q3 [-] q1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q3 [-] q1))
(q3 [-] q1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 )
revert x2 urnat_x2.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x2 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx5 @ 1 = 1 @ x2) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
forall (x2 : a = b) (urnat_x2 : wrx2 @ 1 = 1 @ x2),
(fun (q : a = b) (s : wrx1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wrx0 @ 1 = 1 @ q0) =>
(fun (q1 : 1 @ 1 = 1 @ z1) (s1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q1) =>
(fun (q2 : 1 @ 1 = 1 @ z0) (s2 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q2) =>
(fun (q3 : 1 @ 1 = 1 @ y1) (s3 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q3) =>
(fun (q4 : 1 @ 1 = 1 @ y0) (s4 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q4) =>
(fun (q5 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s5 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q5) =>
(fun (q6 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s6 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q6) =>
(fun (q7 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s7 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 = whiskerR 1 1 @ q7) =>
(fun (q8 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s8 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q8) =>
(fun (q9 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s9 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q9) =>
(fun (q10 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s10 : q3 [-] q1 = whiskerR 1 1 @ q10) =>
(fun (q11 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s11 : q4 [-] q2 = whiskerR 1 1 @ q11) =>
(fun (q12 : wlx2 @ 1 = 1 @ x2)
(s12 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ q12) =>
(fun (q13 : wlx1 @ 1 = 1 @ q)
(s13 : (ehlnat_x1 [I] s) @ 1 = 1 @ q13) =>
(fun (q14 : wlx0 @ 1 = 1 @ q0)
(s14 : (ehlnat_x0 [I] s0) @ 1 = 1 @ q14) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s15 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s15 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s15 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s15 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q15 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s15 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q15) =>
P b a b a b wlx0 q0 wrx0 wlx1 q wrx1 wlx2 x2 wrx2 wly0 y0
1 wly1 y1 1 wlz0 z0 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q14 s0 q13 s q12 urnat_x2 ulnat_y0 q4 ulnat_y1
q3 ulnat_z0 q2 ulnat_z1 q1 q5 q11 q6 q10 ehlnat_x0
ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0
ehrnat_z1 q8 q7 b1 wlrnat_y_x b0 wlrnat_z_x q15 q9 1 1 1
1 s5 s11 s6 s10 s8 s7 s15 s9 s14 s13 s12 s4 s3 s2 s1 x0
x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s0) (rlucancel 1 ))
(ehlnat_x1 [I] s) (rlucancel 1 ))
(ehlnat_x2 [I] urnat_x2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q4 [-] q2))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q4 [-] q2))
(q4 [-] q2) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q3 [-] q1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q3 [-] q1))
(q3 [-] q1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x2 wrx5 : e = f) (wly2 y2 wry0 : b0 = d) (wly3 y3 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx5 @ 1 = 1 @ x2) (ulnat_y2 : wly2 @ 1 = 1 @ y2)
(urnat_y0 : wry0 @ 1 = 1 @ y2) (ulnat_y3 : wly3 @ 1 = 1 @ y3)
(urnat_y1 : wry1 @ 1 = 1 @ y3) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y2 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y2 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y3 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y3 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y2 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y3 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y2) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y3) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0, y0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_y0 : wly0 @ 1 = 1 @ y0 ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
(fun (q : a = b) (s : wrx2 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wrx1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wrx0 @ 1 = 1 @ q1) =>
(fun (q2 : 1 @ 1 = 1 @ z1) (s2 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q2) =>
(fun (q3 : 1 @ 1 = 1 @ z0) (s3 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q3) =>
(fun (q4 : 1 @ 1 = 1 @ y1) (s4 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q4) =>
(fun (q5 : 1 @ 1 = 1 @ y0) (s5 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q5) =>
(fun (q6 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s6 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q6) =>
(fun (q7 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s7 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q7) =>
(fun (q8 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s8 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q8) =>
(fun (q9 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s9 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q9) =>
(fun (q10 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s10 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q10) =>
(fun (q11 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s11 : q4 [-] q2 = whiskerR 1 1 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s12 : q5 [-] q3 = whiskerR 1 1 @ q12) =>
(fun (q13 : wlx2 @ 1 = 1 @ q)
(s13 : (ehlnat_x2 [I] s) @ 1 = 1 @ q13) =>
(fun (q14 : wlx1 @ 1 = 1 @ q0)
(s14 : (ehlnat_x1 [I] s0) @ 1 = 1 @ q14) =>
(fun (q15 : wlx0 @ 1 = 1 @ q1)
(s15 : (ehlnat_x0 [I] s1) @ 1 = 1 @ q15) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s16 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s16 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s16 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s16 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q16 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s16 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q16) =>
P b a b a b wlx0 q1 wrx0 wlx1 q0 wrx1 wlx2 q wrx2 wly0 y0
1 wly1 y1 1 wlz0 z0 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q15 s1 q14 s0 q13 s ulnat_y0 q5 ulnat_y1 q4
ulnat_z0 q3 ulnat_z1 q2 q6 q12 q7 q11 ehlnat_x0
ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0
ehrnat_z1 q9 q8 b1 wlrnat_y_x b0 wlrnat_z_x q16 q10 1 1
1 1 s6 s12 s7 s11 s9 s8 s16 s10 s15 s14 s13 s5 s4 s3 s2
x0 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s1) (rlucancel 1 ))
(ehlnat_x1 [I] s0) (rlucancel 1 ))
(ehlnat_x2 [I] s) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q5 [-] q3))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q5 [-] q3))
(q5 [-] q3) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q4 [-] q2))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q4 [-] q2))
(q4 [-] q2) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 )
revert y0 ulnat_y0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x2 wrx5 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y2 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx5 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y2 : wly3 @ 1 = 1 @ y2)
(urnat_y1 : wry1 @ 1 = 1 @ y2) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y2 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y2 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y2 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y2) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
forall (y0 : b = b) (ulnat_y0 : wly0 @ 1 = 1 @ y0),
(fun (q : a = b) (s : wrx2 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wrx1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wrx0 @ 1 = 1 @ q1) =>
(fun (q2 : 1 @ 1 = 1 @ z1) (s2 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q2) =>
(fun (q3 : 1 @ 1 = 1 @ z0) (s3 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q3) =>
(fun (q4 : 1 @ 1 = 1 @ y1) (s4 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q4) =>
(fun (q5 : 1 @ 1 = 1 @ y0) (s5 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ q5) =>
(fun (q6 : wly0 @ wlz0 @ 1 = 1 @ (y0 @ z0))
(s6 : ulnat_y0 [-] ulnat_z0 = whiskerR 1 1 @ q6) =>
(fun (q7 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s7 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q7) =>
(fun (q8 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s8 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q8) =>
(fun (q9 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s9 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q9) =>
(fun (q10 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s10 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q10) =>
(fun (q11 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s11 : q4 [-] q2 = whiskerR 1 1 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (y0 @ z0))
(s12 : q5 [-] q3 = whiskerR 1 1 @ q12) =>
(fun (q13 : wlx2 @ 1 = 1 @ q)
(s13 : (ehlnat_x2 [I] s) @ 1 = 1 @ q13) =>
(fun (q14 : wlx1 @ 1 = 1 @ q0)
(s14 : (ehlnat_x1 [I] s0) @ 1 = 1 @ q14) =>
(fun (q15 : wlx0 @ 1 = 1 @ q1)
(s15 : (ehlnat_x0 [I] s1) @ 1 = 1 @ q15) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s16 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s16 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s16 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s16 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q16 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s16 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q16) =>
P b a b a b wlx0 q1 wrx0 wlx1 q0 wrx1 wlx2 q wrx2 wly0 y0
1 wly1 y1 1 wlz0 z0 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q15 s1 q14 s0 q13 s ulnat_y0 q5 ulnat_y1 q4
ulnat_z0 q3 ulnat_z1 q2 q6 q12 q7 q11 ehlnat_x0
ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0
ehrnat_z1 q9 q8 b1 wlrnat_y_x b0 wlrnat_z_x q16 q10 1 1
1 1 s6 s12 s7 s11 s9 s8 s16 s10 s15 s14 s13 s5 s4 s3 s2
x0 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s1) (rlucancel 1 ))
(ehlnat_x1 [I] s0) (rlucancel 1 ))
(ehlnat_x2 [I] s) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q5 [-] q3))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q5 [-] q3))
(q5 [-] q3) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q4 [-] q2))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q4 [-] q2))
(q4 [-] q2) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y0 [-] ulnat_z0))
(ulnat_y0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] ulnat_y0) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x2 wrx5 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y2 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx5 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y2 : wly3 @ 1 = 1 @ y2)
(urnat_y1 : wry1 @ 1 = 1 @ y2) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y2 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y2 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y2 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y2) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1, y1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_y1 : wly1 @ 1 = 1 @ y1 ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
(fun (q : b = b) (s : wly0 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wrx2 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wrx1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wrx0 @ 1 = 1 @ q2) =>
(fun (q3 : 1 @ 1 = 1 @ z1) (s3 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q3) =>
(fun (q4 : 1 @ 1 = 1 @ z0) (s4 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q4) =>
(fun (q5 : 1 @ 1 = 1 @ y1) (s5 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q5) =>
(fun (q6 : 1 @ 1 = 1 @ q) (s6 : (ehrnat_y0 [I] s) @ 1 = 1 @ q6) =>
(fun (q7 : wly0 @ wlz0 @ 1 = 1 @ (q @ z0))
(s7 : s [-] ulnat_z0 = whiskerR 1 1 @ q7) =>
(fun (q8 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s8 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q8) =>
(fun (q9 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s9 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q9) =>
(fun (q10 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s10 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q10) =>
(fun (q11 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s11 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s12 : q5 [-] q3 = whiskerR 1 1 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (q @ z0))
(s13 : q6 [-] q4 = whiskerR 1 1 @ q13) =>
(fun (q14 : wlx2 @ 1 = 1 @ q0)
(s14 : (ehlnat_x2 [I] s0) @ 1 = 1 @ q14) =>
(fun (q15 : wlx1 @ 1 = 1 @ q1)
(s15 : (ehlnat_x1 [I] s1) @ 1 = 1 @ q15) =>
(fun (q16 : wlx0 @ 1 = 1 @ q2)
(s16 : (ehlnat_x0 [I] s2) @ 1 = 1 @ q16) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s17 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s17 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s17 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s17 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q17 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s17 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q17) =>
P b a b a b wlx0 q2 wrx0 wlx1 q1 wrx1 wlx2 q0 wrx2 wly0
q 1 wly1 y1 1 wlz0 z0 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q16 s2 q15 s1 q14 s0 s q6 ulnat_y1 q5 ulnat_z0
q4 ulnat_z1 q3 q7 q13 q8 q12 ehlnat_x0 ehlnat_x1
ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q10
q9 b1 wlrnat_y_x b0 wlrnat_z_x q17 q11 1 1 1 1 s7 s13
s8 s12 s10 s9 s17 s11 s16 s15 s14 s6 s5 s4 s3 x0 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s2) (rlucancel 1 ))
(ehlnat_x1 [I] s1) (rlucancel 1 ))
(ehlnat_x2 [I] s0) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q6 [-] q4))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q6 [-] q4))
(q6 [-] q4) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q5 [-] q3))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q5 [-] q3))
(q5 [-] q3) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s [-] ulnat_z0))
(s [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 )
revert y1 ulnat_y1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x2 wrx5 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx5 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
forall (y1 : a = a) (ulnat_y1 : wly1 @ 1 = 1 @ y1),
(fun (q : b = b) (s : wly0 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wrx2 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wrx1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wrx0 @ 1 = 1 @ q2) =>
(fun (q3 : 1 @ 1 = 1 @ z1) (s3 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q3) =>
(fun (q4 : 1 @ 1 = 1 @ z0) (s4 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q4) =>
(fun (q5 : 1 @ 1 = 1 @ y1) (s5 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ q5) =>
(fun (q6 : 1 @ 1 = 1 @ q) (s6 : (ehrnat_y0 [I] s) @ 1 = 1 @ q6) =>
(fun (q7 : wly0 @ wlz0 @ 1 = 1 @ (q @ z0))
(s7 : s [-] ulnat_z0 = whiskerR 1 1 @ q7) =>
(fun (q8 : wly1 @ wlz1 @ 1 = 1 @ (y1 @ z1))
(s8 : ulnat_y1 [-] ulnat_z1 = whiskerR 1 1 @ q8) =>
(fun (q9 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s9 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q9) =>
(fun (q10 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s10 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q10) =>
(fun (q11 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s11 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (y1 @ z1))
(s12 : q5 [-] q3 = whiskerR 1 1 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (q @ z0))
(s13 : q6 [-] q4 = whiskerR 1 1 @ q13) =>
(fun (q14 : wlx2 @ 1 = 1 @ q0)
(s14 : (ehlnat_x2 [I] s0) @ 1 = 1 @ q14) =>
(fun (q15 : wlx1 @ 1 = 1 @ q1)
(s15 : (ehlnat_x1 [I] s1) @ 1 = 1 @ q15) =>
(fun (q16 : wlx0 @ 1 = 1 @ q2)
(s16 : (ehlnat_x0 [I] s2) @ 1 = 1 @ q16) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s17 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s17 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s17 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s17 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q17 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s17 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q17) =>
P b a b a b wlx0 q2 wrx0 wlx1 q1 wrx1 wlx2 q0 wrx2 wly0
q 1 wly1 y1 1 wlz0 z0 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q16 s2 q15 s1 q14 s0 s q6 ulnat_y1 q5 ulnat_z0
q4 ulnat_z1 q3 q7 q13 q8 q12 ehlnat_x0 ehlnat_x1
ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q10
q9 b1 wlrnat_y_x b0 wlrnat_z_x q17 q11 1 1 1 1 s7 s13
s8 s12 s10 s9 s17 s11 s16 s15 s14 s6 s5 s4 s3 x0 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s2) (rlucancel 1 ))
(ehlnat_x1 [I] s1) (rlucancel 1 ))
(ehlnat_x2 [I] s0) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q6 [-] q4))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q6 [-] q4))
(q6 [-] q4) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q5 [-] q3))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q5 [-] q3))
(q5 [-] q3) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (ulnat_y1 [-] ulnat_z1))
(ulnat_y1 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s [-] ulnat_z0))
(s [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s) (rlucancel 1 ))
(ehrnat_y1 [I] ulnat_y1) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x2 wrx5 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z2 wrz0 : d = f) (wlz3 z3 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx5 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z2 : wlz2 @ 1 = 1 @ z2)
(urnat_z0 : wrz0 @ 1 = 1 @ z2) (ulnat_z3 : wlz3 @ 1 = 1 @ z3)
(urnat_z1 : wrz1 @ 1 = 1 @ z3) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z2))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z2))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z3))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z3)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z2 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z3 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z2) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z3) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0, z0 : b = b wlz1, z1 : a = a ulnat_z0 : wlz0 @ 1 = 1 @ z0 ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
(fun (q : a = a) (s : wly1 @ 1 = 1 @ q) =>
(fun (q0 : b = b) (s0 : wly0 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wrx2 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wrx1 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wrx0 @ 1 = 1 @ q3) =>
(fun (q4 : 1 @ 1 = 1 @ z1) (s4 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q4) =>
(fun (q5 : 1 @ 1 = 1 @ z0) (s5 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q5) =>
(fun (q6 : 1 @ 1 = 1 @ q) (s6 : (ehrnat_y1 [I] s) @ 1 = 1 @ q6) =>
(fun (q7 : 1 @ 1 = 1 @ q0) (s7 : (ehrnat_y0 [I] s0) @ 1 = 1 @ q7) =>
(fun (q8 : wly0 @ wlz0 @ 1 = 1 @ (q0 @ z0))
(s8 : s0 [-] ulnat_z0 = whiskerR 1 1 @ q8) =>
(fun (q9 : wly1 @ wlz1 @ 1 = 1 @ (q @ z1))
(s9 : s [-] ulnat_z1 = whiskerR 1 1 @ q9) =>
(fun (q10 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s10 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q10) =>
(fun (q11 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s11 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q11) =>
(fun (q12 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s12 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (q @ z1))
(s13 : q6 [-] q4 = whiskerR 1 1 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (q0 @ z0))
(s14 : q7 [-] q5 = whiskerR 1 1 @ q14) =>
(fun (q15 : wlx2 @ 1 = 1 @ q1)
(s15 : (ehlnat_x2 [I] s1) @ 1 = 1 @ q15) =>
(fun (q16 : wlx1 @ 1 = 1 @ q2)
(s16 : (ehlnat_x1 [I] s2) @ 1 = 1 @ q16) =>
(fun (q17 : wlx0 @ 1 = 1 @ q3)
(s17 : (ehlnat_x0 [I] s3) @ 1 = 1 @ q17) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s18 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s18 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s18 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s18 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q18 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s18 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q18) =>
P b a b a b wlx0 q3 wrx0 wlx1 q2 wrx1 wlx2 q1 wrx2 wly0
q0 1 wly1 q 1 wlz0 z0 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q17 s3 q16 s2 q15 s1 s0 q7 s q6 ulnat_z0 q5
ulnat_z1 q4 q8 q14 q9 q13 ehlnat_x0 ehlnat_x1
ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q11
q10 b1 wlrnat_y_x b0 wlrnat_z_x q18 q12 1 1 1 1 s8
s14 s9 s13 s11 s10 s18 s12 s17 s16 s15 s7 s6 s5 s4 x0
x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s3) (rlucancel 1 ))
(ehlnat_x1 [I] s2) (rlucancel 1 ))
(ehlnat_x2 [I] s1) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q7 [-] q5))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q7 [-] q5))
(q7 [-] q5) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q6 [-] q4))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q6 [-] q4))
(q6 [-] q4) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s [-] ulnat_z1))
(s [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s0 [-] ulnat_z0))
(s0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s0) (rlucancel 1 ))
(ehrnat_y1 [I] s) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 )
revert z0 ulnat_z0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x2 wrx5 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z2 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx5 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z2 : wlz3 @ 1 = 1 @ z2)
(urnat_z1 : wrz1 @ 1 = 1 @ z2) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z2))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z2)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z2 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z2) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1, z1 : a = a ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
forall (z0 : b = b) (ulnat_z0 : wlz0 @ 1 = 1 @ z0),
(fun (q : a = a) (s : wly1 @ 1 = 1 @ q) =>
(fun (q0 : b = b) (s0 : wly0 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wrx2 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wrx1 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wrx0 @ 1 = 1 @ q3) =>
(fun (q4 : 1 @ 1 = 1 @ z1) (s4 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q4) =>
(fun (q5 : 1 @ 1 = 1 @ z0) (s5 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ q5) =>
(fun (q6 : 1 @ 1 = 1 @ q) (s6 : (ehrnat_y1 [I] s) @ 1 = 1 @ q6) =>
(fun (q7 : 1 @ 1 = 1 @ q0) (s7 : (ehrnat_y0 [I] s0) @ 1 = 1 @ q7) =>
(fun (q8 : wly0 @ wlz0 @ 1 = 1 @ (q0 @ z0))
(s8 : s0 [-] ulnat_z0 = whiskerR 1 1 @ q8) =>
(fun (q9 : wly1 @ wlz1 @ 1 = 1 @ (q @ z1))
(s9 : s [-] ulnat_z1 = whiskerR 1 1 @ q9) =>
(fun (q10 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s10 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q10) =>
(fun (q11 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s11 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q11) =>
(fun (q12 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s12 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (q @ z1))
(s13 : q6 [-] q4 = whiskerR 1 1 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (q0 @ z0))
(s14 : q7 [-] q5 = whiskerR 1 1 @ q14) =>
(fun (q15 : wlx2 @ 1 = 1 @ q1)
(s15 : (ehlnat_x2 [I] s1) @ 1 = 1 @ q15) =>
(fun (q16 : wlx1 @ 1 = 1 @ q2)
(s16 : (ehlnat_x1 [I] s2) @ 1 = 1 @ q16) =>
(fun (q17 : wlx0 @ 1 = 1 @ q3)
(s17 : (ehlnat_x0 [I] s3) @ 1 = 1 @ q17) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s18 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s18 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s18 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s18 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q18 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s18 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q18) =>
P b a b a b wlx0 q3 wrx0 wlx1 q2 wrx1 wlx2 q1 wrx2 wly0
q0 1 wly1 q 1 wlz0 z0 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q17 s3 q16 s2 q15 s1 s0 q7 s q6 ulnat_z0 q5
ulnat_z1 q4 q8 q14 q9 q13 ehlnat_x0 ehlnat_x1
ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q11
q10 b1 wlrnat_y_x b0 wlrnat_z_x q18 q12 1 1 1 1 s8
s14 s9 s13 s11 s10 s18 s12 s17 s16 s15 s7 s6 s5 s4 x0
x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s3) (rlucancel 1 ))
(ehlnat_x1 [I] s2) (rlucancel 1 ))
(ehlnat_x2 [I] s1) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q7 [-] q5))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q7 [-] q5))
(q7 [-] q5) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q6 [-] q4))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q6 [-] q4))
(q6 [-] q4) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s [-] ulnat_z1))
(s [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s0 [-] ulnat_z0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s0 [-] ulnat_z0))
(s0 [-] ulnat_z0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s0) (rlucancel 1 ))
(ehrnat_y1 [I] s) (rlucancel 1 ))
(ehrnat_z0 [I] ulnat_z0) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x2 wrx5 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z2 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx5 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z2 : wlz3 @ 1 = 1 @ z2)
(urnat_z1 : wrz1 @ 1 = 1 @ z2) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z2))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z2)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z2 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z2) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1, z1 : a = a ulnat_z1 : wlz1 @ 1 = 1 @ z1 ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
(fun (q : b = b) (s : wlz0 @ 1 = 1 @ q) =>
(fun (q0 : a = a) (s0 : wly1 @ 1 = 1 @ q0) =>
(fun (q1 : b = b) (s1 : wly0 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wrx2 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wrx1 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wrx0 @ 1 = 1 @ q4) =>
(fun (q5 : 1 @ 1 = 1 @ z1) (s5 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q5) =>
(fun (q6 : 1 @ 1 = 1 @ q) (s6 : (ehrnat_z0 [I] s) @ 1 = 1 @ q6) =>
(fun (q7 : 1 @ 1 = 1 @ q0) (s7 : (ehrnat_y1 [I] s0) @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (ehrnat_y0 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : wly0 @ wlz0 @ 1 = 1 @ (q1 @ q))
(s9 : s1 [-] s = whiskerR 1 1 @ q9) =>
(fun (q10 : wly1 @ wlz1 @ 1 = 1 @ (q0 @ z1))
(s10 : s0 [-] ulnat_z1 = whiskerR 1 1 @ q10) =>
(fun (q11 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s11 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s12 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q12) =>
(fun (q13 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s13 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (q0 @ z1))
(s14 : q7 [-] q5 = whiskerR 1 1 @ q14) =>
(fun (q15 : 1 @ 1 @ 1 = 1 @ (q1 @ q))
(s15 : q8 [-] q6 = whiskerR 1 1 @ q15) =>
(fun (q16 : wlx2 @ 1 = 1 @ q2)
(s16 : (ehlnat_x2 [I] s2) @ 1 = 1 @ q16) =>
(fun (q17 : wlx1 @ 1 = 1 @ q3)
(s17 : (ehlnat_x1 [I] s3) @ 1 = 1 @ q17) =>
(fun (q18 : wlx0 @ 1 = 1 @ q4)
(s18 : (ehlnat_x0 [I] s4) @ 1 = 1 @ q18) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s19 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s19 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s19 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s19 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q19 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s19 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q19) =>
P b a b a b wlx0 q4 wrx0 wlx1 q3 wrx1 wlx2 q2 wrx2
wly0 q1 1 wly1 q0 1 wlz0 q 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q18 s4 q17 s3 q16 s2 s1 q8 s0 q7 s q6
ulnat_z1 q5 q9 q15 q10 q14 ehlnat_x0 ehlnat_x1
ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1
q12 q11 b1 wlrnat_y_x b0 wlrnat_z_x q19 q13 1 1 1 1
s9 s15 s10 s14 s12 s11 s19 s13 s18 s17 s16 s8 s7 s6
s5 x0 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s4) (rlucancel 1 ))
(ehlnat_x1 [I] s3) (rlucancel 1 ))
(ehlnat_x2 [I] s2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q8 [-] q6))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q8 [-] q6))
(q8 [-] q6) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q7 [-] q5))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q7 [-] q5))
(q7 [-] q5) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s0 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s0 [-] ulnat_z1))
(s0 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s1 [-] s))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s1 [-] s))
(s1 [-] s) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s1) (rlucancel 1 ))
(ehrnat_y1 [I] s0) (rlucancel 1 ))
(ehrnat_z0 [I] s) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 )
revert z1 ulnat_z1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x2 wrx5 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx5 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
forall (z1 : a = a) (ulnat_z1 : wlz1 @ 1 = 1 @ z1),
(fun (q : b = b) (s : wlz0 @ 1 = 1 @ q) =>
(fun (q0 : a = a) (s0 : wly1 @ 1 = 1 @ q0) =>
(fun (q1 : b = b) (s1 : wly0 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wrx2 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wrx1 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wrx0 @ 1 = 1 @ q4) =>
(fun (q5 : 1 @ 1 = 1 @ z1) (s5 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ q5) =>
(fun (q6 : 1 @ 1 = 1 @ q) (s6 : (ehrnat_z0 [I] s) @ 1 = 1 @ q6) =>
(fun (q7 : 1 @ 1 = 1 @ q0) (s7 : (ehrnat_y1 [I] s0) @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (ehrnat_y0 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : wly0 @ wlz0 @ 1 = 1 @ (q1 @ q))
(s9 : s1 [-] s = whiskerR 1 1 @ q9) =>
(fun (q10 : wly1 @ wlz1 @ 1 = 1 @ (q0 @ z1))
(s10 : s0 [-] ulnat_z1 = whiskerR 1 1 @ q10) =>
(fun (q11 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s11 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s12 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q12) =>
(fun (q13 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s13 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (q0 @ z1))
(s14 : q7 [-] q5 = whiskerR 1 1 @ q14) =>
(fun (q15 : 1 @ 1 @ 1 = 1 @ (q1 @ q))
(s15 : q8 [-] q6 = whiskerR 1 1 @ q15) =>
(fun (q16 : wlx2 @ 1 = 1 @ q2)
(s16 : (ehlnat_x2 [I] s2) @ 1 = 1 @ q16) =>
(fun (q17 : wlx1 @ 1 = 1 @ q3)
(s17 : (ehlnat_x1 [I] s3) @ 1 = 1 @ q17) =>
(fun (q18 : wlx0 @ 1 = 1 @ q4)
(s18 : (ehlnat_x0 [I] s4) @ 1 = 1 @ q18) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s19 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s19 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s19 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s19 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q19 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s19 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q19) =>
P b a b a b wlx0 q4 wrx0 wlx1 q3 wrx1 wlx2 q2 wrx2
wly0 q1 1 wly1 q0 1 wlz0 q 1 wlz1 z1 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q18 s4 q17 s3 q16 s2 s1 q8 s0 q7 s q6
ulnat_z1 q5 q9 q15 q10 q14 ehlnat_x0 ehlnat_x1
ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1
q12 q11 b1 wlrnat_y_x b0 wlrnat_z_x q19 q13 1 1 1 1
s9 s15 s10 s14 s12 s11 s19 s13 s18 s17 s16 s8 s7 s6
s5 x0 x)
((whiskerL wlx0 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s4) (rlucancel 1 ))
(ehlnat_x1 [I] s3) (rlucancel 1 ))
(ehlnat_x2 [I] s2) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q8 [-] q6))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q8 [-] q6))
(q8 [-] q6) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q7 [-] q5))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q7 [-] q5))
(q7 [-] q5) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s0 [-] ulnat_z1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s0 [-] ulnat_z1))
(s0 [-] ulnat_z1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s1 [-] s))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s1 [-] s))
(s1 [-] s) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s1) (rlucancel 1 ))
(ehrnat_y1 [I] s0) (rlucancel 1 ))
(ehrnat_z0 [I] s) (rlucancel 1 ))
(ehrnat_z1 [I] ulnat_z1) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x2 wrx5 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx5 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x0 : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x0 [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x0^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0 wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
(fun (q : a = a) (s : wlz1 @ 1 = 1 @ q) =>
(fun (q0 : b = b) (s0 : wlz0 @ 1 = 1 @ q0) =>
(fun (q1 : a = a) (s1 : wly1 @ 1 = 1 @ q1) =>
(fun (q2 : b = b) (s2 : wly0 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wrx2 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wrx1 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wrx0 @ 1 = 1 @ q5) =>
(fun (q6 : 1 @ 1 = 1 @ q) (s6 : (ehrnat_z1 [I] s) @ 1 = 1 @ q6) =>
(fun (q7 : 1 @ 1 = 1 @ q0) (s7 : (ehrnat_z0 [I] s0) @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (ehrnat_y1 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (ehrnat_y0 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : wly0 @ wlz0 @ 1 = 1 @ (q2 @ q0))
(s10 : s2 [-] s0 = whiskerR 1 1 @ q10) =>
(fun (q11 : wly1 @ wlz1 @ 1 = 1 @ (q1 @ q))
(s11 : s1 [-] s = whiskerR 1 1 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s12 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s13 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q13) =>
(fun (q14 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s14 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q14) =>
(fun (q15 : 1 @ 1 @ 1 = 1 @ (q1 @ q))
(s15 : q8 [-] q6 = whiskerR 1 1 @ q15) =>
(fun (q16 : 1 @ 1 @ 1 = 1 @ (q2 @ q0))
(s16 : q9 [-] q7 = whiskerR 1 1 @ q16) =>
(fun (q17 : wlx2 @ 1 = 1 @ q3)
(s17 : (ehlnat_x2 [I] s3) @ 1 = 1 @ q17) =>
(fun (q18 : wlx1 @ 1 = 1 @ q4)
(s18 : (ehlnat_x1 [I] s4) @ 1 = 1 @ q18) =>
(fun (q19 : wlx0 @ 1 = 1 @ q5)
(s19 : (ehlnat_x0 [I] s5) @ 1 = 1 @ q19) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s20 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s20 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s20 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s20 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q20 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s20 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q20) =>
P b a b a b wlx0 q5 wrx0 wlx1 q4 wrx1 wlx2 q3 wrx2
wly0 q2 1 wly1 q1 1 wlz0 q0 1 wlz1 q 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q19 s5 q18 s4 q17 s3 s2 q9 s1 q8 s0 q7 s q6
q10 q16 q11 q15 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q13 q12 b1
wlrnat_y_x b0 wlrnat_z_x q20 q14 1 1 1 1 s10 s16
s11 s15 s13 s12 s20 s14 s19 s18 s17 s9 s8 s7 s6 x0
x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s5) (rlucancel 1 ))
(ehlnat_x1 [I] s4) (rlucancel 1 ))
(ehlnat_x2 [I] s3) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q9 [-] q7))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q9 [-] q7))
(q9 [-] q7) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q8 [-] q6))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q8 [-] q6))
(q8 [-] q6) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s1 [-] s))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s1 [-] s))
(s1 [-] s) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s2 [-] s0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s2 [-] s0))
(s2 [-] s0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s2) (rlucancel 1 ))
(ehrnat_y1 [I] s1) (rlucancel 1 ))
(ehrnat_z0 [I] s0) (rlucancel 1 ))
(ehrnat_z1 [I] s) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 )
revert wlrnat_y_x. (* Paired with wlx0 below. *) X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx3 : a = b0) (wlx4 x1 wrx4 : c = d)
(wlx5 x2 wrx5 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx3 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx4 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx5 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x3 : wlx3 @ 1 = 1 @ wrx3)
(ehlnat_x4 : wlx4 @ 1 = 1 @ wrx4) (ehlnat_x5 : wlx5 @ 1 = 1 @ wrx5)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly3 @ wrx4 = wrx3 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx5 = wrx4 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx5 = wrx3 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x0) @ whiskerL wrx3 wlpp_yz0 =
whiskerR wlpp_yz1 wrx5 @ wlrnat_yz_x ->
(ehlnat_x3 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x4 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x5 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x5) =
(ehlnat_x4 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wrx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0 ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
forall wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0,
(fun (q : a = a) (s : wlz1 @ 1 = 1 @ q) =>
(fun (q0 : b = b) (s0 : wlz0 @ 1 = 1 @ q0) =>
(fun (q1 : a = a) (s1 : wly1 @ 1 = 1 @ q1) =>
(fun (q2 : b = b) (s2 : wly0 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wrx2 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wrx1 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wrx0 @ 1 = 1 @ q5) =>
(fun (q6 : 1 @ 1 = 1 @ q) (s6 : (ehrnat_z1 [I] s) @ 1 = 1 @ q6) =>
(fun (q7 : 1 @ 1 = 1 @ q0) (s7 : (ehrnat_z0 [I] s0) @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (ehrnat_y1 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (ehrnat_y0 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : wly0 @ wlz0 @ 1 = 1 @ (q2 @ q0))
(s10 : s2 [-] s0 = whiskerR 1 1 @ q10) =>
(fun (q11 : wly1 @ wlz1 @ 1 = 1 @ (q1 @ q))
(s11 : s1 [-] s = whiskerR 1 1 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s12 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s13 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q13) =>
(fun (q14 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s14 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q14) =>
(fun (q15 : 1 @ 1 @ 1 = 1 @ (q1 @ q))
(s15 : q8 [-] q6 = whiskerR 1 1 @ q15) =>
(fun (q16 : 1 @ 1 @ 1 = 1 @ (q2 @ q0))
(s16 : q9 [-] q7 = whiskerR 1 1 @ q16) =>
(fun (q17 : wlx2 @ 1 = 1 @ q3)
(s17 : (ehlnat_x2 [I] s3) @ 1 = 1 @ q17) =>
(fun (q18 : wlx1 @ 1 = 1 @ q4)
(s18 : (ehlnat_x1 [I] s4) @ 1 = 1 @ q18) =>
(fun (q19 : wlx0 @ 1 = 1 @ q5)
(s19 : (ehlnat_x0 [I] s5) @ 1 = 1 @ q19) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s20 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s20 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s20 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s20 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q20 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s20 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q20) =>
P b a b a b wlx0 q5 wrx0 wlx1 q4 wrx1 wlx2 q3 wrx2
wly0 q2 1 wly1 q1 1 wlz0 q0 1 wlz1 q 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q19 s5 q18 s4 q17 s3 s2 q9 s1 q8 s0 q7 s q6
q10 q16 q11 q15 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q13 q12 b1
wlrnat_y_x b0 wlrnat_z_x q20 q14 1 1 1 1 s10 s16
s11 s15 s13 s12 s20 s14 s19 s18 s17 s9 s8 s7 s6 x0
x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s5) (rlucancel 1 ))
(ehlnat_x1 [I] s4) (rlucancel 1 ))
(ehlnat_x2 [I] s3) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q9 [-] q7))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q9 [-] q7))
(q9 [-] q7) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q8 [-] q6))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q8 [-] q6))
(q8 [-] q6) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s1 [-] s))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s1 [-] s))
(s1 [-] s) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s2 [-] s0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s2 [-] s0))
(s2 [-] s0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s2) (rlucancel 1 ))
(ehrnat_y1 [I] s1) (rlucancel 1 ))
(ehrnat_z0 [I] s0) (rlucancel 1 ))
(ehrnat_z1 [I] s) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 )
revert wrx0 ehlnat_x0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx3 : c = d)
(wlx5 x2 wrx4 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx3 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx4 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x3 : wlx4 @ 1 = 1 @ wrx3) (ehlnat_x4 : wlx5 @ 1 = 1 @ wrx4)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly3 @ wrx3 = wrx0 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx4 = wrx3 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx4 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x0) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx4 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x3 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x4 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x3) =
(ehlnat_x0 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
forall (wrx0 : a = b) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0),
(fun (q : a = a) (s : wlz1 @ 1 = 1 @ q) =>
(fun (q0 : b = b) (s0 : wlz0 @ 1 = 1 @ q0) =>
(fun (q1 : a = a) (s1 : wly1 @ 1 = 1 @ q1) =>
(fun (q2 : b = b) (s2 : wly0 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wrx2 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wrx1 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wrx0 @ 1 = 1 @ q5) =>
(fun (q6 : 1 @ 1 = 1 @ q) (s6 : (ehrnat_z1 [I] s) @ 1 = 1 @ q6) =>
(fun (q7 : 1 @ 1 = 1 @ q0) (s7 : (ehrnat_z0 [I] s0) @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (ehrnat_y1 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (ehrnat_y0 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : wly0 @ wlz0 @ 1 = 1 @ (q2 @ q0))
(s10 : s2 [-] s0 = whiskerR 1 1 @ q10) =>
(fun (q11 : wly1 @ wlz1 @ 1 = 1 @ (q1 @ q))
(s11 : s1 [-] s = whiskerR 1 1 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s12 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s13 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q13) =>
(fun (q14 : wly1 @ wlz1 @ wrx2 = wrx0 @ (wly0 @ wlz0))
(s14 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 =
whiskerR 1 wrx2 @ q14) =>
(fun (q15 : 1 @ 1 @ 1 = 1 @ (q1 @ q))
(s15 : q8 [-] q6 = whiskerR 1 1 @ q15) =>
(fun (q16 : 1 @ 1 @ 1 = 1 @ (q2 @ q0))
(s16 : q9 [-] q7 = whiskerR 1 1 @ q16) =>
(fun (q17 : wlx2 @ 1 = 1 @ q3)
(s17 : (ehlnat_x2 [I] s3) @ 1 = 1 @ q17) =>
(fun (q18 : wlx1 @ 1 = 1 @ q4)
(s18 : (ehlnat_x1 [I] s4) @ 1 = 1 @ q18) =>
(fun (q19 : wlx0 @ 1 = 1 @ q5)
(s19 : (ehlnat_x0 [I] s5) @ 1 = 1 @ q19) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s20 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s20 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s20 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s20 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q20 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s20 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q20) =>
P b a b a b wlx0 q5 wrx0 wlx1 q4 wrx1 wlx2 q3 wrx2
wly0 q2 1 wly1 q1 1 wlz0 q0 1 wlz1 q 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q19 s5 q18 s4 q17 s3 s2 q9 s1 q8 s0 q7 s q6
q10 q16 q11 q15 ehlnat_x0 ehlnat_x1 ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q13 q12 b1
wlrnat_y_x b0 wlrnat_z_x q20 q14 1 1 1 1 s10 s16
s11 s15 s13 s12 s20 s14 s19 s18 s17 s9 s8 s7 s6 x0
x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((ehlnat_x0 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(ehlnat_x0 [I] s5) (rlucancel 1 ))
(ehlnat_x1 [I] s4) (rlucancel 1 ))
(ehlnat_x2 [I] s3) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q9 [-] q7))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q9 [-] q7))
(q9 [-] q7) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q8 [-] q6))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q8 [-] q6))
(q8 [-] q6) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s1 [-] s))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s1 [-] s))
(s1 [-] s) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s2 [-] s0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s2 [-] s0))
(s2 [-] s0) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s2) (rlucancel 1 ))
(ehrnat_y1 [I] s1) (rlucancel 1 ))
(ehrnat_z0 [I] s0) (rlucancel 1 ))
(ehrnat_z1 [I] s) (rlucancel 1 ))
wrx0 (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx3 : c = d)
(wlx5 x2 wrx4 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx3 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx4 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x3 : wlx4 @ 1 = 1 @ wrx3) (ehlnat_x4 : wlx5 @ 1 = 1 @ wrx4)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly3 @ wrx3 = wrx0 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x0 : wlz3 @ wrx4 = wrx3 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx4 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x0) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx4 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x3 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x4 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x3) =
(ehlnat_x0 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x0^ -> Type H : ?Goal b : X wlx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0
(fun (q : a = b) (s : wlx0 @ 1 = 1 @ q) =>
forall wlrnat_y_x : wly1 @ wrx1 = q @ wly0,
(fun (q0 : a = a) (s0 : wlz1 @ 1 = 1 @ q0) =>
(fun (q1 : b = b) (s1 : wlz0 @ 1 = 1 @ q1) =>
(fun (q2 : a = a) (s2 : wly1 @ 1 = 1 @ q2) =>
(fun (q3 : b = b) (s3 : wly0 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wrx2 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wrx1 @ 1 = 1 @ q5) =>
(fun (q6 : a = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : 1 @ 1 = 1 @ q0) (s7 : (ehrnat_z1 [I] s0) @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (ehrnat_z0 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (ehrnat_y1 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (ehrnat_y0 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : wly0 @ wlz0 @ 1 = 1 @ (q3 @ q1))
(s11 : s3 [-] s1 = whiskerR 1 1 @ q11) =>
(fun (q12 : wly1 @ wlz1 @ 1 = 1 @ (q2 @ q0))
(s12 : s2 [-] s0 = whiskerR 1 1 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s13 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s14 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q14) =>
(fun (q15 : wly1 @ wlz1 @ wrx2 = q @ (wly0 @ wlz0))
(s15 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 =
whiskerR 1 wrx2 @ q15) =>
(fun (q16 : 1 @ 1 @ 1 = 1 @ (q2 @ q0))
(s16 : q9 [-] q7 = whiskerR 1 1 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q3 @ q1))
(s17 : q10 [-] q8 = whiskerR 1 1 @ q17) =>
(fun (q18 : wlx2 @ 1 = 1 @ q4)
(s18 : (ehlnat_x2 [I] s4) @ 1 = 1 @ q18) =>
(fun (q19 : wlx1 @ 1 = 1 @ q5)
(s19 : (ehlnat_x1 [I] s5) @ 1 = 1 @ q19) =>
(fun (q20 : wlx0 @ 1 = 1 @ q6)
(s20 : (s [I] s6) @ 1 = 1 @ q20) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s21 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s21 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s21 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s21 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q21 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s21 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q21) =>
P b a b a b wlx0 q6 q wlx1 q5 wrx1 wlx2 q4 wrx2 wly0
q3 1 wly1 q2 1 wlz0 q1 1 wlz1 q0 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q20 s6 q19 s5 q18 s4 s3 q10 s2 q9 s1 q8 s0
q7 q11 q17 q12 q16 s ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 q14 q13 b1
wlrnat_y_x b0 wlrnat_z_x q21 q15 1 1 1 1 s11 s17
s12 s16 s14 s13 s21 s15 s20 s19 s18 s10 s9 s8 s7
x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(s [I] s6) (rlucancel 1 ))
(ehlnat_x1 [I] s5) (rlucancel 1 ))
(ehlnat_x2 [I] s4) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q10 [-] q8))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q10 [-] q8))
(q10 [-] q8) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q9 [-] q7))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q9 [-] q7))
(q9 [-] q7) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s2 [-] s0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s2 [-] s0))
(s2 [-] s0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s3 [-] s1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s3 [-] s1))
(s3 [-] s1) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s3) (rlucancel 1 ))
(ehrnat_y1 [I] s2) (rlucancel 1 ))
(ehrnat_z0 [I] s1) (rlucancel 1 ))
(ehrnat_z1 [I] s0) (rlucancel 1 ))
q (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 )
revert wlrnat_z_x. (* Paired with wlx1 below. *) X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx3 : c = d)
(wlx5 x2 wrx4 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx3 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx4 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x3 : wlx4 @ 1 = 1 @ wrx3) (ehlnat_x4 : wlx5 @ 1 = 1 @ wrx4)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly3 @ wrx3 = wrx0 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz3 @ wrx4 = wrx3 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx4 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx4 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x3 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x4 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x3) =
(ehlnat_x0 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x4) =
(ehlnat_x3 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wrx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1 ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1
forall wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0,
(fun (q : a = b) (s : wlx0 @ 1 = 1 @ q) =>
forall wlrnat_y_x : wly1 @ wrx1 = q @ wly0,
(fun (q0 : a = a) (s0 : wlz1 @ 1 = 1 @ q0) =>
(fun (q1 : b = b) (s1 : wlz0 @ 1 = 1 @ q1) =>
(fun (q2 : a = a) (s2 : wly1 @ 1 = 1 @ q2) =>
(fun (q3 : b = b) (s3 : wly0 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wrx2 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wrx1 @ 1 = 1 @ q5) =>
(fun (q6 : a = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : 1 @ 1 = 1 @ q0) (s7 : (ehrnat_z1 [I] s0) @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (ehrnat_z0 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (ehrnat_y1 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (ehrnat_y0 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : wly0 @ wlz0 @ 1 = 1 @ (q3 @ q1))
(s11 : s3 [-] s1 = whiskerR 1 1 @ q11) =>
(fun (q12 : wly1 @ wlz1 @ 1 = 1 @ (q2 @ q0))
(s12 : s2 [-] s0 = whiskerR 1 1 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s13 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s14 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q14) =>
(fun (q15 : wly1 @ wlz1 @ wrx2 = q @ (wly0 @ wlz0))
(s15 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 =
whiskerR 1 wrx2 @ q15) =>
(fun (q16 : 1 @ 1 @ 1 = 1 @ (q2 @ q0))
(s16 : q9 [-] q7 = whiskerR 1 1 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q3 @ q1))
(s17 : q10 [-] q8 = whiskerR 1 1 @ q17) =>
(fun (q18 : wlx2 @ 1 = 1 @ q4)
(s18 : (ehlnat_x2 [I] s4) @ 1 = 1 @ q18) =>
(fun (q19 : wlx1 @ 1 = 1 @ q5)
(s19 : (ehlnat_x1 [I] s5) @ 1 = 1 @ q19) =>
(fun (q20 : wlx0 @ 1 = 1 @ q6)
(s20 : (s [I] s6) @ 1 = 1 @ q20) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s21 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s21 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s21 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s21 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q21 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s21 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q21) =>
P b a b a b wlx0 q6 q wlx1 q5 wrx1 wlx2 q4 wrx2 wly0
q3 1 wly1 q2 1 wlz0 q1 1 wlz1 q0 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q20 s6 q19 s5 q18 s4 s3 q10 s2 q9 s1 q8 s0
q7 q11 q17 q12 q16 s ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 q14 q13 b1
wlrnat_y_x b0 wlrnat_z_x q21 q15 1 1 1 1 s11 s17
s12 s16 s14 s13 s21 s15 s20 s19 s18 s10 s9 s8 s7
x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(s [I] s6) (rlucancel 1 ))
(ehlnat_x1 [I] s5) (rlucancel 1 ))
(ehlnat_x2 [I] s4) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q10 [-] q8))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q10 [-] q8))
(q10 [-] q8) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q9 [-] q7))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q9 [-] q7))
(q9 [-] q7) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s2 [-] s0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s2 [-] s0))
(s2 [-] s0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s3 [-] s1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s3 [-] s1))
(s3 [-] s1) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s3) (rlucancel 1 ))
(ehrnat_y1 [I] s2) (rlucancel 1 ))
(ehrnat_z0 [I] s1) (rlucancel 1 ))
(ehrnat_z1 [I] s0) (rlucancel 1 ))
q (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 )
revert wrx1 ehlnat_x1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx3 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx3 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x3 : wlx5 @ 1 = 1 @ wrx3)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly3 @ wrx1 = wrx0 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz3 @ wrx3 = wrx1 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx3 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx3 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x3 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x3) =
(ehlnat_x1 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1
forall (wrx1 : a = b) (ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0),
(fun (q : a = b) (s : wlx0 @ 1 = 1 @ q) =>
forall wlrnat_y_x : wly1 @ wrx1 = q @ wly0,
(fun (q0 : a = a) (s0 : wlz1 @ 1 = 1 @ q0) =>
(fun (q1 : b = b) (s1 : wlz0 @ 1 = 1 @ q1) =>
(fun (q2 : a = a) (s2 : wly1 @ 1 = 1 @ q2) =>
(fun (q3 : b = b) (s3 : wly0 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wrx2 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wrx1 @ 1 = 1 @ q5) =>
(fun (q6 : a = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : 1 @ 1 = 1 @ q0) (s7 : (ehrnat_z1 [I] s0) @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (ehrnat_z0 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (ehrnat_y1 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (ehrnat_y0 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : wly0 @ wlz0 @ 1 = 1 @ (q3 @ q1))
(s11 : s3 [-] s1 = whiskerR 1 1 @ q11) =>
(fun (q12 : wly1 @ wlz1 @ 1 = 1 @ (q2 @ q0))
(s12 : s2 [-] s0 = whiskerR 1 1 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s13 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s14 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q14) =>
(fun (q15 : wly1 @ wlz1 @ wrx2 = q @ (wly0 @ wlz0))
(s15 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 =
whiskerR 1 wrx2 @ q15) =>
(fun (q16 : 1 @ 1 @ 1 = 1 @ (q2 @ q0))
(s16 : q9 [-] q7 = whiskerR 1 1 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q3 @ q1))
(s17 : q10 [-] q8 = whiskerR 1 1 @ q17) =>
(fun (q18 : wlx2 @ 1 = 1 @ q4)
(s18 : (ehlnat_x2 [I] s4) @ 1 = 1 @ q18) =>
(fun (q19 : wlx1 @ 1 = 1 @ q5)
(s19 : (ehlnat_x1 [I] s5) @ 1 = 1 @ q19) =>
(fun (q20 : wlx0 @ 1 = 1 @ q6)
(s20 : (s [I] s6) @ 1 = 1 @ q20) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s21 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s21 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s21 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s21 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q21 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s21 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q21) =>
P b a b a b wlx0 q6 q wlx1 q5 wrx1 wlx2 q4 wrx2 wly0
q3 1 wly1 q2 1 wlz0 q1 1 wlz1 q0 1
(wly0 @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q20 s6 q19 s5 q18 s4 s3 q10 s2 q9 s1 q8 s0
q7 q11 q17 q12 q16 s ehlnat_x1 ehlnat_x2 ehrnat_y0
ehrnat_y1 ehrnat_z0 ehrnat_z1 q14 q13 b1
wlrnat_y_x b0 wlrnat_z_x q21 q15 1 1 1 1 s11 s17
s12 s16 s14 s13 s21 s15 s20 s19 s18 s10 s9 s8 s7
x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] ehlnat_x1)
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] ehlnat_x1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((ehlnat_x1 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(s [I] s6) (rlucancel 1 ))
(ehlnat_x1 [I] s5) (rlucancel 1 ))
(ehlnat_x2 [I] s4) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q10 [-] q8))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q10 [-] q8))
(q10 [-] q8) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q9 [-] q7))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q9 [-] q7))
(q9 [-] q7) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s2 [-] s0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s2 [-] s0))
(s2 [-] s0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s3 [-] s1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s3 [-] s1))
(s3 [-] s1) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s3) (rlucancel 1 ))
(ehrnat_y1 [I] s2) (rlucancel 1 ))
(ehrnat_z0 [I] s1) (rlucancel 1 ))
(ehrnat_z1 [I] s0) (rlucancel 1 ))
q (rlucancel 1 ))
wrx1 (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx3 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx3 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x3 : wlx5 @ 1 = 1 @ wrx3)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly3 @ wrx1 = wrx0 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz3 @ wrx3 = wrx1 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx3 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx3 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x3 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x3) =
(ehlnat_x1 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2, wrx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2 ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1
(fun (q : a = b) (s : wlx1 @ 1 = 1 @ q) =>
forall wlrnat_z_x : wlz1 @ wrx2 = q @ wlz0,
(fun (q0 : a = b) (s0 : wlx0 @ 1 = 1 @ q0) =>
forall wlrnat_y_x : wly1 @ q = q0 @ wly0,
(fun (q1 : a = a) (s1 : wlz1 @ 1 = 1 @ q1) =>
(fun (q2 : b = b) (s2 : wlz0 @ 1 = 1 @ q2) =>
(fun (q3 : a = a) (s3 : wly1 @ 1 = 1 @ q3) =>
(fun (q4 : b = b) (s4 : wly0 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wrx2 @ 1 = 1 @ q5) =>
(fun (q6 : a = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : a = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (ehrnat_z1 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (ehrnat_z0 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (ehrnat_y1 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : 1 @ 1 = 1 @ q4)
(s11 : (ehrnat_y0 [I] s4) @ 1 = 1 @ q11) =>
(fun (q12 : wly0 @ wlz0 @ 1 = 1 @ (q4 @ q2))
(s12 : s4 [-] s2 = whiskerR 1 1 @ q12) =>
(fun (q13 : wly1 @ wlz1 @ 1 = 1 @ (q3 @ q1))
(s13 : s3 [-] s1 = whiskerR 1 1 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s14 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q14) =>
(fun (q15 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s15 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q15) =>
(fun (q16 : wly1 @ wlz1 @ wrx2 = q0 @ (wly0 @ wlz0))
(s16 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q0 1 =
whiskerR 1 wrx2 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q3 @ q1))
(s17 : q10 [-] q8 = whiskerR 1 1 @ q17) =>
(fun (q18 : 1 @ 1 @ 1 = 1 @ (q4 @ q2))
(s18 : q11 [-] q9 = whiskerR 1 1 @ q18) =>
(fun (q19 : wlx2 @ 1 = 1 @ q5)
(s19 : (ehlnat_x2 [I] s5) @ 1 = 1 @ q19) =>
(fun (q20 : wlx1 @ 1 = 1 @ q6)
(s20 : (s [I] s6) @ 1 = 1 @ q20) =>
(fun (q21 : wlx0 @ 1 = 1 @ q7)
(s21 : (s0 [I] s7) @ 1 = 1 @ q21) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s22 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s22 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(s [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s22 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s22 1 @ (ehrnat_y1 [-] s) =
(s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q22 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s22 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q22) =>
P b a b a b wlx0 q7 q0 wlx1 q6 q wlx2 q5 wrx2 wly0
q4 1 wly1 q3 1 wlz0 q2 1 wlz1 q1 1
(wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q21 s7 q20 s6 q19 s5 s4 q11
s3 q10 s2 q9 s1 q8 q12 q18 q13 q17 s0 s ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q15 q14
b1 wlrnat_y_x b0 wlrnat_z_x q22 q16 1 1 1 1 s12
s18 s13 s17 s15 s14 s22 s16 s21 s20 s19 s11 s10
s9 s8 x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] s)
((s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((s [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(s0 [I] s7) (rlucancel 1 ))
(s [I] s6) (rlucancel 1 ))
(ehlnat_x2 [I] s5) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q11 [-] q9))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q11 [-] q9))
(q11 [-] q9) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q10 [-] q8))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q10 [-] q8))
(q10 [-] q8) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s3 [-] s1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s3 [-] s1))
(s3 [-] s1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s4 [-] s2))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s4 [-] s2))
(s4 [-] s2) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s4) (rlucancel 1 ))
(ehrnat_y1 [I] s3) (rlucancel 1 ))
(ehrnat_z0 [I] s2) (rlucancel 1 ))
(ehrnat_z1 [I] s1) (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 )
revert wrx2 ehlnat_x2.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx2 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx5 @ 1 = 1 @ wrx2)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly3 @ wrx1 = wrx0 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz3 @ wrx2 = wrx1 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1
forall (wrx2 : a = b) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2),
(fun (q : a = b) (s : wlx1 @ 1 = 1 @ q) =>
forall wlrnat_z_x : wlz1 @ wrx2 = q @ wlz0,
(fun (q0 : a = b) (s0 : wlx0 @ 1 = 1 @ q0) =>
forall wlrnat_y_x : wly1 @ q = q0 @ wly0,
(fun (q1 : a = a) (s1 : wlz1 @ 1 = 1 @ q1) =>
(fun (q2 : b = b) (s2 : wlz0 @ 1 = 1 @ q2) =>
(fun (q3 : a = a) (s3 : wly1 @ 1 = 1 @ q3) =>
(fun (q4 : b = b) (s4 : wly0 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wrx2 @ 1 = 1 @ q5) =>
(fun (q6 : a = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : a = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (ehrnat_z1 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (ehrnat_z0 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (ehrnat_y1 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : 1 @ 1 = 1 @ q4)
(s11 : (ehrnat_y0 [I] s4) @ 1 = 1 @ q11) =>
(fun (q12 : wly0 @ wlz0 @ 1 = 1 @ (q4 @ q2))
(s12 : s4 [-] s2 = whiskerR 1 1 @ q12) =>
(fun (q13 : wly1 @ wlz1 @ 1 = 1 @ (q3 @ q1))
(s13 : s3 [-] s1 = whiskerR 1 1 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s14 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q14) =>
(fun (q15 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s15 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q15) =>
(fun (q16 : wly1 @ wlz1 @ wrx2 = q0 @ (wly0 @ wlz0))
(s16 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q0 1 =
whiskerR 1 wrx2 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q3 @ q1))
(s17 : q10 [-] q8 = whiskerR 1 1 @ q17) =>
(fun (q18 : 1 @ 1 @ 1 = 1 @ (q4 @ q2))
(s18 : q11 [-] q9 = whiskerR 1 1 @ q18) =>
(fun (q19 : wlx2 @ 1 = 1 @ q5)
(s19 : (ehlnat_x2 [I] s5) @ 1 = 1 @ q19) =>
(fun (q20 : wlx1 @ 1 = 1 @ q6)
(s20 : (s [I] s6) @ 1 = 1 @ q20) =>
(fun (q21 : wlx0 @ 1 = 1 @ q7)
(s21 : (s0 [I] s7) @ 1 = 1 @ q21) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s22 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s22 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(s [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s22 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s22 1 @ (ehrnat_y1 [-] s) =
(s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q22 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s22 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q22) =>
P b a b a b wlx0 q7 q0 wlx1 q6 q wlx2 q5 wrx2 wly0
q4 1 wly1 q3 1 wlz0 q2 1 wlz1 q1 1
(wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q21 s7 q20 s6 q19 s5 s4 q11
s3 q10 s2 q9 s1 q8 q12 q18 q13 q17 s0 s ehlnat_x2
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q15 q14
b1 wlrnat_y_x b0 wlrnat_z_x q22 q16 1 1 1 1 s12
s18 s13 s17 s15 s14 s22 s16 s21 s20 s19 s11 s10
s9 s8 x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] s)
((s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] ehlnat_x2)
((s [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] ehlnat_x2)^) @
concat_p1 (1 @ wlx2))
1 ))
(s0 [I] s7) (rlucancel 1 ))
(s [I] s6) (rlucancel 1 ))
(ehlnat_x2 [I] s5) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q11 [-] q9))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q11 [-] q9))
(q11 [-] q9) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q10 [-] q8))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q10 [-] q8))
(q10 [-] q8) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wrx2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q0 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q0 1 )
(whiskerR 1 wrx2) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s3 [-] s1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s3 [-] s1))
(s3 [-] s1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s4 [-] s2))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s4 [-] s2))
(s4 [-] s2) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s4) (rlucancel 1 ))
(ehrnat_y1 [I] s3) (rlucancel 1 ))
(ehrnat_z0 [I] s2) (rlucancel 1 ))
(ehrnat_z1 [I] s1) (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wrx2 (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx2 : e = f) (wly2 y0 wry0 : b0 = d) (wly3 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly2 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly3 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx5 @ 1 = 1 @ wrx2)
(ehrnat_y2 : wry0 @ 1 = 1 @ wly2) (ehrnat_y3 : wry1 @ 1 = 1 @ wly3)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly3 @ wrx1 = wrx0 @ wly2)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz3 @ wrx2 = wrx1 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly2 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly3 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y2 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y3 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y2 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y3 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y3 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y2) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2 : a = b wly0 : b = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehrnat_y0 : 1 @ 1 = 1 @ wly0ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1
(fun (q : a = b) (s : wlx2 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wlx1 @ 1 = 1 @ q0) =>
forall wlrnat_z_x : wlz1 @ q = q0 @ wlz0,
(fun (q1 : a = b) (s1 : wlx0 @ 1 = 1 @ q1) =>
forall wlrnat_y_x : wly1 @ q0 = q1 @ wly0,
(fun (q2 : a = a) (s2 : wlz1 @ 1 = 1 @ q2) =>
(fun (q3 : b = b) (s3 : wlz0 @ 1 = 1 @ q3) =>
(fun (q4 : a = a) (s4 : wly1 @ 1 = 1 @ q4) =>
(fun (q5 : b = b) (s5 : wly0 @ 1 = 1 @ q5) =>
(fun (q6 : a = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : a = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : a = b) (s8 : q1 @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (ehrnat_z1 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (ehrnat_z0 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : 1 @ 1 = 1 @ q4)
(s11 : (ehrnat_y1 [I] s4) @ 1 = 1 @ q11) =>
(fun (q12 : 1 @ 1 = 1 @ q5)
(s12 : (ehrnat_y0 [I] s5) @ 1 = 1 @ q12) =>
(fun (q13 : wly0 @ wlz0 @ 1 = 1 @ (q5 @ q3))
(s13 : s5 [-] s3 = whiskerR 1 1 @ q13) =>
(fun (q14 : wly1 @ wlz1 @ 1 = 1 @ (q4 @ q2))
(s14 : s4 [-] s2 = whiskerR 1 1 @ q14) =>
(fun (q15 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s15 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q15) =>
(fun (q16 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s16 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q16) =>
(fun (q17 : wly1 @ wlz1 @ q = q1 @ (wly0 @ wlz0))
(s17 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q1 1 =
whiskerR 1 q @ q17) =>
(fun (q18 : 1 @ 1 @ 1 = 1 @ (q4 @ q2))
(s18 : q11 [-] q9 = whiskerR 1 1 @ q18) =>
(fun (q19 : 1 @ 1 @ 1 = 1 @ (q5 @ q3))
(s19 : q12 [-] q10 = whiskerR 1 1 @ q19) =>
(fun (q20 : wlx2 @ 1 = 1 @ q6)
(s20 : (s [I] s6) @ 1 = 1 @ q20) =>
(fun (q21 : wlx1 @ 1 = 1 @ q7)
(s21 : (s0 [I] s7) @ 1 = 1 @ q21) =>
(fun (q22 : wlx0 @ 1 = 1 @ q8)
(s22 : (s1 [I] s8) @ 1 = 1 @ q22) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s23 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s23 1 @ (ehrnat_z1 [-] s) =
(s0 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s23 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s23 1 @ (ehrnat_y1 [-] s0) =
(s1 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q23 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s23 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q23) =>
P b a b a b wlx0 q8 q1 wlx1 q7 q0 wlx2 q6 q wly0
q5 1 wly1 q4 1 wlz0 q3 1 wlz1 q2 1
(wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q22 s8 q21 s7 q20 s6 s5
q12 s4 q11 s3 q10 s2 q9 q13 q19 q14 q18 s1 s0 s
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q16 q15
b1 wlrnat_y_x b0 wlrnat_z_x q23 q17 1 1 1 1 s13
s19 s14 s18 s16 s15 s23 s17 s22 s21 s20 s12 s11
s10 s9 x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s1 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s0)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] s0)
((s1 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s1 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s0)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s0 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] s)
((s0 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s0 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s)^) @
concat_p1 (1 @ wlx2))
1 ))
(s1 [I] s8) (rlucancel 1 ))
(s0 [I] s7) (rlucancel 1 ))
(s [I] s6) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q12 [-] q10))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q12 [-] q10))
(q12 [-] q10) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q11 [-] q9))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q11 [-] q9))
(q11 [-] q9) (whiskerR 1 1 ) 1 ))
((whiskerR 1 q)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q1 1 ))
(equiv_moveL_Mp
((whiskerR 1 q)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q1 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q1 1 )
(whiskerR 1 q) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s4 [-] s2))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s4 [-] s2))
(s4 [-] s2) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s5 [-] s3))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s5 [-] s3))
(s5 [-] s3) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s5) (rlucancel 1 ))
(ehrnat_y1 [I] s4) (rlucancel 1 ))
(ehrnat_z0 [I] s3) (rlucancel 1 ))
(ehrnat_z1 [I] s2) (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 )
revert wly0 ehrnat_y0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly2 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly2 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx5 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y2 : wry1 @ 1 = 1 @ wly2)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly2 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz3 @ wrx2 = wrx1 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly2 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y2 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y2 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y2 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2 : a = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1
forall (wly0 : b = b) (ehrnat_y0 : 1 @ 1 = 1 @ wly0),
(fun (q : a = b) (s : wlx2 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wlx1 @ 1 = 1 @ q0) =>
forall wlrnat_z_x : wlz1 @ q = q0 @ wlz0,
(fun (q1 : a = b) (s1 : wlx0 @ 1 = 1 @ q1) =>
forall wlrnat_y_x : wly1 @ q0 = q1 @ wly0,
(fun (q2 : a = a) (s2 : wlz1 @ 1 = 1 @ q2) =>
(fun (q3 : b = b) (s3 : wlz0 @ 1 = 1 @ q3) =>
(fun (q4 : a = a) (s4 : wly1 @ 1 = 1 @ q4) =>
(fun (q5 : b = b) (s5 : wly0 @ 1 = 1 @ q5) =>
(fun (q6 : a = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : a = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : a = b) (s8 : q1 @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (ehrnat_z1 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (ehrnat_z0 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : 1 @ 1 = 1 @ q4)
(s11 : (ehrnat_y1 [I] s4) @ 1 = 1 @ q11) =>
(fun (q12 : 1 @ 1 = 1 @ q5)
(s12 : (ehrnat_y0 [I] s5) @ 1 = 1 @ q12) =>
(fun (q13 : wly0 @ wlz0 @ 1 = 1 @ (q5 @ q3))
(s13 : s5 [-] s3 = whiskerR 1 1 @ q13) =>
(fun (q14 : wly1 @ wlz1 @ 1 = 1 @ (q4 @ q2))
(s14 : s4 [-] s2 = whiskerR 1 1 @ q14) =>
(fun (q15 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s15 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q15) =>
(fun (q16 : 1 @ 1 @ 1 = 1 @ (wly0 @ wlz0))
(s16 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q16) =>
(fun (q17 : wly1 @ wlz1 @ q = q1 @ (wly0 @ wlz0))
(s17 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q1 1 =
whiskerR 1 q @ q17) =>
(fun (q18 : 1 @ 1 @ 1 = 1 @ (q4 @ q2))
(s18 : q11 [-] q9 = whiskerR 1 1 @ q18) =>
(fun (q19 : 1 @ 1 @ 1 = 1 @ (q5 @ q3))
(s19 : q12 [-] q10 = whiskerR 1 1 @ q19) =>
(fun (q20 : wlx2 @ 1 = 1 @ q6)
(s20 : (s [I] s6) @ 1 = 1 @ q20) =>
(fun (q21 : wlx1 @ 1 = 1 @ q7)
(s21 : (s0 [I] s7) @ 1 = 1 @ q21) =>
(fun (q22 : wlx0 @ 1 = 1 @ q8)
(s22 : (s1 [I] s8) @ 1 = 1 @ q22) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s23 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s23 1 @ (ehrnat_z1 [-] s) =
(s0 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s23 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s23 1 @ (ehrnat_y1 [-] s0) =
(s1 [-] ehrnat_y0) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q23 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s23 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q23) =>
P b a b a b wlx0 q8 q1 wlx1 q7 q0 wlx2 q6 q wly0
q5 1 wly1 q4 1 wlz0 q3 1 wlz1 q2 1
(wly0 @ wlz0) (1 @ 1 )
(wly1 @ wlz1) (1 @ 1 ) q22 s8 q21 s7 q20 s6 s5
q12 s4 q11 s3 q10 s2 q9 q13 q19 q14 q18 s1 s0 s
ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1 q16 q15
b1 wlrnat_y_x b0 wlrnat_z_x q23 q17 1 1 1 1 s13
s19 s14 s18 s16 s15 s23 s17 s22 s21 s20 s12 s11
s10 s9 x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s1 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s0)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] s0)
((s1 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s1 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s0)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s0 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] s)
((s0 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s0 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s)^) @
concat_p1 (1 @ wlx2))
1 ))
(s1 [I] s8) (rlucancel 1 ))
(s0 [I] s7) (rlucancel 1 ))
(s [I] s6) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q12 [-] q10))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q12 [-] q10))
(q12 [-] q10) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q11 [-] q9))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q11 [-] q9))
(q11 [-] q9) (whiskerR 1 1 ) 1 ))
((whiskerR 1 q)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q1 1 ))
(equiv_moveL_Mp
((whiskerR 1 q)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q1 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q1 1 )
(whiskerR 1 q) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s4 [-] s2))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s4 [-] s2))
(s4 [-] s2) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s5 [-] s3))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s5 [-] s3))
(s5 [-] s3) (whiskerR 1 1 ) 1 ))
(ehrnat_y0 [I] s5) (rlucancel 1 ))
(ehrnat_y1 [I] s4) (rlucancel 1 ))
(ehrnat_z0 [I] s3) (rlucancel 1 ))
(ehrnat_z1 [I] s2) (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wly0 (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly2 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly2 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx5 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y2 : wry1 @ 1 = 1 @ wly2)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly2 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz3 @ wrx2 = wrx1 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly2 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y2 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y2 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y2 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2 : a = b wly1 : a = a wlz0 : b = b wlz1 : a = a ehrnat_y1 : 1 @ 1 = 1 @ wly1ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1
(fun (q : b = b) (s : 1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wlx2 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wlx1 @ 1 = 1 @ q1) =>
forall wlrnat_z_x : wlz1 @ q0 = q1 @ wlz0,
(fun (q2 : a = b) (s2 : wlx0 @ 1 = 1 @ q2) =>
forall wlrnat_y_x : wly1 @ q1 = q2 @ q,
(fun (q3 : a = a) (s3 : wlz1 @ 1 = 1 @ q3) =>
(fun (q4 : b = b) (s4 : wlz0 @ 1 = 1 @ q4) =>
(fun (q5 : a = a) (s5 : wly1 @ 1 = 1 @ q5) =>
(fun (q6 : b = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : a = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : a = b) (s8 : q1 @ 1 = 1 @ q8) =>
(fun (q9 : a = b) (s9 : q2 @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (ehrnat_z1 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : 1 @ 1 = 1 @ q4)
(s11 : (ehrnat_z0 [I] s4) @ 1 = 1 @ q11) =>
(fun (q12 : 1 @ 1 = 1 @ q5)
(s12 : (ehrnat_y1 [I] s5) @ 1 = 1 @ q12) =>
(fun (q13 : 1 @ 1 = 1 @ q6) (s13 : (s [I] s6) @ 1 = 1 @ q13) =>
(fun (q14 : q @ wlz0 @ 1 = 1 @ (q6 @ q4))
(s14 : s6 [-] s4 = whiskerR 1 1 @ q14) =>
(fun (q15 : wly1 @ wlz1 @ 1 = 1 @ (q5 @ q3))
(s15 : s5 [-] s3 = whiskerR 1 1 @ q15) =>
(fun (q16 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s16 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q @ wlz0))
(s17 : (s [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q17) =>
(fun (q18 : wly1 @ wlz1 @ q0 = q2 @ (q @ wlz0))
(s18 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q2 1 =
whiskerR 1 q0 @ q18) =>
(fun (q19 : 1 @ 1 @ 1 = 1 @ (q5 @ q3))
(s19 : q12 [-] q10 = whiskerR 1 1 @ q19) =>
(fun (q20 : 1 @ 1 @ 1 = 1 @ (q6 @ q4))
(s20 : q13 [-] q11 = whiskerR 1 1 @ q20) =>
(fun (q21 : wlx2 @ 1 = 1 @ q7)
(s21 : (s0 [I] s7) @ 1 = 1 @ q21) =>
(fun (q22 : wlx1 @ 1 = 1 @ q8)
(s22 : (s1 [I] s8) @ 1 = 1 @ q22) =>
(fun (q23 : wlx0 @ 1 = 1 @ q9)
(s23 : (s2 [I] s9) @ 1 = 1 @ q23) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s24 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s24 1 @ (ehrnat_z1 [-] s0) =
(s1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s24 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s24 1 @ (ehrnat_y1 [-] s1) =
(s2 [-] s) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q24 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s24 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q24) =>
P b a b a b wlx0 q9 q2 wlx1 q8 q1 wlx2 q7 q0 q q6
1 wly1 q5 1 wlz0 q4 1 wlz1 q3 1
(q @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q23 s9 q22 s8 q21 s7 s6 q13 s5 q12 s4
q11 s3 q10 q14 q20 q15 q19 s2 s1 s0 s ehrnat_y1
ehrnat_z0 ehrnat_z1 q17 q16 b1 wlrnat_y_x b0
wlrnat_z_x q24 q18 1 1 1 1 s14 s20 s15 s19 s17
s16 s24 s18 s23 s22 s21 s13 s12 s11 s10 x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s2 [-] s) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] s1)
((s2 [-] s) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s2 [-] s) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s0)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] s0)
((s1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s0)^) @
concat_p1 (1 @ wlx2))
1 ))
(s2 [I] s9) (rlucancel 1 ))
(s1 [I] s8) (rlucancel 1 ))
(s0 [I] s7) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q13 [-] q11))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q13 [-] q11))
(q13 [-] q11) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q12 [-] q10))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q12 [-] q10))
(q12 [-] q10) (whiskerR 1 1 ) 1 ))
((whiskerR 1 q0)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q2 1 ))
(equiv_moveL_Mp
((whiskerR 1 q0)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q2 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q2 1 )
(whiskerR 1 q0) 1 ))
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z0) @ whiskerL 1 1 ))
((s [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s5 [-] s3))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s5 [-] s3))
(s5 [-] s3) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s6 [-] s4))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s6 [-] s4))
(s6 [-] s4) (whiskerR 1 1 ) 1 ))
(s [I] s6) (rlucancel 1 ))
(ehrnat_y1 [I] s5) (rlucancel 1 ))
(ehrnat_z0 [I] s4) (rlucancel 1 ))
(ehrnat_z1 [I] s3) (rlucancel 1 ))
q2 (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
1 (rlucancel 1 )
revert wly1 ehrnat_y1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly1 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx5 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz3 @ wrx2 = wrx1 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2 : a = b wlz0 : b = b wlz1 : a = a ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1
forall (wly1 : a = a) (ehrnat_y1 : 1 @ 1 = 1 @ wly1),
(fun (q : b = b) (s : 1 @ 1 = 1 @ q) =>
(fun (q0 : a = b) (s0 : wlx2 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wlx1 @ 1 = 1 @ q1) =>
forall wlrnat_z_x : wlz1 @ q0 = q1 @ wlz0,
(fun (q2 : a = b) (s2 : wlx0 @ 1 = 1 @ q2) =>
forall wlrnat_y_x : wly1 @ q1 = q2 @ q,
(fun (q3 : a = a) (s3 : wlz1 @ 1 = 1 @ q3) =>
(fun (q4 : b = b) (s4 : wlz0 @ 1 = 1 @ q4) =>
(fun (q5 : a = a) (s5 : wly1 @ 1 = 1 @ q5) =>
(fun (q6 : b = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : a = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : a = b) (s8 : q1 @ 1 = 1 @ q8) =>
(fun (q9 : a = b) (s9 : q2 @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (ehrnat_z1 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : 1 @ 1 = 1 @ q4)
(s11 : (ehrnat_z0 [I] s4) @ 1 = 1 @ q11) =>
(fun (q12 : 1 @ 1 = 1 @ q5)
(s12 : (ehrnat_y1 [I] s5) @ 1 = 1 @ q12) =>
(fun (q13 : 1 @ 1 = 1 @ q6) (s13 : (s [I] s6) @ 1 = 1 @ q13) =>
(fun (q14 : q @ wlz0 @ 1 = 1 @ (q6 @ q4))
(s14 : s6 [-] s4 = whiskerR 1 1 @ q14) =>
(fun (q15 : wly1 @ wlz1 @ 1 = 1 @ (q5 @ q3))
(s15 : s5 [-] s3 = whiskerR 1 1 @ q15) =>
(fun (q16 : 1 @ 1 @ 1 = 1 @ (wly1 @ wlz1))
(s16 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q @ wlz0))
(s17 : (s [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q17) =>
(fun (q18 : wly1 @ wlz1 @ q0 = q2 @ (q @ wlz0))
(s18 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q2 1 =
whiskerR 1 q0 @ q18) =>
(fun (q19 : 1 @ 1 @ 1 = 1 @ (q5 @ q3))
(s19 : q12 [-] q10 = whiskerR 1 1 @ q19) =>
(fun (q20 : 1 @ 1 @ 1 = 1 @ (q6 @ q4))
(s20 : q13 [-] q11 = whiskerR 1 1 @ q20) =>
(fun (q21 : wlx2 @ 1 = 1 @ q7)
(s21 : (s0 [I] s7) @ 1 = 1 @ q21) =>
(fun (q22 : wlx1 @ 1 = 1 @ q8)
(s22 : (s1 [I] s8) @ 1 = 1 @ q22) =>
(fun (q23 : wlx0 @ 1 = 1 @ q9)
(s23 : (s2 [I] s9) @ 1 = 1 @ q23) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s24 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s24 1 @ (ehrnat_z1 [-] s0) =
(s1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s24 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s24 1 @ (ehrnat_y1 [-] s1) =
(s2 [-] s) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q24 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s24 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q24) =>
P b a b a b wlx0 q9 q2 wlx1 q8 q1 wlx2 q7 q0 q q6
1 wly1 q5 1 wlz0 q4 1 wlz1 q3 1
(q @ wlz0) (1 @ 1 ) (wly1 @ wlz1)
(1 @ 1 ) q23 s9 q22 s8 q21 s7 s6 q13 s5 q12 s4
q11 s3 q10 q14 q20 q15 q19 s2 s1 s0 s ehrnat_y1
ehrnat_z0 ehrnat_z1 q17 q16 b1 wlrnat_y_x b0
wlrnat_z_x q24 q18 1 1 1 1 s14 s20 s15 s19 s17
s16 s24 s18 s23 s22 s21 s13 s12 s11 s10 x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s2 [-] s) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s1)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (ehrnat_y1 [-] s1)
((s2 [-] s) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s2 [-] s) @ whiskerL 1 wlrnat_y_x^ @
(ehrnat_y1 [-] s1)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s0)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] s0)
((s1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s0)^) @
concat_p1 (1 @ wlx2))
1 ))
(s2 [I] s9) (rlucancel 1 ))
(s1 [I] s8) (rlucancel 1 ))
(s0 [I] s7) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q13 [-] q11))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q13 [-] q11))
(q13 [-] q11) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q12 [-] q10))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q12 [-] q10))
(q12 [-] q10) (whiskerR 1 1 ) 1 ))
((whiskerR 1 q0)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q2 1 ))
(equiv_moveL_Mp
((whiskerR 1 q0)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q2 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q2 1 )
(whiskerR 1 q0) 1 ))
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z0) @ whiskerL 1 1 ))
((s [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 ))
((ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s5 [-] s3))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s5 [-] s3))
(s5 [-] s3) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s6 [-] s4))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s6 [-] s4))
(s6 [-] s4) (whiskerR 1 1 ) 1 ))
(s [I] s6) (rlucancel 1 ))
(ehrnat_y1 [I] s5) (rlucancel 1 ))
(ehrnat_z0 [I] s4) (rlucancel 1 ))
(ehrnat_z1 [I] s3) (rlucancel 1 ))
q2 (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wly1 (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly1 y1 wry1 : a = c)
(wlz2 z0 wrz0 : d = f) (wlz3 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz2 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz3 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx5 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z2 : wrz0 @ 1 = 1 @ wlz2) (ehrnat_z3 : wrz1 @ 1 = 1 @ wlz3)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz3 @ wrx2 = wrx1 @ wlz2)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz2 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz3 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z3) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z2 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z3 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z3 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z2) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2 : a = b wlz0 : b = b wlz1 : a = a ehrnat_z0 : 1 @ 1 = 1 @ wlz0ehrnat_z1 : 1 @ 1 = 1 @ wlz1
(fun (q : a = a) (s : 1 @ 1 = 1 @ q) =>
(fun (q0 : b = b) (s0 : 1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wlx2 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wlx1 @ 1 = 1 @ q2) =>
forall wlrnat_z_x : wlz1 @ q1 = q2 @ wlz0,
(fun (q3 : a = b) (s3 : wlx0 @ 1 = 1 @ q3) =>
forall wlrnat_y_x : q @ q2 = q3 @ q0,
(fun (q4 : a = a) (s4 : wlz1 @ 1 = 1 @ q4) =>
(fun (q5 : b = b) (s5 : wlz0 @ 1 = 1 @ q5) =>
(fun (q6 : a = a) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : b = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : a = b) (s8 : q1 @ 1 = 1 @ q8) =>
(fun (q9 : a = b) (s9 : q2 @ 1 = 1 @ q9) =>
(fun (q10 : a = b) (s10 : q3 @ 1 = 1 @ q10) =>
(fun (q11 : 1 @ 1 = 1 @ q4)
(s11 : (ehrnat_z1 [I] s4) @ 1 = 1 @ q11) =>
(fun (q12 : 1 @ 1 = 1 @ q5)
(s12 : (ehrnat_z0 [I] s5) @ 1 = 1 @ q12) =>
(fun (q13 : 1 @ 1 = 1 @ q6) (s13 : (s [I] s6) @ 1 = 1 @ q13) =>
(fun (q14 : 1 @ 1 = 1 @ q7) (s14 : (s0 [I] s7) @ 1 = 1 @ q14) =>
(fun (q15 : q0 @ wlz0 @ 1 = 1 @ (q7 @ q5))
(s15 : s7 [-] s5 = whiskerR 1 1 @ q15) =>
(fun (q16 : q @ wlz1 @ 1 = 1 @ (q6 @ q4))
(s16 : s6 [-] s4 = whiskerR 1 1 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q @ wlz1))
(s17 : (s [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q17) =>
(fun (q18 : 1 @ 1 @ 1 = 1 @ (q0 @ wlz0))
(s18 : (s0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q18) =>
(fun (q19 : q @ wlz1 @ q1 = q3 @ (q0 @ wlz0))
(s19 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q3 1 =
whiskerR 1 q1 @ q19) =>
(fun (q20 : 1 @ 1 @ 1 = 1 @ (q6 @ q4))
(s20 : q13 [-] q11 = whiskerR 1 1 @ q20) =>
(fun (q21 : 1 @ 1 @ 1 = 1 @ (q7 @ q5))
(s21 : q14 [-] q12 = whiskerR 1 1 @ q21) =>
(fun (q22 : wlx2 @ 1 = 1 @ q8)
(s22 : (s1 [I] s8) @ 1 = 1 @ q22) =>
(fun (q23 : wlx1 @ 1 = 1 @ q9)
(s23 : (s2 [I] s9) @ 1 = 1 @ q23) =>
(fun (q24 : wlx0 @ 1 = 1 @ q10)
(s24 : (s3 [I] s10) @ 1 = 1 @ q24) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s25 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s25 1 @ (ehrnat_z1 [-] s1) =
(s2 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s25 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s25 1 @ (s [-] s2) =
(s3 [-] s0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q25 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s25 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q25) =>
P b a b a b wlx0 q10 q3 wlx1 q9 q2 wlx2 q8 q1 q0
q7 1 q q6 1 wlz0 q5 1 wlz1 q4 1
(q0 @ wlz0) (1 @ 1 )
(q @ wlz1) (1 @ 1 ) q24 s10 q23 s9 q22 s8 s7
q14 s6 q13 s5 q12 s4 q11 q15 q21 q16 q20 s3 s2
s1 s0 s ehrnat_z0 ehrnat_z1 q18 q17 b1
wlrnat_y_x b0 wlrnat_z_x q25 q19 1 1 1 1 s15
s21 s16 s20 s18 s17 s25 s19 s24 s23 s22 s14
s13 s12 s11 x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s3 [-] s0) @ whiskerL 1 wlrnat_y_x^ @
(s [-] s2)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (s [-] s2)
((s3 [-] s0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s3 [-] s0) @ whiskerL 1 wlrnat_y_x^ @
(s [-] s2)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s2 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s1)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] s1)
((s2 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s2 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s1)^) @
concat_p1 (1 @ wlx2))
1 ))
(s3 [I] s10) (rlucancel 1 ))
(s2 [I] s9) (rlucancel 1 ))
(s1 [I] s8) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q14 [-] q12))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q14 [-] q12))
(q14 [-] q12) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q13 [-] q11))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q13 [-] q11))
(q13 [-] q11) (whiskerR 1 1 ) 1 ))
((whiskerR 1 q1)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q3 1 ))
(equiv_moveL_Mp
((whiskerR 1 q1)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q3 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q3 1 )
(whiskerR 1 q1) 1 ))
((whiskerR 1 1 )^ @ ((s0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((s0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((s0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z1) @ whiskerL 1 1 ))
((s [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s6 [-] s4))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s6 [-] s4))
(s6 [-] s4) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s7 [-] s5))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s7 [-] s5))
(s7 [-] s5) (whiskerR 1 1 ) 1 ))
(s0 [I] s7) (rlucancel 1 ))
(s [I] s6) (rlucancel 1 ))
(ehrnat_z0 [I] s5) (rlucancel 1 ))
(ehrnat_z1 [I] s4) (rlucancel 1 ))
q3 (rlucancel 1 ))
q2 (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 )
revert wlz0 ehrnat_z0.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz2 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz2 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx5 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z2 : wrz1 @ 1 = 1 @ wlz2)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz2 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz2 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z2 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z2 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2 : a = b wlz1 : a = a ehrnat_z1 : 1 @ 1 = 1 @ wlz1
forall (wlz0 : b = b) (ehrnat_z0 : 1 @ 1 = 1 @ wlz0),
(fun (q : a = a) (s : 1 @ 1 = 1 @ q) =>
(fun (q0 : b = b) (s0 : 1 @ 1 = 1 @ q0) =>
(fun (q1 : a = b) (s1 : wlx2 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wlx1 @ 1 = 1 @ q2) =>
forall wlrnat_z_x : wlz1 @ q1 = q2 @ wlz0,
(fun (q3 : a = b) (s3 : wlx0 @ 1 = 1 @ q3) =>
forall wlrnat_y_x : q @ q2 = q3 @ q0,
(fun (q4 : a = a) (s4 : wlz1 @ 1 = 1 @ q4) =>
(fun (q5 : b = b) (s5 : wlz0 @ 1 = 1 @ q5) =>
(fun (q6 : a = a) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : b = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : a = b) (s8 : q1 @ 1 = 1 @ q8) =>
(fun (q9 : a = b) (s9 : q2 @ 1 = 1 @ q9) =>
(fun (q10 : a = b) (s10 : q3 @ 1 = 1 @ q10) =>
(fun (q11 : 1 @ 1 = 1 @ q4)
(s11 : (ehrnat_z1 [I] s4) @ 1 = 1 @ q11) =>
(fun (q12 : 1 @ 1 = 1 @ q5)
(s12 : (ehrnat_z0 [I] s5) @ 1 = 1 @ q12) =>
(fun (q13 : 1 @ 1 = 1 @ q6) (s13 : (s [I] s6) @ 1 = 1 @ q13) =>
(fun (q14 : 1 @ 1 = 1 @ q7) (s14 : (s0 [I] s7) @ 1 = 1 @ q14) =>
(fun (q15 : q0 @ wlz0 @ 1 = 1 @ (q7 @ q5))
(s15 : s7 [-] s5 = whiskerR 1 1 @ q15) =>
(fun (q16 : q @ wlz1 @ 1 = 1 @ (q6 @ q4))
(s16 : s6 [-] s4 = whiskerR 1 1 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q @ wlz1))
(s17 : (s [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q17) =>
(fun (q18 : 1 @ 1 @ 1 = 1 @ (q0 @ wlz0))
(s18 : (s0 [-] ehrnat_z0) @ whiskerL 1 1 =
whiskerR 1 1 @ q18) =>
(fun (q19 : q @ wlz1 @ q1 = q3 @ (q0 @ wlz0))
(s19 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q3 1 =
whiskerR 1 q1 @ q19) =>
(fun (q20 : 1 @ 1 @ 1 = 1 @ (q6 @ q4))
(s20 : q13 [-] q11 = whiskerR 1 1 @ q20) =>
(fun (q21 : 1 @ 1 @ 1 = 1 @ (q7 @ q5))
(s21 : q14 [-] q12 = whiskerR 1 1 @ q21) =>
(fun (q22 : wlx2 @ 1 = 1 @ q8)
(s22 : (s1 [I] s8) @ 1 = 1 @ q22) =>
(fun (q23 : wlx1 @ 1 = 1 @ q9)
(s23 : (s2 [I] s9) @ 1 = 1 @ q23) =>
(fun (q24 : wlx0 @ 1 = 1 @ q10)
(s24 : (s3 [I] s10) @ 1 = 1 @ q24) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s25 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s25 1 @ (ehrnat_z1 [-] s1) =
(s2 [-] ehrnat_z0) @
whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s25 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s25 1 @ (s [-] s2) =
(s3 [-] s0) @ whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q25 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s25 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q25) =>
P b a b a b wlx0 q10 q3 wlx1 q9 q2 wlx2 q8 q1 q0
q7 1 q q6 1 wlz0 q5 1 wlz1 q4 1
(q0 @ wlz0) (1 @ 1 )
(q @ wlz1) (1 @ 1 ) q24 s10 q23 s9 q22 s8 s7
q14 s6 q13 s5 q12 s4 q11 q15 q21 q16 q20 s3 s2
s1 s0 s ehrnat_z0 ehrnat_z1 q18 q17 b1
wlrnat_y_x b0 wlrnat_z_x q25 q19 1 1 1 1 s15
s21 s16 s20 s18 s17 s25 s19 s24 s23 s22 s14
s13 s12 s11 x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s3 [-] s0) @ whiskerL 1 wlrnat_y_x^ @
(s [-] s2)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (s [-] s2)
((s3 [-] s0) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s3 [-] s0) @ whiskerL 1 wlrnat_y_x^ @
(s [-] s2)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s2 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s1)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] s1)
((s2 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s2 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s1)^) @
concat_p1 (1 @ wlx2))
1 ))
(s3 [I] s10) (rlucancel 1 ))
(s2 [I] s9) (rlucancel 1 ))
(s1 [I] s8) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q14 [-] q12))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q14 [-] q12))
(q14 [-] q12) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q13 [-] q11))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q13 [-] q11))
(q13 [-] q11) (whiskerR 1 1 ) 1 ))
((whiskerR 1 q1)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q3 1 ))
(equiv_moveL_Mp
((whiskerR 1 q1)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q3 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q3 1 )
(whiskerR 1 q1) 1 ))
((whiskerR 1 1 )^ @ ((s0 [-] ehrnat_z0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((s0 [-] ehrnat_z0) @ whiskerL 1 1 ))
((s0 [-] ehrnat_z0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((s [-] ehrnat_z1) @ whiskerL 1 1 ))
((s [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s6 [-] s4))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s6 [-] s4))
(s6 [-] s4) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s7 [-] s5))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s7 [-] s5))
(s7 [-] s5) (whiskerR 1 1 ) 1 ))
(s0 [I] s7) (rlucancel 1 ))
(s [I] s6) (rlucancel 1 ))
(ehrnat_z0 [I] s5) (rlucancel 1 ))
(ehrnat_z1 [I] s4) (rlucancel 1 ))
q3 (rlucancel 1 ))
q2 (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wlz0 (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz2 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz2 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx5 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z2 : wrz1 @ 1 = 1 @ wlz2)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz2 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz2 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z2) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z2 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z2 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2 : a = b wlz1 : a = a ehrnat_z1 : 1 @ 1 = 1 @ wlz1
(fun (q : b = b) (s : 1 @ 1 = 1 @ q) =>
(fun (q0 : a = a) (s0 : 1 @ 1 = 1 @ q0) =>
(fun (q1 : b = b) (s1 : 1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wlx2 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wlx1 @ 1 = 1 @ q3) =>
forall wlrnat_z_x : wlz1 @ q2 = q3 @ q,
(fun (q4 : a = b) (s4 : wlx0 @ 1 = 1 @ q4) =>
forall wlrnat_y_x : q0 @ q3 = q4 @ q1,
(fun (q5 : a = a) (s5 : wlz1 @ 1 = 1 @ q5) =>
(fun (q6 : b = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : a = a) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : b = b) (s8 : q1 @ 1 = 1 @ q8) =>
(fun (q9 : a = b) (s9 : q2 @ 1 = 1 @ q9) =>
(fun (q10 : a = b) (s10 : q3 @ 1 = 1 @ q10) =>
(fun (q11 : a = b) (s11 : q4 @ 1 = 1 @ q11) =>
(fun (q12 : 1 @ 1 = 1 @ q5)
(s12 : (ehrnat_z1 [I] s5) @ 1 = 1 @ q12) =>
(fun (q13 : 1 @ 1 = 1 @ q6) (s13 : (s [I] s6) @ 1 = 1 @ q13) =>
(fun (q14 : 1 @ 1 = 1 @ q7) (s14 : (s0 [I] s7) @ 1 = 1 @ q14) =>
(fun (q15 : 1 @ 1 = 1 @ q8) (s15 : (s1 [I] s8) @ 1 = 1 @ q15) =>
(fun (q16 : q1 @ q @ 1 = 1 @ (q8 @ q6))
(s16 : s8 [-] s6 = whiskerR 1 1 @ q16) =>
(fun (q17 : q0 @ wlz1 @ 1 = 1 @ (q7 @ q5))
(s17 : s7 [-] s5 = whiskerR 1 1 @ q17) =>
(fun (q18 : 1 @ 1 @ 1 = 1 @ (q0 @ wlz1))
(s18 : (s0 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q18) =>
(fun (q19 : 1 @ 1 @ 1 = 1 @ (q1 @ q))
(s19 : (s1 [-] s) @ whiskerL 1 1 = whiskerR 1 1 @ q19) =>
(fun (q20 : q0 @ wlz1 @ q2 = q4 @ (q1 @ q))
(s20 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q4 1 =
whiskerR 1 q2 @ q20) =>
(fun (q21 : 1 @ 1 @ 1 = 1 @ (q7 @ q5))
(s21 : q14 [-] q12 = whiskerR 1 1 @ q21) =>
(fun (q22 : 1 @ 1 @ 1 = 1 @ (q8 @ q6))
(s22 : q15 [-] q13 = whiskerR 1 1 @ q22) =>
(fun (q23 : wlx2 @ 1 = 1 @ q9)
(s23 : (s2 [I] s9) @ 1 = 1 @ q23) =>
(fun (q24 : wlx1 @ 1 = 1 @ q10)
(s24 : (s3 [I] s10) @ 1 = 1 @ q24) =>
(fun (q25 : wlx0 @ 1 = 1 @ q11)
(s25 : (s4 [I] s11) @ 1 = 1 @ q25) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s26 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s26 1 @ (ehrnat_z1 [-] s2) =
(s3 [-] s) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s26 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s26 1 @ (s0 [-] s3) =
(s4 [-] s1) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q26 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s26 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q26) =>
P b a b a b wlx0 q11 q4 wlx1 q10 q3 wlx2 q9 q2
q1 q8 1 q0 q7 1 q q6 1 wlz1 q5 1
(q1 @ q) (1 @ 1 ) (q0 @ wlz1)
(1 @ 1 ) q25 s11 q24 s10 q23 s9 s8 q15 s7 q14
s6 q13 s5 q12 q16 q22 q17 q21 s4 s3 s2 s1 s0
s ehrnat_z1 q19 q18 b1 wlrnat_y_x b0
wlrnat_z_x q26 q20 1 1 1 1 s16 s22 s17 s21
s19 s18 s26 s20 s25 s24 s23 s15 s14 s13 s12
x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s4 [-] s1) @ whiskerL 1 wlrnat_y_x^ @
(s0 [-] s3)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (s0 [-] s3)
((s4 [-] s1) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s4 [-] s1) @ whiskerL 1 wlrnat_y_x^ @
(s0 [-] s3)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s3 [-] s) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] s2)
((s3 [-] s) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s3 [-] s) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s2)^) @
concat_p1 (1 @ wlx2))
1 ))
(s4 [I] s11) (rlucancel 1 ))
(s3 [I] s10) (rlucancel 1 ))
(s2 [I] s9) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q15 [-] q13))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q15 [-] q13))
(q15 [-] q13) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q14 [-] q12))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q14 [-] q12))
(q14 [-] q12) (whiskerR 1 1 ) 1 ))
((whiskerR 1 q2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q4 1 ))
(equiv_moveL_Mp
((whiskerR 1 q2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q4 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q4 1 )
(whiskerR 1 q2) 1 ))
((whiskerR 1 1 )^ @ ((s1 [-] s) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((s1 [-] s) @ whiskerL 1 1 ))
((s1 [-] s) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((s0 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((s0 [-] ehrnat_z1) @ whiskerL 1 1 ))
((s0 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s7 [-] s5))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s7 [-] s5))
(s7 [-] s5) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s8 [-] s6))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s8 [-] s6))
(s8 [-] s6) (whiskerR 1 1 ) 1 ))
(s1 [I] s8) (rlucancel 1 ))
(s0 [I] s7) (rlucancel 1 ))
(s [I] s6) (rlucancel 1 ))
(ehrnat_z1 [I] s5) (rlucancel 1 ))
q4 (rlucancel 1 ))
q3 (rlucancel 1 ))
q2 (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 )
revert wlz1 ehrnat_z1.X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx5 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2 : a = b
forall (wlz1 : a = a) (ehrnat_z1 : 1 @ 1 = 1 @ wlz1),
(fun (q : b = b) (s : 1 @ 1 = 1 @ q) =>
(fun (q0 : a = a) (s0 : 1 @ 1 = 1 @ q0) =>
(fun (q1 : b = b) (s1 : 1 @ 1 = 1 @ q1) =>
(fun (q2 : a = b) (s2 : wlx2 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wlx1 @ 1 = 1 @ q3) =>
forall wlrnat_z_x : wlz1 @ q2 = q3 @ q,
(fun (q4 : a = b) (s4 : wlx0 @ 1 = 1 @ q4) =>
forall wlrnat_y_x : q0 @ q3 = q4 @ q1,
(fun (q5 : a = a) (s5 : wlz1 @ 1 = 1 @ q5) =>
(fun (q6 : b = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : a = a) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : b = b) (s8 : q1 @ 1 = 1 @ q8) =>
(fun (q9 : a = b) (s9 : q2 @ 1 = 1 @ q9) =>
(fun (q10 : a = b) (s10 : q3 @ 1 = 1 @ q10) =>
(fun (q11 : a = b) (s11 : q4 @ 1 = 1 @ q11) =>
(fun (q12 : 1 @ 1 = 1 @ q5)
(s12 : (ehrnat_z1 [I] s5) @ 1 = 1 @ q12) =>
(fun (q13 : 1 @ 1 = 1 @ q6) (s13 : (s [I] s6) @ 1 = 1 @ q13) =>
(fun (q14 : 1 @ 1 = 1 @ q7) (s14 : (s0 [I] s7) @ 1 = 1 @ q14) =>
(fun (q15 : 1 @ 1 = 1 @ q8) (s15 : (s1 [I] s8) @ 1 = 1 @ q15) =>
(fun (q16 : q1 @ q @ 1 = 1 @ (q8 @ q6))
(s16 : s8 [-] s6 = whiskerR 1 1 @ q16) =>
(fun (q17 : q0 @ wlz1 @ 1 = 1 @ (q7 @ q5))
(s17 : s7 [-] s5 = whiskerR 1 1 @ q17) =>
(fun (q18 : 1 @ 1 @ 1 = 1 @ (q0 @ wlz1))
(s18 : (s0 [-] ehrnat_z1) @ whiskerL 1 1 =
whiskerR 1 1 @ q18) =>
(fun (q19 : 1 @ 1 @ 1 = 1 @ (q1 @ q))
(s19 : (s1 [-] s) @ whiskerL 1 1 = whiskerR 1 1 @ q19) =>
(fun (q20 : q0 @ wlz1 @ q2 = q4 @ (q1 @ q))
(s20 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q4 1 =
whiskerR 1 q2 @ q20) =>
(fun (q21 : 1 @ 1 @ 1 = 1 @ (q7 @ q5))
(s21 : q14 [-] q12 = whiskerR 1 1 @ q21) =>
(fun (q22 : 1 @ 1 @ 1 = 1 @ (q8 @ q6))
(s22 : q15 [-] q13 = whiskerR 1 1 @ q22) =>
(fun (q23 : wlx2 @ 1 = 1 @ q9)
(s23 : (s2 [I] s9) @ 1 = 1 @ q23) =>
(fun (q24 : wlx1 @ 1 = 1 @ q10)
(s24 : (s3 [I] s10) @ 1 = 1 @ q24) =>
(fun (q25 : wlx0 @ 1 = 1 @ q11)
(s25 : (s4 [I] s11) @ 1 = 1 @ q25) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s26 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s26 1 @ (ehrnat_z1 [-] s2) =
(s3 [-] s) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s26 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s26 1 @ (s0 [-] s3) =
(s4 [-] s1) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q26 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s26 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q26) =>
P b a b a b wlx0 q11 q4 wlx1 q10 q3 wlx2 q9 q2
q1 q8 1 q0 q7 1 q q6 1 wlz1 q5 1
(q1 @ q) (1 @ 1 ) (q0 @ wlz1)
(1 @ 1 ) q25 s11 q24 s10 q23 s9 s8 q15 s7 q14
s6 q13 s5 q12 q16 q22 q17 q21 s4 s3 s2 s1 s0
s ehrnat_z1 q19 q18 b1 wlrnat_y_x b0
wlrnat_z_x q26 q20 1 1 1 1 s16 s22 s17 s21
s19 s18 s26 s20 s25 s24 s23 s15 s14 s13 s12
x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s4 [-] s1) @ whiskerL 1 wlrnat_y_x^ @
(s0 [-] s3)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (s0 [-] s3)
((s4 [-] s1) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s4 [-] s1) @ whiskerL 1 wlrnat_y_x^ @
(s0 [-] s3)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s3 [-] s) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s2)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (ehrnat_z1 [-] s2)
((s3 [-] s) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s3 [-] s) @ whiskerL 1 wlrnat_z_x^ @
(ehrnat_z1 [-] s2)^) @
concat_p1 (1 @ wlx2))
1 ))
(s4 [I] s11) (rlucancel 1 ))
(s3 [I] s10) (rlucancel 1 ))
(s2 [I] s9) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q15 [-] q13))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q15 [-] q13))
(q15 [-] q13) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q14 [-] q12))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q14 [-] q12))
(q14 [-] q12) (whiskerR 1 1 ) 1 ))
((whiskerR 1 q2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q4 1 ))
(equiv_moveL_Mp
((whiskerR 1 q2)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q4 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q4 1 )
(whiskerR 1 q2) 1 ))
((whiskerR 1 1 )^ @ ((s1 [-] s) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((s1 [-] s) @ whiskerL 1 1 ))
((s1 [-] s) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((s0 [-] ehrnat_z1) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((s0 [-] ehrnat_z1) @ whiskerL 1 1 ))
((s0 [-] ehrnat_z1) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s7 [-] s5))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s7 [-] s5))
(s7 [-] s5) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s8 [-] s6))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s8 [-] s6))
(s8 [-] s6) (whiskerR 1 1 ) 1 ))
(s1 [I] s8) (rlucancel 1 ))
(s0 [I] s7) (rlucancel 1 ))
(s [I] s6) (rlucancel 1 ))
(ehrnat_z1 [I] s5) (rlucancel 1 ))
q4 (rlucancel 1 ))
q3 (rlucancel 1 ))
q2 (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wlz1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 )
snapply equiv_path_ind_rlucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx3 x0 wrx0 : a = b0) (wlx4 x1 wrx1 : c = d)
(wlx5 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx3 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx4 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx5 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx3 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx4 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx5 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx3 @ wry0 = wry1 @ wlx4)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx4 @ wrz0 = wrz1 @ wlx5)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx3 @ wryz0 = wryz1 @ wlx5)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx5 =
whiskerL wlx3 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx1, wlx2 : a = b
(fun (q : a = a) (s : 1 @ 1 = 1 @ q) =>
(fun (q0 : b = b) (s0 : 1 @ 1 = 1 @ q0) =>
(fun (q1 : a = a) (s1 : 1 @ 1 = 1 @ q1) =>
(fun (q2 : b = b) (s2 : 1 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wlx2 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wlx1 @ 1 = 1 @ q4) =>
forall wlrnat_z_x : q @ q3 = q4 @ q0,
(fun (q5 : a = b) (s5 : wlx0 @ 1 = 1 @ q5) =>
forall wlrnat_y_x : q1 @ q4 = q5 @ q2,
(fun (q6 : a = a) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : b = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : a = a) (s8 : q1 @ 1 = 1 @ q8) =>
(fun (q9 : b = b) (s9 : q2 @ 1 = 1 @ q9) =>
(fun (q10 : a = b) (s10 : q3 @ 1 = 1 @ q10) =>
(fun (q11 : a = b) (s11 : q4 @ 1 = 1 @ q11) =>
(fun (q12 : a = b) (s12 : q5 @ 1 = 1 @ q12) =>
(fun (q13 : 1 @ 1 = 1 @ q6) (s13 : (s [I] s6) @ 1 = 1 @ q13) =>
(fun (q14 : 1 @ 1 = 1 @ q7) (s14 : (s0 [I] s7) @ 1 = 1 @ q14) =>
(fun (q15 : 1 @ 1 = 1 @ q8) (s15 : (s1 [I] s8) @ 1 = 1 @ q15) =>
(fun (q16 : 1 @ 1 = 1 @ q9)
(s16 : (s2 [I] s9) @ 1 = 1 @ q16) =>
(fun (q17 : q2 @ q0 @ 1 = 1 @ (q9 @ q7))
(s17 : s9 [-] s7 = whiskerR 1 1 @ q17) =>
(fun (q18 : q1 @ q @ 1 = 1 @ (q8 @ q6))
(s18 : s8 [-] s6 = whiskerR 1 1 @ q18) =>
(fun (q19 : 1 @ 1 @ 1 = 1 @ (q1 @ q))
(s19 : (s1 [-] s) @ whiskerL 1 1 = whiskerR 1 1 @ q19) =>
(fun (q20 : 1 @ 1 @ 1 = 1 @ (q2 @ q0))
(s20 : (s2 [-] s0) @ whiskerL 1 1 =
whiskerR 1 1 @ q20) =>
(fun (q21 : q1 @ q @ q3 = q5 @ (q2 @ q0))
(s21 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q5 1 =
whiskerR 1 q3 @ q21) =>
(fun (q22 : 1 @ 1 @ 1 = 1 @ (q8 @ q6))
(s22 : q15 [-] q13 = whiskerR 1 1 @ q22) =>
(fun (q23 : 1 @ 1 @ 1 = 1 @ (q9 @ q7))
(s23 : q16 [-] q14 = whiskerR 1 1 @ q23) =>
(fun (q24 : wlx2 @ 1 = 1 @ q10)
(s24 : (s3 [I] s10) @ 1 = 1 @ q24) =>
(fun (q25 : wlx1 @ 1 = 1 @ q11)
(s25 : (s4 [I] s11) @ 1 = 1 @ q25) =>
(fun (q26 : wlx0 @ 1 = 1 @ q12)
(s26 : (s5 [I] s12) @ 1 = 1 @ q26) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s27 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s27 1 @ (s [-] s3) =
(s4 [-] s0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s27 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s27 1 @ (s1 [-] s4) =
(s5 [-] s2) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q27 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s27 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q27) =>
P b a b a b wlx0 q12 q5 wlx1 q11 q4 wlx2 q10
q3 q2 q9 1 q1 q8 1 q0 q7 1 q q6 1
(q2 @ q0) (1 @ 1 )
(q1 @ q) (1 @ 1 ) q26 s12 q25 s11 q24 s10 s9
q16 s8 q15 s7 q14 s6 q13 q17 q23 q18 q22 s5
s4 s3 s2 s1 s0 s q20 q19 b1 wlrnat_y_x b0
wlrnat_z_x q27 q21 1 1 1 1 s17 s23 s18 s22
s20 s19 s27 s21 s26 s25 s24 s16 s15 s14 s13
x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s5 [-] s2) @ whiskerL 1 wlrnat_y_x^ @
(s1 [-] s4)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (s1 [-] s4)
((s5 [-] s2) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s5 [-] s2) @ whiskerL 1 wlrnat_y_x^ @
(s1 [-] s4)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s4 [-] s0) @ whiskerL 1 wlrnat_z_x^ @
(s [-] s3)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (s [-] s3)
((s4 [-] s0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s4 [-] s0) @ whiskerL 1 wlrnat_z_x^ @
(s [-] s3)^) @
concat_p1 (1 @ wlx2))
1 ))
(s5 [I] s12) (rlucancel 1 ))
(s4 [I] s11) (rlucancel 1 ))
(s3 [I] s10) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q16 [-] q14))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q16 [-] q14))
(q16 [-] q14) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q15 [-] q13))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q15 [-] q13))
(q15 [-] q13) (whiskerR 1 1 ) 1 ))
((whiskerR 1 q3)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q5 1 ))
(equiv_moveL_Mp
((whiskerR 1 q3)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q5 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q5 1 )
(whiskerR 1 q3) 1 ))
((whiskerR 1 1 )^ @ ((s2 [-] s0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((s2 [-] s0) @ whiskerL 1 1 ))
((s2 [-] s0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((s1 [-] s) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((s1 [-] s) @ whiskerL 1 1 ))
((s1 [-] s) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s8 [-] s6))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s8 [-] s6))
(s8 [-] s6) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s9 [-] s7))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s9 [-] s7))
(s9 [-] s7) (whiskerR 1 1 ) 1 ))
(s2 [I] s9) (rlucancel 1 ))
(s1 [I] s8) (rlucancel 1 ))
(s0 [I] s7) (rlucancel 1 ))
(s [I] s6) (rlucancel 1 ))
q5 (rlucancel 1 ))
q4 (rlucancel 1 ))
q3 (rlucancel 1 ))
q2 (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 )
revert wlx1.X : Type a : X P : forall (b0 c d e f : X) (wlx1 x0 wrx0 : a = b0) (wlx3 x1 wrx1 : c = d)
(wlx4 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx1 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx3 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx4 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx1 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx3 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx4 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx1 @ wry0 = wry1 @ wlx3)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx3 @ wrz0 = wrz1 @ wlx4)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx1 @ wryz0 = wryz1 @ wlx4)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx4 =
whiskerL wlx1 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx2 : a = b
forall wlx1 : a = b,
(fun (q : a = a) (s : 1 @ 1 = 1 @ q) =>
(fun (q0 : b = b) (s0 : 1 @ 1 = 1 @ q0) =>
(fun (q1 : a = a) (s1 : 1 @ 1 = 1 @ q1) =>
(fun (q2 : b = b) (s2 : 1 @ 1 = 1 @ q2) =>
(fun (q3 : a = b) (s3 : wlx2 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wlx1 @ 1 = 1 @ q4) =>
forall wlrnat_z_x : q @ q3 = q4 @ q0,
(fun (q5 : a = b) (s5 : wlx0 @ 1 = 1 @ q5) =>
forall wlrnat_y_x : q1 @ q4 = q5 @ q2,
(fun (q6 : a = a) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : b = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : a = a) (s8 : q1 @ 1 = 1 @ q8) =>
(fun (q9 : b = b) (s9 : q2 @ 1 = 1 @ q9) =>
(fun (q10 : a = b) (s10 : q3 @ 1 = 1 @ q10) =>
(fun (q11 : a = b) (s11 : q4 @ 1 = 1 @ q11) =>
(fun (q12 : a = b) (s12 : q5 @ 1 = 1 @ q12) =>
(fun (q13 : 1 @ 1 = 1 @ q6) (s13 : (s [I] s6) @ 1 = 1 @ q13) =>
(fun (q14 : 1 @ 1 = 1 @ q7) (s14 : (s0 [I] s7) @ 1 = 1 @ q14) =>
(fun (q15 : 1 @ 1 = 1 @ q8) (s15 : (s1 [I] s8) @ 1 = 1 @ q15) =>
(fun (q16 : 1 @ 1 = 1 @ q9)
(s16 : (s2 [I] s9) @ 1 = 1 @ q16) =>
(fun (q17 : q2 @ q0 @ 1 = 1 @ (q9 @ q7))
(s17 : s9 [-] s7 = whiskerR 1 1 @ q17) =>
(fun (q18 : q1 @ q @ 1 = 1 @ (q8 @ q6))
(s18 : s8 [-] s6 = whiskerR 1 1 @ q18) =>
(fun (q19 : 1 @ 1 @ 1 = 1 @ (q1 @ q))
(s19 : (s1 [-] s) @ whiskerL 1 1 = whiskerR 1 1 @ q19) =>
(fun (q20 : 1 @ 1 @ 1 = 1 @ (q2 @ q0))
(s20 : (s2 [-] s0) @ whiskerL 1 1 =
whiskerR 1 1 @ q20) =>
(fun (q21 : q1 @ q @ q3 = q5 @ (q2 @ q0))
(s21 : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q5 1 =
whiskerR 1 q3 @ q21) =>
(fun (q22 : 1 @ 1 @ 1 = 1 @ (q8 @ q6))
(s22 : q15 [-] q13 = whiskerR 1 1 @ q22) =>
(fun (q23 : 1 @ 1 @ 1 = 1 @ (q9 @ q7))
(s23 : q16 [-] q14 = whiskerR 1 1 @ q23) =>
(fun (q24 : wlx2 @ 1 = 1 @ q10)
(s24 : (s3 [I] s10) @ 1 = 1 @ q24) =>
(fun (q25 : wlx1 @ 1 = 1 @ q11)
(s25 : (s4 [I] s11) @ 1 = 1 @ q25) =>
(fun (q26 : wlx0 @ 1 = 1 @ q12)
(s26 : (s5 [I] s12) @ 1 = 1 @ q26) =>
(fun (b0 : wlx1 @ 1 = 1 @ wlx2)
(x : (fun s27 : wlx1 @ 1 = 1 @ wlx2 =>
whiskerR s27 1 @ (s [-] s3) =
(s4 [-] s0) @ whiskerL 1 wlrnat_z_x^) b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ wlx1)
(x0 : (fun s27 : wlx0 @ 1 = 1 @ wlx1 =>
whiskerR s27 1 @ (s1 [-] s4) =
(s5 [-] s2) @ whiskerL 1 wlrnat_y_x^)
b1) =>
(fun (q27 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s27 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q27) =>
P b a b a b wlx0 q12 q5 wlx1 q11 q4 wlx2 q10
q3 q2 q9 1 q1 q8 1 q0 q7 1 q q6 1
(q2 @ q0) (1 @ 1 )
(q1 @ q) (1 @ 1 ) q26 s12 q25 s11 q24 s10 s9
q16 s8 q15 s7 q14 s6 q13 q17 q23 q18 q22 s5
s4 s3 s2 s1 s0 s q20 q19 b1 wlrnat_y_x b0
wlrnat_z_x q27 q21 1 1 1 1 s17 s23 s18 s22
s20 s19 s27 s21 s26 s25 s24 s16 s15 s14 s13
x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s5 [-] s2) @ whiskerL 1 wlrnat_y_x^ @
(s1 [-] s4)^) @
concat_p1 (1 @ wlx1))
(equiv_helper (s1 [-] s4)
((s5 [-] s2) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s5 [-] s2) @ whiskerL 1 wlrnat_y_x^ @
(s1 [-] s4)^) @
concat_p1 (1 @ wlx1))
1 ))
((concat_p1 (wlx1 @ 1 ))^ @
((s4 [-] s0) @ whiskerL 1 wlrnat_z_x^ @
(s [-] s3)^) @
concat_p1 (1 @ wlx2))
(equiv_helper (s [-] s3)
((s4 [-] s0) @ whiskerL 1 wlrnat_z_x^)
((concat_p1 (wlx1 @ 1 ))^ @
((s4 [-] s0) @ whiskerL 1 wlrnat_z_x^ @
(s [-] s3)^) @
concat_p1 (1 @ wlx2))
1 ))
(s5 [I] s12) (rlucancel 1 ))
(s4 [I] s11) (rlucancel 1 ))
(s3 [I] s10) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q16 [-] q14))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q16 [-] q14))
(q16 [-] q14) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q15 [-] q13))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q15 [-] q13))
(q15 [-] q13) (whiskerR 1 1 ) 1 ))
((whiskerR 1 q3)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q5 1 ))
(equiv_moveL_Mp
((whiskerR 1 q3)^ @
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q5 1 ))
((wlrnat_y_x [-] wlrnat_z_x) @ whiskerL q5 1 )
(whiskerR 1 q3) 1 ))
((whiskerR 1 1 )^ @ ((s2 [-] s0) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((s2 [-] s0) @ whiskerL 1 1 ))
((s2 [-] s0) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ ((s1 [-] s) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((s1 [-] s) @ whiskerL 1 1 ))
((s1 [-] s) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s8 [-] s6))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s8 [-] s6))
(s8 [-] s6) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s9 [-] s7))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s9 [-] s7))
(s9 [-] s7) (whiskerR 1 1 ) 1 ))
(s2 [I] s9) (rlucancel 1 ))
(s1 [I] s8) (rlucancel 1 ))
(s0 [I] s7) (rlucancel 1 ))
(s [I] s6) (rlucancel 1 ))
q5 (rlucancel 1 ))
q4 (rlucancel 1 ))
q3 (rlucancel 1 ))
q2 (rlucancel 1 ))
q1 (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx1 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 )
snapply equiv_path_ind_lrucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx1 x0 wrx0 : a = b0) (wlx3 x1 wrx1 : c = d)
(wlx4 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx1 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx3 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx4 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx1 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx3 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx4 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx1 @ wry0 = wry1 @ wlx3)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx3 @ wrz0 = wrz1 @ wlx4)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx1 @ wryz0 = wryz1 @ wlx4)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx4 =
whiskerL wlx1 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx0, wlx2 : a = b
(fun (q : a = b) (s : 1 @ wlx2 = q @ 1 ) =>
(fun (q0 : a = b) (s0 : wlx0 @ 1 = 1 @ q0) =>
forall wlrnat_y_x : 1 @ q = q0 @ 1 ,
(fun (q1 : a = a) (s1 : 1 @ 1 = 1 @ q1) =>
(fun (q2 : b = b) (s2 : 1 @ 1 = 1 @ q2) =>
(fun (q3 : a = a) (s3 : 1 @ 1 = 1 @ q3) =>
(fun (q4 : b = b) (s4 : 1 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wlx2 @ 1 = 1 @ q5) =>
(fun (q6 : a = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : a = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (rlucancel 1 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (rlucancel 1 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (rlucancel 1 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : 1 @ 1 = 1 @ q4)
(s11 : (rlucancel 1 [I] s4) @ 1 = 1 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (q4 @ q2))
(s12 : s4 [-] s2 = whiskerR 1 1 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (q3 @ q1))
(s13 : s3 [-] s1 = whiskerR 1 1 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (1 @ 1 ))
(s14 : (rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 =
whiskerR 1 1 @ q14) =>
(fun (q15 : 1 @ 1 @ 1 = 1 @ (1 @ 1 ))
(s15 : (rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 =
whiskerR 1 1 @ q15) =>
(fun (q16 : 1 @ 1 @ wlx2 = q0 @ (1 @ 1 ))
(s16 : (wlrnat_y_x [-] s) @ whiskerL q0 1 =
whiskerR 1 wlx2 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q3 @ q1))
(s17 : q10 [-] q8 = whiskerR 1 1 @ q17) =>
(fun (q18 : 1 @ 1 @ 1 = 1 @ (q4 @ q2))
(s18 : q11 [-] q9 = whiskerR 1 1 @ q18) =>
(fun (q19 : wlx2 @ 1 = 1 @ q5)
(s19 : (rlucancel 1 [I] s5) @ 1 = 1 @ q19) =>
(fun (q20 : q @ 1 = 1 @ q6)
(s20 : (rlucancel 1 [I] s6) @ 1 = 1 @ q20) =>
(fun (q21 : wlx0 @ 1 = 1 @ q7)
(s21 : (s0 [I] s7) @ 1 = 1 @ q21) =>
(fun (b0 : q @ 1 = 1 @ wlx2)
(x : (fun s22 : q @ 1 = 1 @ wlx2 =>
whiskerR s22 1 @
(rlucancel 1 [-] rlucancel 1 ) =
(rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ q)
(x0 : (fun s22 : wlx0 @ 1 = 1 @ q =>
whiskerR s22 1 @
(rlucancel 1 [-] rlucancel 1 ) =
(s0 [-] rlucancel 1 ) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q22 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s22 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q22) =>
P b a b a b wlx0 q7 q0 q q6 q wlx2 q5 wlx2 1 q4 1 1
q3 1 1 q2 1 1 q1 1 (1 @ 1 )
(1 @ 1 ) (1 @ 1 ) (1 @ 1 ) q21 s7 q20 s6 q19 s5 s4
q11 s3 q10 s2 q9 s1 q8 q12 q18 q13 q17 s0
(rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 ) q15 q14 b1 wlrnat_y_x
b0 s q22 q16 1 1 1 1 s12 s18 s13 s17 s15 s14 s22
s16 s21 s20 s19 s11 s10 s9 s8 x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s0 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_y_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ q))
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((s0 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s0 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_y_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ q))
1 ))
((concat_p1 (q @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ wlx2))
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^)
((concat_p1 (q @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ wlx2))
1 ))
(s0 [I] s7) (rlucancel 1 ))
(rlucancel 1 [I] s6) (rlucancel 1 ))
(rlucancel 1 [I] s5) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q11 [-] q9))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q11 [-] q9))
(q11 [-] q9) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q10 [-] q8))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q10 [-] q8))
(q10 [-] q8) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wlx2)^ @ ((wlrnat_y_x [-] s) @ whiskerL q0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wlx2)^ @
((wlrnat_y_x [-] s) @ whiskerL q0 1 ))
((wlrnat_y_x [-] s) @ whiskerL q0 1 )
(whiskerR 1 wlx2) 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s3 [-] s1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s3 [-] s1))
(s3 [-] s1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s4 [-] s2))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s4 [-] s2))
(s4 [-] s2) (whiskerR 1 1 ) 1 ))
(rlucancel 1 [I] s4) (rlucancel 1 ))
(rlucancel 1 [I] s3) (rlucancel 1 ))
(rlucancel 1 [I] s2) (rlucancel 1 ))
(rlucancel 1 [I] s1) (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wlx2 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx2 (lrucancel 1 )
revert wlx0.X : Type a : X P : forall (b0 c d e f : X) (wlx0 x0 wrx0 : a = b0) (wlx1 x1 wrx1 : c = d)
(wlx3 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx0 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx1 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx3 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx3 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx3)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx3)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx3 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx2 : a = b
forall wlx0 : a = b,
(fun (q : a = b) (s : 1 @ wlx2 = q @ 1 ) =>
(fun (q0 : a = b) (s0 : wlx0 @ 1 = 1 @ q0) =>
forall wlrnat_y_x : 1 @ q = q0 @ 1 ,
(fun (q1 : a = a) (s1 : 1 @ 1 = 1 @ q1) =>
(fun (q2 : b = b) (s2 : 1 @ 1 = 1 @ q2) =>
(fun (q3 : a = a) (s3 : 1 @ 1 = 1 @ q3) =>
(fun (q4 : b = b) (s4 : 1 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wlx2 @ 1 = 1 @ q5) =>
(fun (q6 : a = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : a = b) (s7 : q0 @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (rlucancel 1 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (rlucancel 1 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (rlucancel 1 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : 1 @ 1 = 1 @ q4)
(s11 : (rlucancel 1 [I] s4) @ 1 = 1 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (q4 @ q2))
(s12 : s4 [-] s2 = whiskerR 1 1 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (q3 @ q1))
(s13 : s3 [-] s1 = whiskerR 1 1 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (1 @ 1 ))
(s14 : (rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 =
whiskerR 1 1 @ q14) =>
(fun (q15 : 1 @ 1 @ 1 = 1 @ (1 @ 1 ))
(s15 : (rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 =
whiskerR 1 1 @ q15) =>
(fun (q16 : 1 @ 1 @ wlx2 = q0 @ (1 @ 1 ))
(s16 : (wlrnat_y_x [-] s) @ whiskerL q0 1 =
whiskerR 1 wlx2 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q3 @ q1))
(s17 : q10 [-] q8 = whiskerR 1 1 @ q17) =>
(fun (q18 : 1 @ 1 @ 1 = 1 @ (q4 @ q2))
(s18 : q11 [-] q9 = whiskerR 1 1 @ q18) =>
(fun (q19 : wlx2 @ 1 = 1 @ q5)
(s19 : (rlucancel 1 [I] s5) @ 1 = 1 @ q19) =>
(fun (q20 : q @ 1 = 1 @ q6)
(s20 : (rlucancel 1 [I] s6) @ 1 = 1 @ q20) =>
(fun (q21 : wlx0 @ 1 = 1 @ q7)
(s21 : (s0 [I] s7) @ 1 = 1 @ q21) =>
(fun (b0 : q @ 1 = 1 @ wlx2)
(x : (fun s22 : q @ 1 = 1 @ wlx2 =>
whiskerR s22 1 @
(rlucancel 1 [-] rlucancel 1 ) =
(rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^)
b0) =>
(fun (b1 : wlx0 @ 1 = 1 @ q)
(x0 : (fun s22 : wlx0 @ 1 = 1 @ q =>
whiskerR s22 1 @
(rlucancel 1 [-] rlucancel 1 ) =
(s0 [-] rlucancel 1 ) @
whiskerL 1 wlrnat_y_x^) b1) =>
(fun (q22 : wlx0 @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s22 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL wlx0 1 @ q22) =>
P b a b a b wlx0 q7 q0 q q6 q wlx2 q5 wlx2 1 q4 1 1
q3 1 1 q2 1 1 q1 1 (1 @ 1 )
(1 @ 1 ) (1 @ 1 ) (1 @ 1 ) q21 s7 q20 s6 q19 s5 s4
q11 s3 q10 s2 q9 s1 q8 q12 q18 q13 q17 s0
(rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 ) q15 q14 b1 wlrnat_y_x
b0 s q22 q16 1 1 1 1 s12 s18 s13 s17 s15 s14 s22
s16 s21 s20 s19 s11 s10 s9 s8 x0 x)
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL wlx0 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL wlx0 1 ) 1 ))
((concat_p1 (wlx0 @ 1 ))^ @
((s0 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_y_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ q))
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((s0 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_y_x^)
((concat_p1 (wlx0 @ 1 ))^ @
((s0 [-] rlucancel 1 ) @ whiskerL 1 wlrnat_y_x^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ q))
1 ))
((concat_p1 (q @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ wlx2))
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^)
((concat_p1 (q @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ wlx2))
1 ))
(s0 [I] s7) (rlucancel 1 ))
(rlucancel 1 [I] s6) (rlucancel 1 ))
(rlucancel 1 [I] s5) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q11 [-] q9))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q11 [-] q9))
(q11 [-] q9) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q10 [-] q8))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q10 [-] q8))
(q10 [-] q8) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wlx2)^ @ ((wlrnat_y_x [-] s) @ whiskerL q0 1 ))
(equiv_moveL_Mp
((whiskerR 1 wlx2)^ @
((wlrnat_y_x [-] s) @ whiskerL q0 1 ))
((wlrnat_y_x [-] s) @ whiskerL q0 1 )
(whiskerR 1 wlx2) 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s3 [-] s1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s3 [-] s1))
(s3 [-] s1) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s4 [-] s2))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s4 [-] s2))
(s4 [-] s2) (whiskerR 1 1 ) 1 ))
(rlucancel 1 [I] s4) (rlucancel 1 ))
(rlucancel 1 [I] s3) (rlucancel 1 ))
(rlucancel 1 [I] s2) (rlucancel 1 ))
(rlucancel 1 [I] s1) (rlucancel 1 ))
q0 (rlucancel 1 ))
q (rlucancel 1 ))
wlx2 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
wlx0 (rlucancel 1 ))
wlx2 (lrucancel 1 )
snapply equiv_path_ind_lrucancel. X : Type a : X P : forall (b0 c d e f : X) (wlx0 x0 wrx0 : a = b0) (wlx1 x1 wrx1 : c = d)
(wlx3 x2 wrx2 : e = f) (wly0 y0 wry0 : b0 = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b0 = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx0 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx1 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx3 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx3 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx3)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx3)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx3 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal b : X wlx2 : a = b
(fun (q : a = b) (s : 1 @ wlx2 = q @ 1 ) =>
(fun (q0 : a = a) (s0 : 1 @ 1 = 1 @ q0) =>
(fun (q1 : b = b) (s1 : 1 @ 1 = 1 @ q1) =>
(fun (q2 : a = a) (s2 : 1 @ 1 = 1 @ q2) =>
(fun (q3 : b = b) (s3 : 1 @ 1 = 1 @ q3) =>
(fun (q4 : a = b) (s4 : wlx2 @ 1 = 1 @ q4) =>
(fun (q5 : a = b) (s5 : wlx2 @ 1 = 1 @ q5) =>
(fun (q6 : a = b) (s6 : q @ 1 = 1 @ q6) =>
(fun (q7 : 1 @ 1 = 1 @ q0) (s7 : (rlucancel 1 [I] s0) @ 1 = 1 @ q7) =>
(fun (q8 : 1 @ 1 = 1 @ q1) (s8 : (rlucancel 1 [I] s1) @ 1 = 1 @ q8) =>
(fun (q9 : 1 @ 1 = 1 @ q2) (s9 : (rlucancel 1 [I] s2) @ 1 = 1 @ q9) =>
(fun (q10 : 1 @ 1 = 1 @ q3)
(s10 : (rlucancel 1 [I] s3) @ 1 = 1 @ q10) =>
(fun (q11 : 1 @ 1 @ 1 = 1 @ (q3 @ q1))
(s11 : s3 [-] s1 = whiskerR 1 1 @ q11) =>
(fun (q12 : 1 @ 1 @ 1 = 1 @ (q2 @ q0))
(s12 : s2 [-] s0 = whiskerR 1 1 @ q12) =>
(fun (q13 : 1 @ 1 @ 1 = 1 @ (1 @ 1 ))
(s13 : (rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 =
whiskerR 1 1 @ q13) =>
(fun (q14 : 1 @ 1 @ 1 = 1 @ (1 @ 1 ))
(s14 : (rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 =
whiskerR 1 1 @ q14) =>
(fun (q15 : 1 @ 1 @ wlx2 = q @ (1 @ 1 ))
(s15 : (s [-] lrucancel 1 ) @ whiskerL q 1 =
whiskerR 1 wlx2 @ q15) =>
(fun (q16 : 1 @ 1 @ 1 = 1 @ (q2 @ q0))
(s16 : q9 [-] q7 = whiskerR 1 1 @ q16) =>
(fun (q17 : 1 @ 1 @ 1 = 1 @ (q3 @ q1))
(s17 : q10 [-] q8 = whiskerR 1 1 @ q17) =>
(fun (q18 : wlx2 @ 1 = 1 @ q4)
(s18 : (rlucancel 1 [I] s4) @ 1 = 1 @ q18) =>
(fun (q19 : wlx2 @ 1 = 1 @ q5)
(s19 : (rlucancel 1 [I] s5) @ 1 = 1 @ q19) =>
(fun (q20 : q @ 1 = 1 @ q6)
(s20 : (rlucancel 1 [I] s6) @ 1 = 1 @ q20) =>
(fun (b0 : wlx2 @ 1 = 1 @ wlx2)
(x : (fun s21 : wlx2 @ 1 = 1 @ wlx2 =>
whiskerR s21 1 @ (rlucancel 1 [-] rlucancel 1 ) =
(rlucancel 1 [-] rlucancel 1 ) @
whiskerL 1 (lrucancel 1 )^) b0) =>
(fun (b1 : q @ 1 = 1 @ wlx2)
(x0 : (fun s21 : q @ 1 = 1 @ wlx2 =>
whiskerR s21 1 @
(rlucancel 1 [-] rlucancel 1 ) =
(rlucancel 1 [-] rlucancel 1 ) @
whiskerL 1 s^) b1) =>
(fun (q21 : q @ (1 @ 1 ) = 1 @ 1 @ wlx2)
(s21 : (b1 [I] b0) @ whiskerR 1 wlx2 =
whiskerL q 1 @ q21) =>
P b a b a b q q6 q wlx2 q5 wlx2 wlx2 q4 wlx2 1 q3 1
1 q2 1 1 q1 1 1 q0 1 (1 @ 1 )
(1 @ 1 ) (1 @ 1 ) (1 @ 1 ) q20 s6 q19 s5 q18 s4 s3
q10 s2 q9 s1 q8 s0 q7 q11 q17 q12 q16
(rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) q14 q13 b1 s b0
(lrucancel 1 ) q21 q15 1 1 1 1 s11 s17 s12 s16 s14
s13 s21 s15 s20 s19 s18 s10 s9 s8 s7 x0 x)
((whiskerL q 1 )^ @ ((b1 [I] b0) @ whiskerR 1 wlx2))
(equiv_moveL_Mp
((whiskerL q 1 )^ @
((b1 [I] b0) @ whiskerR 1 wlx2))
((b1 [I] b0) @ whiskerR 1 wlx2)
(whiskerL q 1 ) 1 ))
((concat_p1 (q @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ wlx2))
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^)
((concat_p1 (q @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 s^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ wlx2))
1 ))
((concat_p1 (wlx2 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @
whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ wlx2))
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @
whiskerL 1 (lrucancel 1 )^)
((concat_p1 (wlx2 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @
whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ wlx2))
1 ))
(rlucancel 1 [I] s6) (rlucancel 1 ))
(rlucancel 1 [I] s5) (rlucancel 1 ))
(rlucancel 1 [I] s4) (rlucancel 1 ))
((whiskerR 1 1 )^ @ (q10 [-] q8))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q10 [-] q8))
(q10 [-] q8) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (q9 [-] q7))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (q9 [-] q7))
(q9 [-] q7) (whiskerR 1 1 ) 1 ))
((whiskerR 1 wlx2)^ @ ((s [-] lrucancel 1 ) @ whiskerL q 1 ))
(equiv_moveL_Mp
((whiskerR 1 wlx2)^ @
((s [-] lrucancel 1 ) @ whiskerL q 1 ))
((s [-] lrucancel 1 ) @ whiskerL q 1 )
(whiskerR 1 wlx2) 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s2 [-] s0))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s2 [-] s0))
(s2 [-] s0) (whiskerR 1 1 ) 1 ))
((whiskerR 1 1 )^ @ (s3 [-] s1))
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (s3 [-] s1))
(s3 [-] s1) (whiskerR 1 1 ) 1 ))
(rlucancel 1 [I] s3) (rlucancel 1 ))
(rlucancel 1 [I] s2) (rlucancel 1 ))
(rlucancel 1 [I] s1) (rlucancel 1 ))
(rlucancel 1 [I] s0) (rlucancel 1 ))
q (rlucancel 1 ))
wlx2 (rlucancel 1 ))
wlx2 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
1 (rlucancel 1 ))
wlx2 (lrucancel 1 )
destruct wlx2.X : Type a : X P : forall (b c d e f : X) (wlx0 x0 wrx0 : a = b) (wlx1 x1 wrx1 : c = d)
(wlx2 x2 wrx2 : e = f) (wly0 y0 wry0 : b = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx0 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx1 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx2 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type H : ?Goal
P a a a a a 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
(1 @ 1 ) (1 @ 1 ) (1 @ 1 ) (1 @ 1 ) (rlucancel 1 [I] rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 [I] rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 [I] rlucancel 1 )
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
(lrucancel 1 )
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
(lrucancel 1 )
((whiskerL 1 1 )^ @
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 ))
((whiskerR 1 1 )^ @ ((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 )) 1 1 1 1
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
(rlucancel 1 [-] rlucancel 1 ) (whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
(rlucancel 1 [-] rlucancel 1 ) (whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerL 1 1 )^ @
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 ))
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 )
(whiskerL 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 ))
((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^)
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
1 )
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^)
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
1 )
(* Remove the next two lines if not using the [generalize_goal] tactic. *)
exact H. } X : Type a : X lem : forall
P : forall (b c d e f : X) (wlx0 x0 wrx0 : a = b)
(wlx1 x1 wrx1 : c = d) (wlx2 x2 wrx2 : e = f)
(wly0 y0 wry0 : b = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e)
(wlyz0 wryz0 : b = f) (wlyz1 wryz1 : a = e)
(ulnat_x0 : wlx0 @ 1 = 1 @ x0) (urnat_x0 : wrx0 @ 1 = 1 @ x0)
(ulnat_x1 : wlx1 @ 1 = 1 @ x1) (urnat_x1 : wrx1 @ 1 = 1 @ x1)
(ulnat_x2 : wlx2 @ 1 = 1 @ x2) (urnat_x2 : wrx2 @ 1 = 1 @ x2)
(ulnat_y0 : wly0 @ 1 = 1 @ y0) (urnat_y0 : wry0 @ 1 = 1 @ y0)
(ulnat_y1 : wly1 @ 1 = 1 @ y1) (urnat_y1 : wry1 @ 1 = 1 @ y1)
(ulnat_z0 : wlz0 @ 1 = 1 @ z0) (urnat_z0 : wrz0 @ 1 = 1 @ z0)
(ulnat_z1 : wlz1 @ 1 = 1 @ z1) (urnat_z1 : wrz1 @ 1 = 1 @ z1)
(ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0)
(wrpp_yz0 : wry0 @ wrz0 = wryz0) (wlpp_yz0 : wly0 @ wlz0 = wlyz0)
(wrpp_yz1 : wry1 @ wrz1 = wryz1) (wlpp_yz1 : wly1 @ wlz1 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type ,
P a a a a a 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
(1 @ 1 ) (1 @ 1 ) (1 @ 1 ) (1 @ 1 ) (rlucancel 1 [I] rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 [I] rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 [I] rlucancel 1 )
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
(lrucancel 1 )
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
(lrucancel 1 )
((whiskerL 1 1 )^ @
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 ))
((whiskerR 1 1 )^ @ ((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 )) 1 1 1 1
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
(rlucancel 1 [-] rlucancel 1 ) (whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
(rlucancel 1 [-] rlucancel 1 ) (whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerL 1 1 )^ @
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 ))
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 )
(whiskerL 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 ))
((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^)
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
1 )
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^)
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
1 ) ->
forall (b c d e f : X) (wlx0 x0 wrx0 : a = b) (wlx1 x1 wrx1 : c = d)
(wlx2 x2 wrx2 : e = f) (wly0 y0 wry0 : b = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx0 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx1 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx2 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1)
(H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0)
(H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0)
(H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1)
(H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1)
(H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0)
(H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1)
(H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz)
(H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x)
(ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0)
(ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1)
(ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2)
(ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0)
(ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1)
(ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0)
(ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1)
(wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
(wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^),
P b c d e f wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 wry0 wly1 y1 wry1
wlz0 z0 wrz0 wlz1 z1 wrz1 wlyz0 wryz0 wlyz1 wryz1 ulnat_x0 urnat_x0
ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1
ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0 urnat_yz0 ulnat_yz1 urnat_yz1
ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1
ehrnat_yz0 ehrnat_yz1 wlrnat_x_y wlrnat_y_x wlrnat_x_z wlrnat_z_x
wlrnat_x_yz wlrnat_yz_x wrpp_yz0 wlpp_yz0 wrpp_yz1 wlpp_yz1 H_ulnat_yz0
H_urnat_yz0 H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz
H_wlrnat_yz_x ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0
ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 wlrnat_V_x_y wlrnat_V_x_z
forall (b c d e f : X) (wlx0 x0 wrx0 : a = b) (wlx1 x1 wrx1 : c = d)
(wlx2 x2 wrx2 : e = f) (wly0 y0 wry0 : b = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx0 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx1 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx2 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1)
(H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0)
(H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0)
(H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1)
(H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1)
(H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0)
(H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1)
(H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz)
(H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x)
(ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0)
(ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1)
(ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2)
(ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0)
(ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1)
(ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0)
(ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1)
(wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
(wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^),
let eh_x_y :=
concat_p_pp x0 y0 z0 @
whiskerR
((rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1))
z0
in
whiskerR
(concat_p1
((rlucancel_inv (ulnat_x0 [-] urnat_yz0))^ @ wlrnat_x_yz @
rlucancel_inv (urnat_yz1 [-] ulnat_x2)) @@
concat_p1
((rlucancel_inv (ulnat_yz1 [-] urnat_x2))^ @ wlrnat_yz_x @
rlucancel_inv (urnat_x0 [-] ulnat_yz0)))
eh_x_y @
whiskerR
(eh_V_gen ehlnat_1p_x0 ehlnat_1p_x2
(Ehrnat_p1_pp 1 1 H_ehrnat_yz0 H_ulnat_yz0 H_urnat_yz0 ehrnat_p1_y0
ehrnat_p1_z0)
(Ehrnat_p1_pp 1 1 H_ehrnat_yz1 H_ulnat_yz1 H_urnat_yz1 ehrnat_p1_y1
ehrnat_p1_z1)
(Wlrnat_V_p_pp H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz H_wlrnat_yz_x
wlrnat_V_x_y wlrnat_V_x_z))
eh_x_y @
lrucancel 1 @ whiskerL eh_x_y (concat_pp_p_p_pp y1 x1 z0)^ @
whiskerL eh_x_y
(concat_p1 (concat_pp_p y1 x1 z0) @@ concat_p1 (concat_p_pp y1 x1 z0))^ =
(eh_p_pp_gen H_urnat_yz0 H_urnat_yz1 H_wlrnat_x_yz
[-] lrucancel
(whiskerL (concat_pp_p y1 z1 x2)
(ap (fun p : z1 @ x2 = x1 @ z0 => whiskerL y1 p)
(moveL_V1
((rlucancel_inv (ulnat_z1 [-] urnat_x2))^ @ wlrnat_z_x @
rlucancel_inv (urnat_x1 [-] ulnat_z0))
((rlucancel_inv (ulnat_x1 [-] urnat_z0))^ @ wlrnat_x_z @
rlucancel_inv (urnat_z1 [-] ulnat_x2))
(eh_V_gen ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_z0 ehrnat_p1_z1
wlrnat_V_x_z)))))
[-] (eh_pp_p_gen H_ulnat_yz1 H_ulnat_yz0 H_wlrnat_yz_x
[-] lrucancel
(whiskerL (concat_p_pp x0 y0 z0)
(ap (fun p : x0 @ y0 = y1 @ x1 => whiskerR p z0)
(moveL_1V
((rlucancel_inv (ulnat_x0 [-] urnat_y0))^ @ wlrnat_x_y @
rlucancel_inv (urnat_y1 [-] ulnat_x1))
((rlucancel_inv (ulnat_y1 [-] urnat_x1))^ @ wlrnat_y_x @
rlucancel_inv (urnat_x0 [-] ulnat_y0))
(eh_V_gen ehlnat_1p_x0 ehlnat_1p_x1 ehrnat_p1_y0
ehrnat_p1_y1 wlrnat_V_x_y)))))
apply lem.X : Type a : X lem : forall
P : forall (b c d e f : X) (wlx0 x0 wrx0 : a = b)
(wlx1 x1 wrx1 : c = d) (wlx2 x2 wrx2 : e = f)
(wly0 y0 wry0 : b = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e)
(wlyz0 wryz0 : b = f) (wlyz1 wryz1 : a = e)
(ulnat_x0 : wlx0 @ 1 = 1 @ x0) (urnat_x0 : wrx0 @ 1 = 1 @ x0)
(ulnat_x1 : wlx1 @ 1 = 1 @ x1) (urnat_x1 : wrx1 @ 1 = 1 @ x1)
(ulnat_x2 : wlx2 @ 1 = 1 @ x2) (urnat_x2 : wrx2 @ 1 = 1 @ x2)
(ulnat_y0 : wly0 @ 1 = 1 @ y0) (urnat_y0 : wry0 @ 1 = 1 @ y0)
(ulnat_y1 : wly1 @ 1 = 1 @ y1) (urnat_y1 : wry1 @ 1 = 1 @ y1)
(ulnat_z0 : wlz0 @ 1 = 1 @ z0) (urnat_z0 : wrz0 @ 1 = 1 @ z0)
(ulnat_z1 : wlz1 @ 1 = 1 @ z1) (urnat_z1 : wrz1 @ 1 = 1 @ z1)
(ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0)
(wrpp_yz0 : wry0 @ wrz0 = wryz0) (wlpp_yz0 : wly0 @ wlz0 = wlyz0)
(wrpp_yz1 : wry1 @ wrz1 = wryz1) (wlpp_yz1 : wly1 @ wlz1 = wlyz1),
ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0 ->
urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0 ->
ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1 ->
urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1 ->
(ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0 ->
(ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1 ->
(wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz ->
(wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x ->
(ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0 ->
(ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1 ->
(ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2 ->
(ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0 ->
(ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1 ->
(ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0 ->
(ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1 ->
whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^ ->
whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^ -> Type ,
P a a a a a 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
(1 @ 1 ) (1 @ 1 ) (1 @ 1 ) (1 @ 1 ) (rlucancel 1 [I] rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 [I] rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 [I] rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 [I] rlucancel 1 )
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
(lrucancel 1 )
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
(lrucancel 1 )
((whiskerL 1 1 )^ @
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 ))
((whiskerR 1 1 )^ @ ((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 )) 1 1 1 1
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
(rlucancel 1 [-] rlucancel 1 ) (whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
(rlucancel 1 [-] rlucancel 1 ) (whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerL 1 1 )^ @
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 ))
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 )
(whiskerL 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 ))
((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 ) (rlucancel 1 )
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^)
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
1 )
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^)
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
1 ) ->
forall (b c d e f : X) (wlx0 x0 wrx0 : a = b) (wlx1 x1 wrx1 : c = d)
(wlx2 x2 wrx2 : e = f) (wly0 y0 wry0 : b = d) (wly1 y1 wry1 : a = c)
(wlz0 z0 wrz0 : d = f) (wlz1 z1 wrz1 : c = e) (wlyz0 wryz0 : b = f)
(wlyz1 wryz1 : a = e) (ulnat_x0 : wlx0 @ 1 = 1 @ x0)
(urnat_x0 : wrx0 @ 1 = 1 @ x0) (ulnat_x1 : wlx1 @ 1 = 1 @ x1)
(urnat_x1 : wrx1 @ 1 = 1 @ x1) (ulnat_x2 : wlx2 @ 1 = 1 @ x2)
(urnat_x2 : wrx2 @ 1 = 1 @ x2) (ulnat_y0 : wly0 @ 1 = 1 @ y0)
(urnat_y0 : wry0 @ 1 = 1 @ y0) (ulnat_y1 : wly1 @ 1 = 1 @ y1)
(urnat_y1 : wry1 @ 1 = 1 @ y1) (ulnat_z0 : wlz0 @ 1 = 1 @ z0)
(urnat_z0 : wrz0 @ 1 = 1 @ z0) (ulnat_z1 : wlz1 @ 1 = 1 @ z1)
(urnat_z1 : wrz1 @ 1 = 1 @ z1) (ulnat_yz0 : wlyz0 @ 1 = 1 @ (y0 @ z0))
(urnat_yz0 : wryz0 @ 1 = 1 @ (y0 @ z0))
(ulnat_yz1 : wlyz1 @ 1 = 1 @ (y1 @ z1))
(urnat_yz1 : wryz1 @ 1 = 1 @ (y1 @ z1)) (ehlnat_x0 : wlx0 @ 1 = 1 @ wrx0)
(ehlnat_x1 : wlx1 @ 1 = 1 @ wrx1) (ehlnat_x2 : wlx2 @ 1 = 1 @ wrx2)
(ehrnat_y0 : wry0 @ 1 = 1 @ wly0) (ehrnat_y1 : wry1 @ 1 = 1 @ wly1)
(ehrnat_z0 : wrz0 @ 1 = 1 @ wlz0) (ehrnat_z1 : wrz1 @ 1 = 1 @ wlz1)
(ehrnat_yz0 : wryz0 @ 1 = 1 @ wlyz0) (ehrnat_yz1 : wryz1 @ 1 = 1 @ wlyz1)
(wlrnat_x_y : wlx0 @ wry0 = wry1 @ wlx1)
(wlrnat_y_x : wly1 @ wrx1 = wrx0 @ wly0)
(wlrnat_x_z : wlx1 @ wrz0 = wrz1 @ wlx2)
(wlrnat_z_x : wlz1 @ wrx2 = wrx1 @ wlz0)
(wlrnat_x_yz : wlx0 @ wryz0 = wryz1 @ wlx2)
(wlrnat_yz_x : wlyz1 @ wrx2 = wrx0 @ wlyz0) (wrpp_yz0 : wry0 @ wrz0 = wryz0)
(wlpp_yz0 : wly0 @ wlz0 = wlyz0) (wrpp_yz1 : wry1 @ wrz1 = wryz1)
(wlpp_yz1 : wly1 @ wlz1 = wlyz1)
(H_ulnat_yz0 : ulnat_y0 [-] ulnat_z0 = whiskerR wlpp_yz0 1 @ ulnat_yz0)
(H_urnat_yz0 : urnat_y0 [-] urnat_z0 = whiskerR wrpp_yz0 1 @ urnat_yz0)
(H_ulnat_yz1 : ulnat_y1 [-] ulnat_z1 = whiskerR wlpp_yz1 1 @ ulnat_yz1)
(H_urnat_yz1 : urnat_y1 [-] urnat_z1 = whiskerR wrpp_yz1 1 @ urnat_yz1)
(H_ehrnat_yz0 : (ehrnat_y0 [-] ehrnat_z0) @ whiskerL 1 wlpp_yz0 =
whiskerR wrpp_yz0 1 @ ehrnat_yz0)
(H_ehrnat_yz1 : (ehrnat_y1 [-] ehrnat_z1) @ whiskerL 1 wlpp_yz1 =
whiskerR wrpp_yz1 1 @ ehrnat_yz1)
(H_wlrnat_x_yz : (wlrnat_x_y [I] wlrnat_x_z) @ whiskerR wrpp_yz1 wlx2 =
whiskerL wlx0 wrpp_yz0 @ wlrnat_x_yz)
(H_wlrnat_yz_x : (wlrnat_y_x [-] wlrnat_z_x) @ whiskerL wrx0 wlpp_yz0 =
whiskerR wlpp_yz1 wrx2 @ wlrnat_yz_x)
(ehlnat_1p_x0 : (ehlnat_x0 [I] urnat_x0) @ 1 = 1 @ ulnat_x0)
(ehlnat_1p_x1 : (ehlnat_x1 [I] urnat_x1) @ 1 = 1 @ ulnat_x1)
(ehlnat_1p_x2 : (ehlnat_x2 [I] urnat_x2) @ 1 = 1 @ ulnat_x2)
(ehrnat_p1_y0 : (ehrnat_y0 [I] ulnat_y0) @ 1 = 1 @ urnat_y0)
(ehrnat_p1_y1 : (ehrnat_y1 [I] ulnat_y1) @ 1 = 1 @ urnat_y1)
(ehrnat_p1_z0 : (ehrnat_z0 [I] ulnat_z0) @ 1 = 1 @ urnat_z0)
(ehrnat_p1_z1 : (ehrnat_z1 [I] ulnat_z1) @ 1 = 1 @ urnat_z1)
(wlrnat_V_x_y : whiskerR wlrnat_x_y 1 @ (ehrnat_y1 [-] ehlnat_x1) =
(ehlnat_x0 [-] ehrnat_y0) @ whiskerL 1 wlrnat_y_x^)
(wlrnat_V_x_z : whiskerR wlrnat_x_z 1 @ (ehrnat_z1 [-] ehlnat_x2) =
(ehlnat_x1 [-] ehrnat_z0) @ whiskerL 1 wlrnat_z_x^),
P b c d e f wlx0 x0 wrx0 wlx1 x1 wrx1 wlx2 x2 wrx2 wly0 y0 wry0 wly1 y1 wry1
wlz0 z0 wrz0 wlz1 z1 wrz1 wlyz0 wryz0 wlyz1 wryz1 ulnat_x0 urnat_x0
ulnat_x1 urnat_x1 ulnat_x2 urnat_x2 ulnat_y0 urnat_y0 ulnat_y1 urnat_y1
ulnat_z0 urnat_z0 ulnat_z1 urnat_z1 ulnat_yz0 urnat_yz0 ulnat_yz1 urnat_yz1
ehlnat_x0 ehlnat_x1 ehlnat_x2 ehrnat_y0 ehrnat_y1 ehrnat_z0 ehrnat_z1
ehrnat_yz0 ehrnat_yz1 wlrnat_x_y wlrnat_y_x wlrnat_x_z wlrnat_z_x
wlrnat_x_yz wlrnat_yz_x wrpp_yz0 wlpp_yz0 wrpp_yz1 wlpp_yz1 H_ulnat_yz0
H_urnat_yz0 H_ulnat_yz1 H_urnat_yz1 H_ehrnat_yz0 H_ehrnat_yz1 H_wlrnat_x_yz
H_wlrnat_yz_x ehlnat_1p_x0 ehlnat_1p_x1 ehlnat_1p_x2 ehrnat_p1_y0
ehrnat_p1_y1 ehrnat_p1_z0 ehrnat_p1_z1 wlrnat_V_x_y wlrnat_V_x_z
whiskerR
(concat_p1
((rlucancel_inv
((rlucancel 1 [I] rlucancel 1 )
[-] (whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 )
[-] (rlucancel 1 [I] rlucancel 1 ))))^ @
((whiskerL 1 1 )^ @
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 )) @
rlucancel_inv
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
[-] (rlucancel 1 [I] rlucancel 1 ))) @@
concat_p1
((rlucancel_inv
((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ) [-] rlucancel 1 ))^ @
((whiskerR 1 1 )^ @ ((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 )) @
rlucancel_inv
(rlucancel 1 [-] (whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))))
(concat_p_pp 1 1 1 @
whiskerR
((rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))^ @
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
1 ) @
whiskerR
(eh_V_gen (rlucancel 1 ) (rlucancel 1 )
(Ehrnat_p1_pp 1 1
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
(rlucancel 1 [-] rlucancel 1 ) (whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
(whiskerR 1 1 ) 1 )
(rlucancel 1 ) (rlucancel 1 ))
(Ehrnat_p1_pp 1 1
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
(rlucancel 1 [-] rlucancel 1 ) (whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
(whiskerR 1 1 ) 1 )
(rlucancel 1 ) (rlucancel 1 ))
(Wlrnat_V_p_pp
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 ))
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerL 1 1 )^ @
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 ))
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 )
(whiskerL 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 ))
((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^)
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
1 )
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^)
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
1 )))
(concat_p_pp 1 1 1 @
whiskerR
((rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))^ @
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
1 ) @
lrucancel 1 @
whiskerL
(concat_p_pp 1 1 1 @
whiskerR
((rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))^ @
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
1 )
(concat_pp_p_p_pp 1 1 1 )^ @
whiskerL
(concat_p_pp 1 1 1 @
whiskerR
((rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))^ @
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
rlucancel_inv
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
1 )
(concat_p1 (concat_pp_p 1 1 1 ) @@ concat_p1 (concat_p_pp 1 1 1 ))^ =
(eh_p_pp_gen
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 )))
((rlucancel 1 [I] rlucancel 1 ) [-] (rlucancel 1 [I] rlucancel 1 ))
(whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerL 1 1 )^ @
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 ))
(((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )
[I] (concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
whiskerR 1 1 )
(whiskerL 1 1 ) 1 )
[-] lrucancel
(whiskerL (concat_pp_p 1 1 1 )
(ap (fun p : 1 @ 1 = 1 @ 1 => whiskerL 1 p)
(moveL_V1
((rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @ lrucancel 1 @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))
((rlucancel_inv
((rlucancel 1 [I] rlucancel 1 )
[-] (rlucancel 1 [I] rlucancel 1 )))^ @
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @ whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
rlucancel_inv
((rlucancel 1 [I] rlucancel 1 )
[-] (rlucancel 1 [I] rlucancel 1 )))
(eh_V_gen (rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 )
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @
whiskerL 1 (lrucancel 1 )^)
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @
whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
1 ))))))
[-] (eh_pp_p_gen
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
(rlucancel 1 [-] rlucancel 1 ) (whiskerR 1 1 ) 1 )
(equiv_moveL_Mp ((whiskerR 1 1 )^ @ (rlucancel 1 [-] rlucancel 1 ))
(rlucancel 1 [-] rlucancel 1 ) (whiskerR 1 1 ) 1 )
(equiv_moveL_Mp
((whiskerR 1 1 )^ @ ((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 ))
((lrucancel 1 [-] lrucancel 1 ) @ whiskerL 1 1 )
(whiskerR 1 1 ) 1 )
[-] lrucancel
(whiskerL (concat_p_pp 1 1 1 )
(ap (fun p : 1 @ 1 = 1 @ 1 => whiskerR p 1 )
(moveL_1V
((rlucancel_inv
((rlucancel 1 [I] rlucancel 1 )
[-] (rlucancel 1 [I] rlucancel 1 )))^ @
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @
whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 )) @
rlucancel_inv
((rlucancel 1 [I] rlucancel 1 )
[-] (rlucancel 1 [I] rlucancel 1 )))
((rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))^ @
lrucancel 1 @
rlucancel_inv (rlucancel 1 [-] rlucancel 1 ))
(eh_V_gen (rlucancel 1 ) (rlucancel 1 )
(rlucancel 1 ) (rlucancel 1 )
(equiv_helper (rlucancel 1 [-] rlucancel 1 )
((rlucancel 1 [-] rlucancel 1 ) @
whiskerL 1 (lrucancel 1 )^)
((concat_p1 (1 @ 1 ))^ @
((rlucancel 1 [-] rlucancel 1 ) @
whiskerL 1 (lrucancel 1 )^ @
(rlucancel 1 [-] rlucancel 1 )^) @
concat_p1 (1 @ 1 ))
1 ))))))
reflexivity .
Qed .
Definition eh_V_p_pp {X } {a : X} (p q r : idpath (idpath a) = idpath (idpath a))
: whiskerR (concat_p1 _ @@ concat_p1 _) _ @ whiskerR (eh_V p (q @ r)) _ @ lrucancel 1 @
whiskerL _ (Syllepsis.concat_pp_p_p_pp _ _ _)^ @ whiskerL _ (concat_p1 _ @@ concat_p1 _)^ =
(eh_p_pp_gen (urnat_pp q r) (urnat_pp q r) (wlrnat_p_pp p q r) [-]
lrucancel (whiskerL _ (ap (fun p => whiskerL q p) (moveL_V1 _ _ (eh_V p r))))) [-]
(eh_pp_p_gen (ulnat_pp q r) (ulnat_pp q r) (wlrnat_pp_p q r p) [-]
lrucancel (whiskerL _ (ap (fun p => whiskerR p r) (moveL_1V _ _ (eh_V p q))))).X : Type a : X p, q, r : 1 = 1
whiskerR (concat_p1 (eh p (q @ r)) @@ concat_p1 (eh (q @ r) p))
(concat_p_pp p q r @ whiskerR (eh p q) r) @
whiskerR (eh_V p (q @ r)) (concat_p_pp p q r @ whiskerR (eh p q) r) @
lrucancel 1 @
whiskerL (concat_p_pp p q r @ whiskerR (eh p q) r) (concat_pp_p_p_pp q p r)^ @
whiskerL (concat_p_pp p q r @ whiskerR (eh p q) r)
(concat_p1 (concat_pp_p q p r) @@ concat_p1 (concat_p_pp q p r))^ =
(eh_p_pp_gen (urnat_pp q r) (urnat_pp q r) (wlrnat_p_pp p q r)
[-] lrucancel
(whiskerL (concat_pp_p q r p)
(ap (fun p0 : r @ p = p @ r => whiskerL q p0)
(moveL_V1 (eh r p) (eh p r) (eh_V p r)))))
[-] (eh_pp_p_gen (ulnat_pp q r) (ulnat_pp q r) (wlrnat_pp_p q r p)
[-] lrucancel
(whiskerL (concat_p_pp p q r)
(ap (fun p0 : p @ q = q @ p => whiskerR p0 r)
(moveL_1V (eh p q) (eh q p) (eh_V p q)))))
Proof .X : Type a : X p, q, r : 1 = 1
whiskerR (concat_p1 (eh p (q @ r)) @@ concat_p1 (eh (q @ r) p))
(concat_p_pp p q r @ whiskerR (eh p q) r) @
whiskerR (eh_V p (q @ r)) (concat_p_pp p q r @ whiskerR (eh p q) r) @
lrucancel 1 @
whiskerL (concat_p_pp p q r @ whiskerR (eh p q) r) (concat_pp_p_p_pp q p r)^ @
whiskerL (concat_p_pp p q r @ whiskerR (eh p q) r)
(concat_p1 (concat_pp_p q p r) @@ concat_p1 (concat_p_pp q p r))^ =
(eh_p_pp_gen (urnat_pp q r) (urnat_pp q r) (wlrnat_p_pp p q r)
[-] lrucancel
(whiskerL (concat_pp_p q r p)
(ap (fun p0 : r @ p = p @ r => whiskerL q p0)
(moveL_V1 (eh r p) (eh p r) (eh_V p r)))))
[-] (eh_pp_p_gen (ulnat_pp q r) (ulnat_pp q r) (wlrnat_pp_p q r p)
[-] lrucancel
(whiskerL (concat_p_pp p q r)
(ap (fun p0 : p @ q = q @ p => whiskerR p0 r)
(moveL_1V (eh p q) (eh q p) (eh_V p q)))))
exact (eh_V_p_pp_gen _ _ _ (ehrnat_p1_pp q r) (ehrnat_p1_pp q r) (wlrnat_V_p_pp p q r)).
Defined .