Let y be given.
Apply (Huniq y HyF) to the current goal.
Let x0 be given.
Assume Hx0pack.
We prove the intermediate
claim Hx0AB:
x0 ∈ n ∧ apply_fun e x0 = y.
We prove the intermediate
claim Hx0Dom:
x0 ∈ n.
An
exact proof term for the current goal is
(andEL (x0 ∈ n) (apply_fun e x0 = y) Hx0AB).
We prove the intermediate
claim Hex0:
apply_fun e x0 = y.
An
exact proof term for the current goal is
(andER (x0 ∈ n) (apply_fun e x0 = y) Hx0AB).
We prove the intermediate
claim Huniq0:
∀x' : set, x' ∈ n → apply_fun e x' = y → x' = x0.
We prove the intermediate
claim Hx1Dom:
x1 ∈ n.
rewrite the current goal using Hx1Def (from left to right) at position 1.
Apply (xm (x0 = i)) to the current goal.
An exact proof term for the current goal is HsiDom.
rewrite the current goal using
(If_i_1 (x0 = ordsucc i) i x0 Hx0si) (from left to right).
An exact proof term for the current goal is HiDom.
rewrite the current goal using
(If_i_0 (x0 = ordsucc i) i x0 Hx0nsi) (from left to right).
An exact proof term for the current goal is Hx0Dom.
rewrite the current goal using Hx1Def (from left to right) at position 1.
Apply (xm (x0 = i)) to the current goal.
rewrite the current goal using Happ (from left to right).
rewrite the current goal using Hx0i (from right to left).
An exact proof term for the current goal is Hex0.
rewrite the current goal using
(If_i_1 (x0 = ordsucc i) i x0 Hx0si) (from left to right).
rewrite the current goal using Happ (from left to right).
rewrite the current goal using Hx0si (from right to left).
An exact proof term for the current goal is Hex0.
rewrite the current goal using
(If_i_0 (x0 = ordsucc i) i x0 Hx0nsi) (from left to right).
rewrite the current goal using Happ (from left to right).
An exact proof term for the current goal is Hex0.
We use x1 to witness the existential quantifier.
Apply andI to the current goal.
Apply andI to the current goal.
An exact proof term for the current goal is Hx1Dom.
An exact proof term for the current goal is Hx1Eq.
Let x' be given.
rewrite the current goal using HxuDef (from right to left).
rewrite the current goal using HxuDef (from left to right) at position 1.
Apply (xm (x' = i)) to the current goal.
rewrite the current goal using Happ (from right to left).
rewrite the current goal using Hx'i (from right to left) at position 2.
An exact proof term for the current goal is Hx'Eq.
rewrite the current goal using
(If_i_1 (x' = ordsucc i) i x' Hx'si) (from left to right).
rewrite the current goal using Happ (from right to left).
rewrite the current goal using Hx'si (from right to left).
An exact proof term for the current goal is Hx'Eq.
rewrite the current goal using
(If_i_0 (x' = ordsucc i) i x' Hx'nsi) (from left to right).
rewrite the current goal using Happ (from left to right).
Use reflexivity.
rewrite the current goal using Htmp (from right to left).
An exact proof term for the current goal is Hx'Eq.
We prove the intermediate
claim Hx'u:
xu ∈ n.
rewrite the current goal using HxuDef (from left to right) at position 1.
Apply (xm (x' = i)) to the current goal.
An exact proof term for the current goal is HsiDom.
rewrite the current goal using
(If_i_1 (x' = ordsucc i) i x' Hx'si) (from left to right).
An exact proof term for the current goal is HiDom.
rewrite the current goal using
(If_i_0 (x' = ordsucc i) i x' Hx'nsi) (from left to right).
An exact proof term for the current goal is Hx'Dom.
We prove the intermediate
claim HxuEq:
xu = x0.
An exact proof term for the current goal is (Huniq0 xu Hx'u Hx'EqE).
rewrite the current goal using Hx1Def (from right to left).
Apply (xm (x' = i)) to the current goal.
We prove the intermediate
claim Hxu:
xu = ordsucc i.
rewrite the current goal using HxuDef (from left to right).
Use reflexivity.
We prove the intermediate
claim Hx0si:
x0 = ordsucc i.
rewrite the current goal using HxuEq (from right to left).
An exact proof term for the current goal is Hxu.
rewrite the current goal using Hx0si (from left to right) at position 1.
We prove the intermediate
claim Hneq:
¬ (ordsucc i = i).
We prove the intermediate
claim Hii:
i ∈ i.
rewrite the current goal using Heq (from right to left) at position 2.
An
exact proof term for the current goal is
(ordsuccI2 i).
An
exact proof term for the current goal is
((In_irref i) Hii).
rewrite the current goal using
(If_i_1 (x0 = ordsucc i) i x0 Hx0si) (from left to right).
rewrite the current goal using Hx'i (from right to left).
Use reflexivity.
We prove the intermediate
claim Hxu:
xu = i.
rewrite the current goal using HxuDef (from left to right).
rewrite the current goal using
(If_i_1 (x' = ordsucc i) i x' Hx'si) (from left to right).
Use reflexivity.
We prove the intermediate
claim Hx0i:
x0 = i.
rewrite the current goal using HxuEq (from right to left).
An exact proof term for the current goal is Hxu.
rewrite the current goal using Hx'si (from right to left).
Use reflexivity.
We prove the intermediate
claim Hxu:
xu = x'.
rewrite the current goal using HxuDef (from left to right).
rewrite the current goal using
(If_i_0 (x' = ordsucc i) i x' Hx'nsi) (from left to right).
Use reflexivity.
We prove the intermediate
claim Hx0x':
x0 = x'.
rewrite the current goal using HxuEq (from right to left).
An exact proof term for the current goal is Hxu.
rewrite the current goal using Hx0x' (from left to right) at position 1.
rewrite the current goal using Hx0x' (from left to right) at position 1.
rewrite the current goal using
(If_i_0 (x' = ordsucc i) i x0 Hx'nsi) (from left to right).
rewrite the current goal using Hx0x' (from left to right).
Use reflexivity.
∎