Let X, a1, b1x, a2, b2x, b1, b2 and x be given.
Assume Hso Ha1X Hb1xX Ha2X Hb2xX Hb1def Hb2def Hxb1 Hxb2.
We prove the intermediate
claim HxI1:
x ∈ I1.
rewrite the current goal using Hb1def (from right to left).
An exact proof term for the current goal is Hxb1.
We prove the intermediate
claim HxI2:
x ∈ I2.
rewrite the current goal using Hb2def (from right to left).
An exact proof term for the current goal is Hxb2.
We prove the intermediate
claim HxX:
x ∈ X.
We prove the intermediate
claim Ha1x:
order_rel X a1 x.
We prove the intermediate
claim Hxb1x:
order_rel X x b1x.
We prove the intermediate
claim Ha2x:
order_rel X a2 x.
We prove the intermediate
claim Hxb2x:
order_rel X x b2x.
We use a2 to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Ha2X.
Apply andI to the current goal.
We will
prove a2 = a1 ∨ a2 = a2.
Apply orIR to the current goal.
Use reflexivity.
Apply andI to the current goal.
An exact proof term for the current goal is Ha2x.
Apply andI to the current goal.
Apply orIR to the current goal.
An exact proof term for the current goal is Ha12.
Apply orIL to the current goal.
Use reflexivity.
We use a1 to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Ha1X.
Apply andI to the current goal.
We will
prove a1 = a1 ∨ a1 = a2.
Apply orIL to the current goal.
Use reflexivity.
Apply andI to the current goal.
An exact proof term for the current goal is Ha1x.
Apply andI to the current goal.
Apply orIL to the current goal.
Use reflexivity.
Apply orIL to the current goal.
rewrite the current goal using Haeq (from right to left).
Use reflexivity.
We use a1 to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Ha1X.
Apply andI to the current goal.
We will
prove a1 = a1 ∨ a1 = a2.
Apply orIL to the current goal.
Use reflexivity.
Apply andI to the current goal.
An exact proof term for the current goal is Ha1x.
Apply andI to the current goal.
Apply orIL to the current goal.
Use reflexivity.
Apply orIR to the current goal.
An exact proof term for the current goal is Ha21.
Apply Hexa to the current goal.
Let a3 be given.
Assume Ha3pack.
Apply Ha3pack to the current goal.
Assume Ha3X Ha3core.
We prove the intermediate
claim Ha3x:
order_rel X a3 x.
We prove the intermediate
claim Ha1le:
a1 = a3 ∨ order_rel X a1 a3.
We prove the intermediate
claim Ha2le:
a2 = a3 ∨ order_rel X a2 a3.
We use b1x to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hb1xX.
Apply andI to the current goal.
We will
prove b1x = b1x ∨ b1x = b2x.
Apply orIL to the current goal.
Use reflexivity.
Apply andI to the current goal.
An exact proof term for the current goal is Hxb1x.
Apply andI to the current goal.
Apply orIL to the current goal.
Use reflexivity.
Apply orIR to the current goal.
An exact proof term for the current goal is Hb12.
We use b1x to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hb1xX.
Apply andI to the current goal.
We will
prove b1x = b1x ∨ b1x = b2x.
Apply orIL to the current goal.
Use reflexivity.
Apply andI to the current goal.
An exact proof term for the current goal is Hxb1x.
Apply andI to the current goal.
Apply orIL to the current goal.
Use reflexivity.
Apply orIL to the current goal.
An exact proof term for the current goal is Hbeq.
We use b2x to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hb2xX.
Apply andI to the current goal.
We will
prove b2x = b1x ∨ b2x = b2x.
Apply orIR to the current goal.
Use reflexivity.
Apply andI to the current goal.
An exact proof term for the current goal is Hxb2x.
Apply andI to the current goal.
Apply orIR to the current goal.
An exact proof term for the current goal is Hb21.
Apply orIL to the current goal.
Use reflexivity.
Apply Hexb to the current goal.
Let b3x be given.
Assume Hb3pack.
Apply Hb3pack to the current goal.
Assume Hb3xX Hb3core.
We prove the intermediate
claim Hxb3x:
order_rel X x b3x.
We prove the intermediate
claim Hb1ge:
b3x = b1x ∨ order_rel X b3x b1x.
We prove the intermediate
claim Hb2ge:
b3x = b2x ∨ order_rel X b3x b2x.
Apply (PowerI X b3) to the current goal.
Let y be given.
We use a3 to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Ha3X.
We use b3x to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hb3xX.
We prove the intermediate
claim HxInb3:
x ∈ b3.
Apply andI to the current goal.
An exact proof term for the current goal is Ha3x.
An exact proof term for the current goal is Hxb3x.
We use b3 to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hb3basis.
Apply andI to the current goal.
An exact proof term for the current goal is HxInb3.
We will
prove b3 ⊆ b1 ∩ b2.
Let y be given.
We prove the intermediate
claim HyX:
y ∈ X.
We prove the intermediate
claim Ha3y:
order_rel X a3 y.
We prove the intermediate
claim Hyb3x:
order_rel X y b3x.
We prove the intermediate
claim Ha1y:
order_rel X a1 y.
Apply (Ha1le (order_rel X a1 y)) to the current goal.
rewrite the current goal using Ha1eq (from left to right).
An exact proof term for the current goal is Ha3y.
An
exact proof term for the current goal is
(order_rel_trans X a1 a3 y Hso Ha1X Ha3X HyX Ha1a3 Ha3y).
We prove the intermediate
claim Ha2y:
order_rel X a2 y.
Apply (Ha2le (order_rel X a2 y)) to the current goal.
rewrite the current goal using Ha2eq (from left to right).
An exact proof term for the current goal is Ha3y.
An
exact proof term for the current goal is
(order_rel_trans X a2 a3 y Hso Ha2X Ha3X HyX Ha2a3 Ha3y).
We prove the intermediate
claim Hyb1x:
order_rel X y b1x.
Apply (Hb1ge (order_rel X y b1x)) to the current goal.
rewrite the current goal using Hb3eqb1 (from right to left).
An exact proof term for the current goal is Hyb3x.
An
exact proof term for the current goal is
(order_rel_trans X y b3x b1x Hso HyX Hb3xX Hb1xX Hyb3x Hb3ltb1).
We prove the intermediate
claim Hyb2x:
order_rel X y b2x.
Apply (Hb2ge (order_rel X y b2x)) to the current goal.
rewrite the current goal using Hb3eqb2 (from right to left).
An exact proof term for the current goal is Hyb3x.
An
exact proof term for the current goal is
(order_rel_trans X y b3x b2x Hso HyX Hb3xX Hb2xX Hyb3x Hb3ltb2).
We prove the intermediate
claim Hyb1:
y ∈ b1.
rewrite the current goal using Hb1def (from left to right).
Apply andI to the current goal.
An exact proof term for the current goal is Ha1y.
An exact proof term for the current goal is Hyb1x.
We prove the intermediate
claim Hyb2:
y ∈ b2.
rewrite the current goal using Hb2def (from left to right).
Apply andI to the current goal.
An exact proof term for the current goal is Ha2y.
An exact proof term for the current goal is Hyb2x.
An
exact proof term for the current goal is
(binintersectI b1 b2 y Hyb1 Hyb2).
∎