Let x be given.
We prove the intermediate
claim HxX:
x ∈ X.
We prove the intermediate
claim Hrel1:
order_rel X a x.
We prove the intermediate
claim Hrel2:
order_rel X x b.
We prove the intermediate
claim Hex1:
∃a1 a2 b1 b2 : set, a = (a1,a2) ∧ x = (b1,b2) ∧ (Rlt a1 b1 ∨ (a1 = b1 ∧ Rlt a2 b2)).
We prove the intermediate
claim Hex2:
∃a1 a2 b1 b2 : set, x = (a1,a2) ∧ b = (b1,b2) ∧ (Rlt a1 b1 ∨ (a1 = b1 ∧ Rlt a2 b2)).
Apply Hex1 to the current goal.
Let a1 be given.
Assume Ha1pack.
Apply Ha1pack to the current goal.
Let a2 be given.
Assume Ha2pack.
Apply Ha2pack to the current goal.
Let x1 be given.
Assume Hx1pack.
Apply Hx1pack to the current goal.
Let x2 be given.
Assume Hcore1.
We prove the intermediate
claim Hax:
a = (a1,a2) ∧ x = (x1,x2).
An
exact proof term for the current goal is
(andEL (a = (a1,a2) ∧ x = (x1,x2)) (Rlt a1 x1 ∨ (a1 = x1 ∧ Rlt a2 x2)) Hcore1).
We prove the intermediate
claim Ha_eq:
a = (a1,a2).
An
exact proof term for the current goal is
(andEL (a = (a1,a2)) (x = (x1,x2)) Hax).
We prove the intermediate
claim Hx_eq:
x = (x1,x2).
An
exact proof term for the current goal is
(andER (a = (a1,a2)) (x = (x1,x2)) Hax).
We prove the intermediate
claim Hlex1:
Rlt a1 x1 ∨ (a1 = x1 ∧ Rlt a2 x2).
An
exact proof term for the current goal is
(andER (a = (a1,a2) ∧ x = (x1,x2)) (Rlt a1 x1 ∨ (a1 = x1 ∧ Rlt a2 x2)) Hcore1).
Apply Hex2 to the current goal.
Let y1 be given.
Assume Hy1pack.
Apply Hy1pack to the current goal.
Let y2 be given.
Assume Hy2pack.
Apply Hy2pack to the current goal.
Let b1 be given.
Assume Hb1pack.
Apply Hb1pack to the current goal.
Let b2 be given.
Assume Hcore2.
We prove the intermediate
claim Hxb:
x = (y1,y2) ∧ b = (b1,b2).
An
exact proof term for the current goal is
(andEL (x = (y1,y2) ∧ b = (b1,b2)) (Rlt y1 b1 ∨ (y1 = b1 ∧ Rlt y2 b2)) Hcore2).
We prove the intermediate
claim Hx_eq2:
x = (y1,y2).
An
exact proof term for the current goal is
(andEL (x = (y1,y2)) (b = (b1,b2)) Hxb).
We prove the intermediate
claim Hb_eq:
b = (b1,b2).
An
exact proof term for the current goal is
(andER (x = (y1,y2)) (b = (b1,b2)) Hxb).
We prove the intermediate
claim Hlex2:
Rlt y1 b1 ∨ (y1 = b1 ∧ Rlt y2 b2).
An
exact proof term for the current goal is
(andER (x = (y1,y2) ∧ b = (b1,b2)) (Rlt y1 b1 ∨ (y1 = b1 ∧ Rlt y2 b2)) Hcore2).
We prove the intermediate
claim HaDef:
a = (eps_ 1,eps_ 1).
We prove the intermediate
claim HbDef:
b = (eps_ 1,1).
We prove the intermediate
claim Ha0:
a 0 = eps_ 1.
rewrite the current goal using HaDef (from left to right).
We prove the intermediate
claim Ha1:
a 1 = eps_ 1.
rewrite the current goal using HaDef (from left to right).
We prove the intermediate
claim Hb0:
b 0 = eps_ 1.
rewrite the current goal using HbDef (from left to right).
We prove the intermediate
claim Hb1:
b 1 = 1.
rewrite the current goal using HbDef (from left to right).
We prove the intermediate
claim Ha0a1:
a 0 = a1.
rewrite the current goal using Ha_eq (from left to right).
An
exact proof term for the current goal is
(tuple_2_0_eq a1 a2).
We prove the intermediate
claim Ha1a2:
a 1 = a2.
rewrite the current goal using Ha_eq (from left to right).
An
exact proof term for the current goal is
(tuple_2_1_eq a1 a2).
We prove the intermediate
claim Hb0b1:
b 0 = b1.
rewrite the current goal using Hb_eq (from left to right).
An
exact proof term for the current goal is
(tuple_2_0_eq b1 b2).
We prove the intermediate
claim Hb1b2:
b 1 = b2.
rewrite the current goal using Hb_eq (from left to right).
An
exact proof term for the current goal is
(tuple_2_1_eq b1 b2).
We prove the intermediate
claim Ha1eq:
a1 = eps_ 1.
rewrite the current goal using Ha0a1 (from right to left).
An exact proof term for the current goal is Ha0.
We prove the intermediate
claim Ha2eq:
a2 = eps_ 1.
rewrite the current goal using Ha1a2 (from right to left).
An exact proof term for the current goal is Ha1.
We prove the intermediate
claim Hb1eq:
b1 = eps_ 1.
rewrite the current goal using Hb0b1 (from right to left).
An exact proof term for the current goal is Hb0.
We prove the intermediate
claim Hb2eq:
b2 = 1.
rewrite the current goal using Hb1b2 (from right to left).
An exact proof term for the current goal is Hb1.
We prove the intermediate
claim Hx1eq0:
x 0 = x1.
rewrite the current goal using Hx_eq (from left to right).
An
exact proof term for the current goal is
(tuple_2_0_eq x1 x2).
We prove the intermediate
claim Hx1eq1:
x 1 = x2.
rewrite the current goal using Hx_eq (from left to right).
An
exact proof term for the current goal is
(tuple_2_1_eq x1 x2).
We prove the intermediate
claim Hy1eq0:
x 0 = y1.
rewrite the current goal using Hx_eq2 (from left to right).
An
exact proof term for the current goal is
(tuple_2_0_eq y1 y2).
We prove the intermediate
claim Hy1eq1:
x 1 = y2.
rewrite the current goal using Hx_eq2 (from left to right).
An
exact proof term for the current goal is
(tuple_2_1_eq y1 y2).
We prove the intermediate
claim Hx1y1:
x1 = y1.
rewrite the current goal using Hx1eq0 (from right to left).
rewrite the current goal using Hy1eq0 (from right to left).
Use reflexivity.
We prove the intermediate
claim Hx2y2:
x2 = y2.
rewrite the current goal using Hx1eq1 (from right to left).
rewrite the current goal using Hy1eq1 (from right to left).
Use reflexivity.
We prove the intermediate
claim Hx1eq:
x1 = eps_ 1.
We prove the intermediate
claim Hnotlt:
¬ (Rlt x1 (eps_ 1)).
Apply (Hlex1 (¬ (Rlt x1 (eps_ 1)))) to the current goal.
We prove the intermediate
claim Hepslt:
Rlt (eps_ 1) x1.
rewrite the current goal using Ha1eq (from right to left).
An exact proof term for the current goal is Hlt.
Assume Hpair.
We prove the intermediate
claim Ha1x1:
a1 = x1.
An
exact proof term for the current goal is
(andEL (a1 = x1) (Rlt a2 x2) Hpair).
We prove the intermediate
claim Hx1eps:
x1 = eps_ 1.
rewrite the current goal using Ha1x1 (from right to left).
An exact proof term for the current goal is Ha1eq.
rewrite the current goal using Hx1eps (from right to left) at position 1.
An exact proof term for the current goal is Hbad.
Apply (Hlex2 (x1 = eps_ 1)) to the current goal.
Apply FalseE to the current goal.
We prove the intermediate
claim Hy1lt2:
Rlt x1 (eps_ 1).
rewrite the current goal using Hx1y1 (from left to right).
rewrite the current goal using Hb1eq (from right to left).
An exact proof term for the current goal is Hy1lt.
An exact proof term for the current goal is (Hnotlt Hy1lt2).
Assume Hpair2.
We prove the intermediate
claim Hy1b1:
y1 = b1.
An
exact proof term for the current goal is
(andEL (y1 = b1) (Rlt y2 b2) Hpair2).
rewrite the current goal using Hx1y1 (from left to right).
rewrite the current goal using Hy1b1 (from left to right).
An exact proof term for the current goal is Hb1eq.
We prove the intermediate
claim Hx1eps:
x 0 = eps_ 1.
rewrite the current goal using Hx1eq0 (from left to right).
An exact proof term for the current goal is Hx1eq.
We prove the intermediate
claim Hx2lt1:
Rlt x2 1.
We prove the intermediate
claim Hy1eqb1:
y1 = b1.
rewrite the current goal using Hx1y1 (from right to left).
rewrite the current goal using Hx1eq (from left to right).
rewrite the current goal using Hb1eq (from right to left).
Use reflexivity.
We prove the intermediate
claim Hb1R:
b1 ∈ R.
rewrite the current goal using Hb1eq (from left to right).
An
exact proof term for the current goal is
eps_1_in_R.
Apply (Hlex2 (Rlt x2 1)) to the current goal.
Apply FalseE to the current goal.
We prove the intermediate
claim Hbad:
Rlt b1 b1.
rewrite the current goal using Hy1eqb1 (from right to left) at position 1.
An exact proof term for the current goal is Hy1lt.
An
exact proof term for the current goal is
((not_Rlt_refl b1 Hb1R) Hbad).
Assume Hpair.
We prove the intermediate
claim Hy2b2:
Rlt y2 b2.
An
exact proof term for the current goal is
(andER (y1 = b1) (Rlt y2 b2) Hpair).
rewrite the current goal using Hx2y2 (from left to right) at position 1.
rewrite the current goal using Hb2eq (from right to left).
An exact proof term for the current goal is Hy2b2.
We prove the intermediate
claim Hx2R:
x2 ∈ R.
An
exact proof term for the current goal is
(RltE_left x2 1 Hx2lt1).
We prove the intermediate
claim Hepsltx2:
Rlt (eps_ 1) x2.
Apply (Hlex1 (Rlt (eps_ 1) x2)) to the current goal.
Apply FalseE to the current goal.
rewrite the current goal using Ha1eq (from right to left) at position 1.
rewrite the current goal using Hx1eq (from right to left).
An exact proof term for the current goal is Hlt.
Assume Hpair.
We prove the intermediate
claim Ha2x2:
Rlt a2 x2.
An
exact proof term for the current goal is
(andER (a1 = x1) (Rlt a2 x2) Hpair).
rewrite the current goal using Ha2eq (from right to left) at position 1.
An exact proof term for the current goal is Ha2x2.
We prove the intermediate
claim H0ltx2:
Rlt 0 x2.
We prove the intermediate
claim Hnltx20:
¬ (Rlt x2 0).
An
exact proof term for the current goal is
(not_Rlt_sym 0 x2 H0ltx2).
We prove the intermediate
claim Hnlt1x2:
¬ (Rlt 1 x2).
An
exact proof term for the current goal is
(not_Rlt_sym x2 1 Hx2lt1).
An
exact proof term for the current goal is
(SepI R (λz : set ⇒ ¬ (Rlt z 0) ∧ ¬ (Rlt 1 z)) x2 Hx2R (andI (¬ (Rlt x2 0)) (¬ (Rlt 1 x2)) Hnltx20 Hnlt1x2)).
rewrite the current goal using Hsqdef (from left to right).
rewrite the current goal using Hx1eq (from left to right).
rewrite the current goal using Hx_eq (from left to right).
rewrite the current goal using Hstripdef (from left to right).
We use x2 to witness the existential quantifier.
Apply andI to the current goal.
Apply andI to the current goal.
rewrite the current goal using Hx_eq (from left to right).
rewrite the current goal using Hx1eq (from left to right).
Use reflexivity.
An exact proof term for the current goal is Hepsltx2.
An
exact proof term for the current goal is
(not_Rlt_sym x2 1 Hx2lt1).