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}.

  
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)
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)
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)
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)
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)
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.
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
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
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
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
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
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. *)
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
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
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. *)
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
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
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. *)
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
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.
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
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.
X: Type
a, b: X
p: a = b

rlucancel 1 [I] rlucancel 1 = rlucancel 1
X: Type
a, b: X
p: a = b

rlucancel 1 [I] rlucancel 1 = rlucancel 1
by destruct p. Defined.
X: Type
a, b: X
p: a = b

lrucancel 1 [-] lrucancel 1 = lrucancel 1
X: Type
a, b: X
p: a = b

lrucancel 1 [-] lrucancel 1 = lrucancel 1
by destruct p. Defined. (** Naturality of composition with 1. *)
X: Type
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
X: Type
a, b: X
u: a = b

whiskerL 1 1 @ concat_1p u = concat_1p u @ 1
exact (lrucancel 1). Defined.
X: Type
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
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. *)
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
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. *)
X: Type
a: X
p, q: 1 = 1

p @ q = q @ p
X: Type
a: X
p, q: 1 = 1

p @ q = q @ p
X: Type
a: X
p, q: 1 = 1

p @ q = whiskerR q 1 @ whiskerL 1 p
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. *)
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
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
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
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.
X: Type
a: X
p: 1 = 1

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
exact (eh_1p_gen p (urnat p)). Defined.
X: Type
a, b: X
u, v: a = b
p: u = v
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
X: Type
a, b: X
u, v: a = b
p: u = v
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
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
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.
X: Type
a: X
p: 1 = 1

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
exact (eh_p1_gen p (ulnat p)). Defined. (** Naturality of Eckmann-Hilton. *)
X: Type
a: X
u, x, y: 1 = 1
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
X: Type
a: X
u, x: 1 = 1

whiskerL u 1 @ eh u x = eh u x @ whiskerR 1 u
exact (lrucancel 1). Defined.
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
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
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. *)
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
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
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.
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
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
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. *)
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
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.
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
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. *)
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
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.
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
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]. *)
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)
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]. *)
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)
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]. *)
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)
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)
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)
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)
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]. *)
X: Type
a: X
u, v: 1 = 1
p: u = 1
q: 1 = v
w: 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
X: Type
a: X
u, v: 1 = 1
p: u = 1
q: 1 = v
w: 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
X: Type
a: X
v: 1 = 1
q: 1 = v
w: 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
X: Type
a: X
v: 1 = 1
q: 1 = v
w: 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)
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
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]. *)
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)
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]. *)
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
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]. *)
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)^
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)^
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]. *)
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
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
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
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
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
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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
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)
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)
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)
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.
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
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
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 ?Goal0 1 @ urnat (q @ r)
X: Type
a: X
p, q, r: 1 = 1
(wlrnat p q [I] wlrnat p r) @ whiskerR ?Goal0 (whiskerL 1 p) = whiskerL (whiskerL 1 p) ?Goal @ wlrnat p (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". *)
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
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
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
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
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
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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
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)
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)
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)
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.
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
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
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 ?Goal0 1 @ ulnat (p @ q)
X: Type
a: X
p, q, r: 1 = 1
(wlrnat p r [-] wlrnat q r) @ whiskerL (whiskerR r 1) ?Goal0 = whiskerR ?Goal (whiskerR r 1) @ wlrnat (p @ q) r
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". *)
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
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
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
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
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
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
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
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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
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.
X: Type
a: X
p, q: 1 = 1

eh p q @ eh q p = 1
X: Type
a: X
p, q: 1 = 1

eh p q @ eh q p = 1
X: Type
a: X
p, q: 1 = 1

(?Goal [I] urnat p) @ 1 = 1 @ ulnat p
X: Type
a: X
p, q: 1 = 1
(?Goal0 [I] urnat p) @ 1 = 1 @ ulnat p
X: Type
a: X
p, q: 1 = 1
(?Goal1 [I] ulnat q) @ 1 = 1 @ urnat q
X: Type
a: X
p, q: 1 = 1
(?Goal2 [I] ulnat q) @ 1 = 1 @ urnat q
X: Type
a: X
p, q: 1 = 1
whiskerR (wlrnat p q) 1 @ (?Goal2 [-] ?Goal0) = (?Goal [-] ?Goal1) @ whiskerL 1 (wlrnat q 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 *)
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
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
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
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))
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_y
ehrnat_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))
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)))
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)))
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)))
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)))
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)))
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)
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)
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)
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)
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)
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)
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)
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.
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)
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)
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)
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 *)
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^
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^
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^
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^
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^
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))^
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))^
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))^
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))^
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))^
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))^
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))^
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))^
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))^
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))^
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))^
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))^
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))^
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))^
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))^
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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))^
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))^
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)
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)
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)
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.
X: Type
a: X
u, v, w: 1 = 1
p: 1 = w
q: 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)
X: Type
a: X
u, v, w: 1 = 1
p: 1 = w
q: 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)
X: Type
a: X
v, w: 1 = 1
p: 1 = w
r: 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)
X: Type
a: X
v, w: 1 = 1
p: 1 = w
r: 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. *)
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
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
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
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
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
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. *)
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
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. *)
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)))))
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. *)
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. *)
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)))))
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
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, ?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
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)))))
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
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
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 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: 1 @ 1 = 1 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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 = wryz0
wlpp_yz0: wly0 @ wlz0 = wlyz0
wrpp_yz1: 1 @ 1 = 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 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
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
ehrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
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_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
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_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ 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
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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ 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
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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ 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
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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 1 = 1 @ z1
ulnat_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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ 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
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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ y0
ulnat_y1: wly1 @ 1 = 1 @ y1
urnat_y1: 1 @ 1 = 1 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ y1
ulnat_z0: wlz0 @ 1 = 1 @ z0
urnat_z0: 1 @ 1 = 1 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ z0
ulnat_z1: wlz1 @ 1 = 1 @ z1
urnat_z1: 1 @ 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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ z1
ehlnat_x0: wlx0 @ 1 = 1 @ wrx0
ehlnat_x1: wlx1 @ 1 = 1 @ wrx1
ehlnat_x2: wlx2 @ 1 = 1 @ wrx2
ehrnat_y0: 1 @ 1 = 1 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ z1
ehlnat_x0: wlx0 @ 1 = 1 @ wrx0
ehlnat_x1: wlx1 @ 1 = 1 @ wrx1
ehlnat_x2: wlx2 @ 1 = 1 @ wrx2
ehrnat_y0: 1 @ 1 = 1 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
wlrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_z1: 1 @ 1 = 1 @ wlz1
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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_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)
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 @ wly0
ehrnat_y1: 1 @ 1 = 1 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_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)
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 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_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)
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 @ wly1
ehrnat_z0: 1 @ 1 = 1 @ wlz0
ehrnat_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)
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 @ wlz0
ehrnat_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)
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 @ wlz0
ehrnat_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)
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)
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)
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)
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)
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)
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)
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)
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)
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)))))
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.
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)))))
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.