Let p be given.
We will
prove p ∈ U1 ∩ U2.
An exact proof term for the current goal is Hp.
We prove the intermediate
claim Hp0Sing:
p 0 ∈ {a}.
We prove the intermediate
claim Hp0eq:
p 0 = a.
An
exact proof term for the current goal is
(SingE a (p 0) Hp0Sing).
We prove the intermediate
claim Hp1R:
p 1 ∈ R.
An
exact proof term for the current goal is
(SepE1 R (λz : set ⇒ Rlt q1 z ∧ Rlt z q2) (p 1) Hp1Int).
We prove the intermediate
claim Hp1ineq:
Rlt q1 (p 1) ∧ Rlt (p 1) q2.
An
exact proof term for the current goal is
(SepE2 R (λz : set ⇒ Rlt q1 z ∧ Rlt z q2) (p 1) Hp1Int).
We prove the intermediate
claim HltL:
Rlt q1 (p 1).
An
exact proof term for the current goal is
(andEL (Rlt q1 (p 1)) (Rlt (p 1) q2) Hp1ineq).
We prove the intermediate
claim HltU:
Rlt (p 1) q2.
An
exact proof term for the current goal is
(andER (Rlt q1 (p 1)) (Rlt (p 1) q2) Hp1ineq).
We prove the intermediate
claim HsingSub:
{a} ⊆ R.
Let y be given.
An
exact proof term for the current goal is
(SepE1 R (λz : set ⇒ Rlt q1 z ∧ Rlt z q2) y Hy).
We prove the intermediate
claim HpX0:
p ∈ X0.
We prove the intermediate
claim HpEta:
p = (p 0,p 1).
An
exact proof term for the current goal is
(setprod_eta R R p HpX0).
We prove the intermediate
claim HrelU1:
order_rel X0 pL (p 0,p 1).
We prove the intermediate
claim Hcore:
a = p 0 ∧ Rlt q1 (p 1).
Apply andI to the current goal.
rewrite the current goal using Hp0eq (from right to left).
Use reflexivity.
An exact proof term for the current goal is HltL.
We prove the intermediate
claim HrelU2:
order_rel X0 (p 0,p 1) pU.
We prove the intermediate
claim Hcore:
(p 0) = a ∧ Rlt (p 1) q2.
Apply andI to the current goal.
rewrite the current goal using Hp0eq (from left to right).
Use reflexivity.
An exact proof term for the current goal is HltU.
We prove the intermediate
claim HpX0pair:
(p 0,p 1) ∈ X0.
rewrite the current goal using HpEta (from right to left).
An exact proof term for the current goal is HpX0.
rewrite the current goal using HpEta (from left to right).
An
exact proof term for the current goal is
(SepI X0 (λx0 : set ⇒ order_rel X0 pL x0) (p 0,p 1) HpX0pair HrelU1).
rewrite the current goal using HpEta (from left to right).
An
exact proof term for the current goal is
(SepI X0 (λx0 : set ⇒ order_rel X0 x0 pU) (p 0,p 1) HpX0pair HrelU2).
Let p be given.
We prove the intermediate
claim HpU1:
p ∈ U1.
An
exact proof term for the current goal is
(binintersectE1 U1 U2 p Hp).
We prove the intermediate
claim HpU2:
p ∈ U2.
An
exact proof term for the current goal is
(binintersectE2 U1 U2 p Hp).
We prove the intermediate
claim HpX0:
p ∈ X0.
An
exact proof term for the current goal is
(SepE1 X0 (λx0 : set ⇒ order_rel X0 pL x0) p HpU1).
Set p0 to be the term
p 0.
Set p1 to be the term
p 1.
We prove the intermediate
claim HpEta:
p = (p0,p1).
An
exact proof term for the current goal is
(setprod_eta R R p HpX0).
We prove the intermediate
claim Hrel1:
order_rel X0 pL p.
An
exact proof term for the current goal is
(SepE2 X0 (λx0 : set ⇒ order_rel X0 pL x0) p HpU1).
We prove the intermediate
claim Hrel2:
order_rel X0 p pU.
An
exact proof term for the current goal is
(SepE2 X0 (λx0 : set ⇒ order_rel X0 x0 pU) p HpU2).
We prove the intermediate
claim Hrel1':
order_rel X0 pL (p0,p1).
rewrite the current goal using HpEta (from right to left) at position 1.
An exact proof term for the current goal is Hrel1.
We prove the intermediate
claim Hrel2':
order_rel X0 (p0,p1) pU.
rewrite the current goal using HpEta (from right to left) at position 1.
An exact proof term for the current goal is Hrel2.
We prove the intermediate
claim Hex1:
∃a1 a2 b1 b2 : set, pL = (a1,a2) ∧ (p0,p1) = (b1,b2) ∧ (Rlt a1 b1 ∨ (a1 = b1 ∧ Rlt a2 b2)).
We prove the intermediate
claim Hex2:
∃a1 a2 b1 b2 : set, (p0,p1) = (a1,a2) ∧ pU = (b1,b2) ∧ (Rlt a1 b1 ∨ (a1 = b1 ∧ Rlt a2 b2)).
Apply Hex1 to the current goal.
Let a1 be given.
Assume Hc1.
Apply Hc1 to the current goal.
Let a2 be given.
Assume Hc2.
Apply Hc2 to the current goal.
Let b1 be given.
Assume Hd1.
Apply Hd1 to the current goal.
Let b2 be given.
Assume Hpack1.
We prove the intermediate
claim Heq1:
pL = (a1,a2) ∧ (p0,p1) = (b1,b2).
An
exact proof term for the current goal is
(andEL (pL = (a1,a2) ∧ (p0,p1) = (b1,b2)) (Rlt a1 b1 ∨ (a1 = b1 ∧ Rlt a2 b2)) Hpack1).
We prove the intermediate
claim Hdisj1:
Rlt a1 b1 ∨ (a1 = b1 ∧ Rlt a2 b2).
An
exact proof term for the current goal is
(andER (pL = (a1,a2) ∧ (p0,p1) = (b1,b2)) (Rlt a1 b1 ∨ (a1 = b1 ∧ Rlt a2 b2)) Hpack1).
We prove the intermediate
claim HpLeq:
pL = (a1,a2).
An
exact proof term for the current goal is
(andEL (pL = (a1,a2)) ((p0,p1) = (b1,b2)) Heq1).
We prove the intermediate
claim HppEq:
(p0,p1) = (b1,b2).
An
exact proof term for the current goal is
(andER (pL = (a1,a2)) ((p0,p1) = (b1,b2)) Heq1).
We prove the intermediate
claim Ha1eq:
a1 = a.
We prove the intermediate
claim Ha1eq0:
a = a1.
rewrite the current goal using
(tuple_2_0_eq a q1) (from right to left).
rewrite the current goal using
(tuple_2_0_eq a1 a2) (from right to left).
rewrite the current goal using HpLeq (from right to left).
Use reflexivity.
rewrite the current goal using Ha1eq0 (from left to right).
Use reflexivity.
We prove the intermediate
claim Ha2eq:
a2 = q1.
We prove the intermediate
claim Ha2eq0:
q1 = a2.
rewrite the current goal using
(tuple_2_1_eq a q1) (from right to left).
rewrite the current goal using
(tuple_2_1_eq a1 a2) (from right to left).
rewrite the current goal using HpLeq (from right to left).
Use reflexivity.
rewrite the current goal using Ha2eq0 (from left to right).
Use reflexivity.
We prove the intermediate
claim Hb1eq:
b1 = p0.
We prove the intermediate
claim Hb1eq0:
p0 = b1.
rewrite the current goal using
(tuple_2_0_eq p0 p1) (from right to left).
rewrite the current goal using
(tuple_2_0_eq b1 b2) (from right to left).
rewrite the current goal using HppEq (from left to right).
Use reflexivity.
rewrite the current goal using Hb1eq0 (from left to right).
Use reflexivity.
We prove the intermediate
claim Hb2eq:
b2 = p1.
We prove the intermediate
claim Hb2eq0:
p1 = b2.
rewrite the current goal using
(tuple_2_1_eq p0 p1) (from right to left).
rewrite the current goal using
(tuple_2_1_eq b1 b2) (from right to left).
rewrite the current goal using HppEq (from left to right).
Use reflexivity.
rewrite the current goal using Hb2eq0 (from left to right).
Use reflexivity.
We prove the intermediate
claim Hcases1:
Rlt a p0 ∨ (a = p0 ∧ Rlt q1 p1).
Apply Hdisj1 to the current goal.
Assume Hlt.
Apply orIL to the current goal.
rewrite the current goal using Ha1eq (from right to left) at position 1.
rewrite the current goal using Hb1eq (from right to left) at position 1.
An exact proof term for the current goal is Hlt.
Assume Hcore.
Apply orIR to the current goal.
Apply andI to the current goal.
rewrite the current goal using Ha1eq (from right to left) at position 1.
rewrite the current goal using Hb1eq (from right to left) at position 1.
An
exact proof term for the current goal is
(andEL (a1 = b1) (Rlt a2 b2) Hcore).
rewrite the current goal using Ha2eq (from right to left) at position 1.
rewrite the current goal using Hb2eq (from right to left) at position 1.
An
exact proof term for the current goal is
(andER (a1 = b1) (Rlt a2 b2) Hcore).
Apply Hex2 to the current goal.
Let c1 be given.
Assume Hc1'.
Apply Hc1' to the current goal.
Let c2 be given.
Assume Hc2'.
Apply Hc2' to the current goal.
Let d1 be given.
Assume Hd1'.
Apply Hd1' to the current goal.
Let d2 be given.
Assume Hpack2.
We prove the intermediate
claim Heq2:
(p0,p1) = (c1,c2) ∧ pU = (d1,d2).
An
exact proof term for the current goal is
(andEL ((p0,p1) = (c1,c2) ∧ pU = (d1,d2)) (Rlt c1 d1 ∨ (c1 = d1 ∧ Rlt c2 d2)) Hpack2).
We prove the intermediate
claim Hdisj2:
Rlt c1 d1 ∨ (c1 = d1 ∧ Rlt c2 d2).
An
exact proof term for the current goal is
(andER ((p0,p1) = (c1,c2) ∧ pU = (d1,d2)) (Rlt c1 d1 ∨ (c1 = d1 ∧ Rlt c2 d2)) Hpack2).
We prove the intermediate
claim HpcEq:
(p0,p1) = (c1,c2).
An
exact proof term for the current goal is
(andEL ((p0,p1) = (c1,c2)) (pU = (d1,d2)) Heq2).
We prove the intermediate
claim HpUeq:
pU = (d1,d2).
An
exact proof term for the current goal is
(andER ((p0,p1) = (c1,c2)) (pU = (d1,d2)) Heq2).
We prove the intermediate
claim Hc1eq:
c1 = p0.
We prove the intermediate
claim Hc1eq0:
p0 = c1.
rewrite the current goal using
(tuple_2_0_eq p0 p1) (from right to left).
rewrite the current goal using
(tuple_2_0_eq c1 c2) (from right to left).
rewrite the current goal using HpcEq (from left to right).
Use reflexivity.
rewrite the current goal using Hc1eq0 (from left to right).
Use reflexivity.
We prove the intermediate
claim Hc2eq:
c2 = p1.
We prove the intermediate
claim Hc2eq0:
p1 = c2.
rewrite the current goal using
(tuple_2_1_eq p0 p1) (from right to left).
rewrite the current goal using
(tuple_2_1_eq c1 c2) (from right to left).
rewrite the current goal using HpcEq (from left to right).
Use reflexivity.
rewrite the current goal using Hc2eq0 (from left to right).
Use reflexivity.
We prove the intermediate
claim Hd1eq:
d1 = a.
We prove the intermediate
claim Hd1eq0:
a = d1.
rewrite the current goal using
(tuple_2_0_eq a q2) (from right to left).
rewrite the current goal using
(tuple_2_0_eq d1 d2) (from right to left).
rewrite the current goal using HpUeq (from right to left).
Use reflexivity.
rewrite the current goal using Hd1eq0 (from left to right).
Use reflexivity.
We prove the intermediate
claim Hd2eq:
d2 = q2.
We prove the intermediate
claim Hd2eq0:
q2 = d2.
rewrite the current goal using
(tuple_2_1_eq a q2) (from right to left).
rewrite the current goal using
(tuple_2_1_eq d1 d2) (from right to left).
rewrite the current goal using HpUeq (from right to left).
Use reflexivity.
rewrite the current goal using Hd2eq0 (from left to right).
Use reflexivity.
We prove the intermediate
claim Hcases2:
Rlt p0 a ∨ (p0 = a ∧ Rlt p1 q2).
Apply Hdisj2 to the current goal.
Assume Hlt.
Apply orIL to the current goal.
rewrite the current goal using Hc1eq (from right to left) at position 1.
rewrite the current goal using Hd1eq (from right to left) at position 1.
An exact proof term for the current goal is Hlt.
Assume Hcore.
Apply orIR to the current goal.
Apply andI to the current goal.
rewrite the current goal using Hc1eq (from right to left) at position 1.
rewrite the current goal using Hd1eq (from right to left) at position 1.
An
exact proof term for the current goal is
(andEL (c1 = d1) (Rlt c2 d2) Hcore).
rewrite the current goal using Hc2eq (from right to left) at position 1.
rewrite the current goal using Hd2eq (from right to left) at position 1.
An
exact proof term for the current goal is
(andER (c1 = d1) (Rlt c2 d2) Hcore).
We prove the intermediate
claim Hp0eq:
p0 = a.
Apply Hcases1 to the current goal.
Assume Hltap0.
Apply FalseE to the current goal.
Apply Hcases2 to the current goal.
Assume Hltp0a.
An
exact proof term for the current goal is
(not_Rlt_sym a p0 Hltap0 Hltp0a).
Assume Hcore.
We prove the intermediate
claim Hp0a:
p0 = a.
An
exact proof term for the current goal is
(andEL (p0 = a) (Rlt p1 q2) Hcore).
We prove the intermediate
claim HltAA:
Rlt a a.
rewrite the current goal using Hp0a (from right to left) at position 2.
An exact proof term for the current goal is Hltap0.
An
exact proof term for the current goal is
(not_Rlt_refl a HaR HltAA).
Assume Hcore.
We prove the intermediate
claim Haeqp0:
a = p0.
An
exact proof term for the current goal is
(andEL (a = p0) (Rlt q1 p1) Hcore).
Use symmetry.
An exact proof term for the current goal is Haeqp0.
We prove the intermediate
claim Hltq1:
Rlt q1 p1.
Apply Hcases1 to the current goal.
Assume Hltap0.
Apply FalseE to the current goal.
Apply Hcases2 to the current goal.
Assume Hltp0a.
An
exact proof term for the current goal is
(not_Rlt_sym a p0 Hltap0 Hltp0a).
Assume Hcore.
We prove the intermediate
claim Hp0a:
p0 = a.
An
exact proof term for the current goal is
(andEL (p0 = a) (Rlt p1 q2) Hcore).
We prove the intermediate
claim HltAA:
Rlt a a.
rewrite the current goal using Hp0a (from right to left) at position 2.
An exact proof term for the current goal is Hltap0.
An
exact proof term for the current goal is
(not_Rlt_refl a HaR HltAA).
Assume Hcore.
An
exact proof term for the current goal is
(andER (a = p0) (Rlt q1 p1) Hcore).
We prove the intermediate
claim Hltq2:
Rlt p1 q2.
Apply Hcases2 to the current goal.
Assume Hltp0a.
Apply FalseE to the current goal.
We prove the intermediate
claim HltAA:
Rlt a a.
rewrite the current goal using Hp0eq (from right to left) at position 1.
An exact proof term for the current goal is Hltp0a.
An
exact proof term for the current goal is
(not_Rlt_refl a HaR HltAA).
Assume Hcore.
An
exact proof term for the current goal is
(andER (p0 = a) (Rlt p1 q2) Hcore).
We prove the intermediate
claim Hp0Sing:
p0 ∈ {a}.
rewrite the current goal using Hp0eq (from right to left).
An
exact proof term for the current goal is
(SingI p0).
We prove the intermediate
claim Hconj:
Rlt q1 p1 ∧ Rlt p1 q2.
Apply andI to the current goal.
An exact proof term for the current goal is Hltq1.
An exact proof term for the current goal is Hltq2.
An
exact proof term for the current goal is
(SepI R (λz : set ⇒ Rlt q1 z ∧ Rlt z q2) p1 (ap1_Sigma R (λ_ : set ⇒ R) p HpX0) Hconj).
rewrite the current goal using HpEta (from left to right).