p x ≡ p xx : N, e : (S x) = 0, a : [ U0 ], x : [ a ], y : [ a ], p : [ aU0 ], t : p x, e : x = y t p xx : N, e : (S x) = 0, a : [ U0 ], x : [ a ], y : [ a ], p : [ a U0 ], t : p x, e : x = y t p xx : N, e : (S x) = 0, a : [ U0 ], x : [ a ], y : [ a ], p : [ a ⟶ U0 ], t : p x, e : x = y ⊢ e ⟹ x = yp y ≡ p yx : N, e : (S x) = 0, a : [ U0 ], x : [ a ], y : [ a ], p : [ a ⟶ U0 ], t : p x, e : x = y ⊢ J(x.y.o.p y, t, e) ⟹ p yx : N, e : (S x) = 0, a : [ U0 ], x : [ a ], y : [ a ], p : [ a ⟶ U0 ], t : p x, e : x = y ⊢ J(x.y.o.p y, t, e) ⟸ p yx : N, e : (S x) = 0, a : [ U0 ], x : [ a ], y : [ a ], p : [ a ⟶ U0 ], t : p x ⊢ λ e. J(x.y.o.p y, t, e) ⟸ (x = y) ⟶ (p y)x : N, e : (S x) = 0, a : [ U0 ], x : [ a ], y : [ a ], p : [ a ⟶ U0 ]λ t. λ e. J(x.y.o.p y, t, e) (p x) (x = y) ⟶ (p y)x : N, e : (S x) = 0, a : [ U0 ], x : [ a ], y : [ a ] ⊢ λ p. λ t. λ e. J(x.y.o.p y, t, e) ⟸ ∀ p : a U0. (p x) ⟶ (x = y) ⟶ (p y)x : N, e : (S x) = 0, a : [ U0 ], x : [ a ] λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e) ⟸ y : a. ∀ p : a ⟶ U0. (p x) (x = y) ⟶ (p y)N ≡ Nx : N, e : (S x) = 0 ⊢ x Nx : N, e : (S x) = 0, a : [ U0 ] ⊢ λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e) ⟸ x : a. y : a. p : a ⟶ U0. (p x) ⟶ (x = y) ⟶ (p y)N Nx : N, e : (S x) = 0, n : N n Nx : N, e : (S x) = 0 ⊢ x Nx : N, e : (S x) = 0 ⊢ λ a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e) ∀ a : U0. x : a. ∀ y : a. ∀ p : a U0. (p x) ⟶ (x = y) ⟶ (p y)x : N, e : (S x) = 0, n : N, r : N, o : U0 ⊢ Unit ⟸ U0x : N, e : (S x) = 0, n : N ⊢ ⟸ U0x : N, e : (S x) = 0, n : N, _ : N ⊢ U0 ⟹ U1x : N, e : (S x) = 0, n : N n NN ≡ Nx : N, e : (S x) = 0 S x ⟹ Nx : N, e : (S x) = 0 ⊢ N U0x : N, e : (S x) = 0(λ a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e)) ∀ a : U0. x : a. ∀ y : a. p : a ⟶ U0. (p x) ⟶ (x = y) ⟶ (p y)x : N, e : (S x) = 0, n : N IndN(_.U0, , r.o.Unit, n) U0N Nx : N, e : (S x) = 0 0 ⟹ Nx : N, e : (S x) = 0 ⊢ S x Nx : N, e : (S x) = 0 ⊢ ((λ a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e))) N ⟹ ∀ x : N. ∀ y : N. p : N ⟶ U0. (p x) ⟶ (x = y) (p y)x : N, e : (S x) = 0, n : N IndN(_.U0, , r.o.Unit, n) U0x : N, e : (S x) = 0 0 Nx : N, e : (S x) = 0 ⊢ ((λ a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e))) N (S x) ⟹ ∀ y : N. ∀ p : N ⟶ U0. (p (S x)) ⟶ ((S x) = y) ⟶ (p y)Unit ≡ Unitx : N, e : (S x) = 0 ⊢ () ⟹ Unitx : N, e : (S x) = 0 ⊢ λ n. IndN(_.U0, ⊥, r.o.Unit, n) N U0x : N, e : (S x) = 0 ⊢ (a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e))) N (S x) 0 ⟹p : N U0. (p (S x)) ⟶ ((S x) = 0) ⟶ (p 0)(S x) = 0(S x) = 0x : N, e : (S x) = 0 ⊢ e (S x) = 0x : N, e : (S x) = 0 ⊢ () Unitx : N, e : (S x) = 0 ((λ a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e))) N (S x) 0 (λ n. IndN(_.U0, ⊥, r.o.Unit, n)) ⟹ Unit ⟶ ((S x) = 0) ⟶ ⊥x : N, e : (S x) = 0 ⊢ e ⟸ (S x) = 0x : N, e : (S x) = 0 ⊢ (a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e))) N (S x) 0 n. IndN(_.U0, , r.o.Unit, n)) () ((S x) = 0) ⊥ ≡x : N, e : (S x) = 0 ⊢ ((λ a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e))) N (S x) 0 n. IndN(_.U0, , r.o.Unit, n)) () e ⟹ x : N, e : (S x) = 0 ⊢ ((λ a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e))) N (S x) 0 (λ n. IndN(_.U0, ⊥, r.o.Unit, n)) () ex : N ⊢ λ e. ((λ a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e))) N (S x) 0 (λ n. IndN(_.U0, ⊥, r.o.Unit, n)) () e ⟸ ((S x) = 0) ⟶ ⊥ ⊢ λ x. λ e. ((λ a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e))) N (S x) 0 (λ n. IndN(_.U0, ⊥, r.o.Unit, n)) () e Π x : N. ((S x) = 0) ⟶ ⊥ ⊢ (λ x. λ e. ((λ a. λ x. λ y. λ p. λ t. λ e. J(x.y.o.p y, t, e))) N (S x) 0 (λ n. IndN(_.U0, ⊥, r.o.Unit, n)) () e) Π x : N. ((S x) = 0) ⟶ ⊥