Let V be given.
We prove the intermediate
claim HexU0:
∃U0 ∈ Tx, preimage_of A f V = U0 ∩ A.
An
exact proof term for the current goal is
(SepE2 (𝒫 A) (λU : set ⇒ ∃U0 ∈ Tx, U = U0 ∩ A) (preimage_of A f V) HpreA).
Apply HexU0 to the current goal.
Let U0 be given.
Assume HU0pair.
We prove the intermediate
claim HU0:
U0 ∈ Tx.
An
exact proof term for the current goal is
(andEL (U0 ∈ Tx) (preimage_of A f V = U0 ∩ A) HU0pair).
We prove the intermediate
claim HpreAeq:
preimage_of A f V = U0 ∩ A.
An
exact proof term for the current goal is
(andER (U0 ∈ Tx) (preimage_of A f V = U0 ∩ A) HU0pair).
We prove the intermediate
claim HexW0:
∃W0 ∈ Tx, preimage_of B g V = W0 ∩ B.
An
exact proof term for the current goal is
(SepE2 (𝒫 B) (λU : set ⇒ ∃W0 ∈ Tx, U = W0 ∩ B) (preimage_of B g V) HpreB).
Apply HexW0 to the current goal.
Let W0 be given.
Assume HW0pair.
We prove the intermediate
claim HW0:
W0 ∈ Tx.
An
exact proof term for the current goal is
(andEL (W0 ∈ Tx) (preimage_of B g V = W0 ∩ B) HW0pair).
We prove the intermediate
claim HpreBeq:
preimage_of B g V = W0 ∩ B.
An
exact proof term for the current goal is
(andER (W0 ∈ Tx) (preimage_of B g V = W0 ∩ B) HW0pair).
We prove the intermediate
claim HcompAin:
open_in X Tx (X ∖ A).
We prove the intermediate
claim HcompA:
(X ∖ A) ∈ Tx.
An
exact proof term for the current goal is
(open_in_elem X Tx (X ∖ A) HcompAin).
We prove the intermediate
claim HcompBin:
open_in X Tx (X ∖ B).
We prove the intermediate
claim HcompB:
(X ∖ B) ∈ Tx.
An
exact proof term for the current goal is
(open_in_elem X Tx (X ∖ B) HcompBin).
Set U to be the term
U0 ∪ (X ∖ A).
Set W to be the term
W0 ∪ (X ∖ B).
We prove the intermediate
claim HUopen:
U ∈ Tx.
We prove the intermediate
claim HWopen:
W ∈ Tx.
Let x be given.
We prove the intermediate
claim HxX:
x ∈ X.
An
exact proof term for the current goal is
(SepE1 X (λx0 : set ⇒ apply_fun h x0 ∈ V) x Hx).
We prove the intermediate
claim HhxV:
apply_fun h x ∈ V.
An
exact proof term for the current goal is
(SepE2 X (λx0 : set ⇒ apply_fun h x0 ∈ V) x Hx).
We prove the intermediate
claim HxU:
x ∈ U.
Apply (xm (x ∈ A)) to the current goal.
We prove the intermediate
claim HfxV:
apply_fun f x ∈ V.
rewrite the current goal using Happ (from right to left).
An exact proof term for the current goal is HhxV.
We prove the intermediate
claim HxPreA:
x ∈ preimage_of A f V.
An
exact proof term for the current goal is
(SepI A (λx0 : set ⇒ apply_fun f x0 ∈ V) x HxA HfxV).
We prove the intermediate
claim HxU0A:
x ∈ U0 ∩ A.
rewrite the current goal using HpreAeq (from right to left).
An exact proof term for the current goal is HxPreA.
We prove the intermediate
claim HxU0:
x ∈ U0.
An
exact proof term for the current goal is
(binintersectE1 U0 A x HxU0A).
An
exact proof term for the current goal is
(binunionI1 U0 (X ∖ A) x HxU0).
We prove the intermediate
claim HxXA:
x ∈ (X ∖ A).
An
exact proof term for the current goal is
(setminusI X A x HxX HxNotA).
An
exact proof term for the current goal is
(binunionI2 U0 (X ∖ A) x HxXA).
We prove the intermediate
claim HxW:
x ∈ W.
Apply (xm (x ∈ B)) to the current goal.
We prove the intermediate
claim HgV:
apply_fun g x ∈ V.
Apply (xm (x ∈ A)) to the current goal.
We prove the intermediate
claim HxAB:
x ∈ A ∩ B.
An
exact proof term for the current goal is
(binintersectI A B x HxA HxB).
An exact proof term for the current goal is (Hagree x HxAB).
We prove the intermediate
claim HfxV:
apply_fun f x ∈ V.
rewrite the current goal using Happ (from right to left).
An exact proof term for the current goal is HhxV.
rewrite the current goal using Heqfg (from right to left).
An exact proof term for the current goal is HfxV.
rewrite the current goal using Happ (from right to left).
An exact proof term for the current goal is HhxV.
We prove the intermediate
claim HxPreB:
x ∈ preimage_of B g V.
An
exact proof term for the current goal is
(SepI B (λx0 : set ⇒ apply_fun g x0 ∈ V) x HxB HgV).
We prove the intermediate
claim HxW0B:
x ∈ W0 ∩ B.
rewrite the current goal using HpreBeq (from right to left).
An exact proof term for the current goal is HxPreB.
We prove the intermediate
claim HxW0:
x ∈ W0.
An
exact proof term for the current goal is
(binintersectE1 W0 B x HxW0B).
An
exact proof term for the current goal is
(binunionI1 W0 (X ∖ B) x HxW0).
We prove the intermediate
claim HxXB:
x ∈ (X ∖ B).
An
exact proof term for the current goal is
(setminusI X B x HxX HxNotB).
An
exact proof term for the current goal is
(binunionI2 W0 (X ∖ B) x HxXB).
An
exact proof term for the current goal is
(binintersectI U W x HxU HxW).
Let x be given.
We prove the intermediate
claim HxU:
x ∈ U.
An
exact proof term for the current goal is
(binintersectE1 U W x Hx).
We prove the intermediate
claim HxW:
x ∈ W.
An
exact proof term for the current goal is
(binintersectE2 U W x Hx).
Apply (xm (x ∈ A)) to the current goal.
We prove the intermediate
claim HxX:
x ∈ X.
We prove the intermediate
claim HA_sub:
A ⊆ X.
rewrite the current goal using HABeq (from right to left).
An exact proof term for the current goal is (HA_sub x HxA).
We prove the intermediate
claim HxU0:
x ∈ U0.
Apply (binunionE U0 (X ∖ A) x HxU) to the current goal.
An exact proof term for the current goal is HxU0.
We prove the intermediate
claim HnotA:
x ∉ A.
An
exact proof term for the current goal is
(setminusE2 X A x HxXA).
Apply FalseE to the current goal.
An exact proof term for the current goal is (HnotA HxA).
We prove the intermediate
claim HxPreA:
x ∈ preimage_of A f V.
We prove the intermediate
claim HxU0A:
x ∈ U0 ∩ A.
An
exact proof term for the current goal is
(binintersectI U0 A x HxU0 HxA).
rewrite the current goal using HpreAeq (from left to right).
An exact proof term for the current goal is HxU0A.
We prove the intermediate
claim HfxV:
apply_fun f x ∈ V.
An
exact proof term for the current goal is
(SepE2 A (λx0 : set ⇒ apply_fun f x0 ∈ V) x HxPreA).
We prove the intermediate
claim HhxV':
apply_fun h x ∈ V.
rewrite the current goal using Happ (from left to right).
An exact proof term for the current goal is HfxV.
An
exact proof term for the current goal is
(SepI X (λx0 : set ⇒ apply_fun h x0 ∈ V) x HxX HhxV').
We prove the intermediate
claim HxX:
x ∈ X.
Apply (binunionE U0 (X ∖ A) x HxU) to the current goal.
We prove the intermediate
claim HU0sub:
U0 ⊆ X.
An exact proof term for the current goal is (HU0sub x HxU0).
An
exact proof term for the current goal is
(setminusE1 X A x HxXA).
We prove the intermediate
claim HxAB:
x ∈ A ∪ B.
rewrite the current goal using HABeq (from left to right).
An exact proof term for the current goal is HxX.
We prove the intermediate
claim HxB:
x ∈ B.
Apply (binunionE A B x HxAB) to the current goal.
Apply FalseE to the current goal.
An exact proof term for the current goal is (HxNotA HxA).
An exact proof term for the current goal is HxB.
We prove the intermediate
claim HxW0:
x ∈ W0.
Apply (binunionE W0 (X ∖ B) x HxW) to the current goal.
An exact proof term for the current goal is HxW0.
We prove the intermediate
claim HnotB:
x ∉ B.
An
exact proof term for the current goal is
(setminusE2 X B x HxXB).
Apply FalseE to the current goal.
An exact proof term for the current goal is (HnotB HxB).
We prove the intermediate
claim HxPreB:
x ∈ preimage_of B g V.
We prove the intermediate
claim HxW0B:
x ∈ W0 ∩ B.
An
exact proof term for the current goal is
(binintersectI W0 B x HxW0 HxB).
rewrite the current goal using HpreBeq (from left to right).
An exact proof term for the current goal is HxW0B.
We prove the intermediate
claim HgV:
apply_fun g x ∈ V.
An
exact proof term for the current goal is
(SepE2 B (λx0 : set ⇒ apply_fun g x0 ∈ V) x HxPreB).
We prove the intermediate
claim HhxV':
apply_fun h x ∈ V.
rewrite the current goal using Happ (from left to right).
An exact proof term for the current goal is HgV.
An
exact proof term for the current goal is
(SepI X (λx0 : set ⇒ apply_fun h x0 ∈ V) x HxX HhxV').
rewrite the current goal using Heq (from left to right).