rewrite the current goal using HdefOne (from left to right).
Apply andI to the current goal.
An exact proof term for the current goal is HTy.
Let y be given.
Apply (Hsurj y HyY) to the current goal.
Let x be given.
We prove the intermediate
claim HxX:
x ∈ X.
An
exact proof term for the current goal is
(andEL (x ∈ X) (apply_fun p x = y) Hxpair).
We prove the intermediate
claim Hpx:
apply_fun p x = y.
An
exact proof term for the current goal is
(andER (x ∈ X) (apply_fun p x = y) Hxpair).
We prove the intermediate
claim HsingClosedX:
closed_in X Tx {x}.
We prove the intermediate
claim HallSing:
∀z : set, z ∈ X → closed_in X Tx {z}.
An exact proof term for the current goal is (HallSing x HxX).
An
exact proof term for the current goal is
(HallImgClosed {x} HsingClosedX).
Let t be given.
We prove the intermediate
claim HtRepl:
t ∈ Repl {x} (λu : set ⇒ apply_fun p u).
rewrite the current goal using Hdef (from right to left).
An exact proof term for the current goal is Ht.
Let u be given.
We prove the intermediate
claim Hueq:
u = x.
An
exact proof term for the current goal is
(SingE x u Hu).
We prove the intermediate
claim Htpx:
t = apply_fun p x.
rewrite the current goal using Hueq (from right to left).
An exact proof term for the current goal is Htpu.
We prove the intermediate
claim Hteq:
t = y.
rewrite the current goal using Htpx (from left to right).
An exact proof term for the current goal is Hpx.
rewrite the current goal using Hteq (from left to right).
An
exact proof term for the current goal is
(SingI y).
Let t be given.
We prove the intermediate
claim Hteq:
t = y.
An
exact proof term for the current goal is
(SingE y t Ht).
We prove the intermediate
claim Htpx:
t = apply_fun p x.
rewrite the current goal using Hteq (from left to right).
rewrite the current goal using Hpx (from right to left).
Use reflexivity.
rewrite the current goal using Hdef (from left to right).
rewrite the current goal using Htpx (from left to right).
rewrite the current goal using HimgEq (from right to left).
An exact proof term for the current goal is HimgClosedY.
Let A and B be given.
We prove the intermediate
claim HpreAcl:
closed_in X Tx preA.
We prove the intermediate
claim HpreBcl:
closed_in X Tx preB.
We prove the intermediate
claim HpreDisj:
preA ∩ preB = Empty.
rewrite the current goal using HAB (from left to right).
Use reflexivity.
Apply (HsepX preA preB HpreAcl HpreBcl HpreDisj) to the current goal.
Let U be given.
Assume HU0.
Apply HU0 to the current goal.
Let V be given.
Assume HUVpack.
Apply (and5E (U ∈ Tx) (V ∈ Tx) (preA ⊆ U) (preB ⊆ V) (U ∩ V = Empty) HUVpack) to the current goal.
Assume HUopen HVopen HpreAsub HpreBsub HUVdisj.
We prove the intermediate
claim HcompUclosed:
closed_in X Tx (X ∖ U).
An
exact proof term for the current goal is
(HallImgClosed (X ∖ U) HcompUclosed).
We prove the intermediate
claim HcompVclosed:
closed_in X Tx (X ∖ V).
An
exact proof term for the current goal is
(HallImgClosed (X ∖ V) HcompVclosed).
We prove the intermediate
claim HUYopen:
UY ∈ Ty.
We prove the intermediate
claim HVYopen:
VY ∈ Ty.
We prove the intermediate
claim HAsubY:
A ⊆ Y.
We prove the intermediate
claim HBsubY:
B ⊆ Y.
We prove the intermediate
claim HAsubUY:
A ⊆ UY.
Let y be given.
We prove the intermediate
claim HyY:
y ∈ Y.
An exact proof term for the current goal is (HAsubY y HyA).
Let x0 be given.
We prove the intermediate
claim Hx0X:
x0 ∈ X.
An
exact proof term for the current goal is
(setminusE1 X U x0 Hx0XU).
We prove the intermediate
claim Hypx0A:
apply_fun p x0 ∈ A.
rewrite the current goal using Hypx0 (from right to left).
An exact proof term for the current goal is HyA.
We prove the intermediate
claim Hx0preA:
x0 ∈ preA.
An
exact proof term for the current goal is
(SepI X (λz : set ⇒ apply_fun p z ∈ A) x0 Hx0X Hypx0A).
We prove the intermediate
claim Hx0U:
x0 ∈ U.
An exact proof term for the current goal is (HpreAsub x0 Hx0preA).
We prove the intermediate
claim Hx0NotU:
x0 ∉ U.
An
exact proof term for the current goal is
(setminusE2 X U x0 Hx0XU).
An exact proof term for the current goal is (Hx0NotU Hx0U).
We prove the intermediate
claim HBsubVY:
B ⊆ VY.
Let y be given.
We prove the intermediate
claim HyY:
y ∈ Y.
An exact proof term for the current goal is (HBsubY y HyB).
Let x0 be given.
We prove the intermediate
claim Hx0X:
x0 ∈ X.
An
exact proof term for the current goal is
(setminusE1 X V x0 Hx0XV).
We prove the intermediate
claim Hypx0B:
apply_fun p x0 ∈ B.
rewrite the current goal using Hypx0 (from right to left).
An exact proof term for the current goal is HyB.
We prove the intermediate
claim Hx0preB:
x0 ∈ preB.
An
exact proof term for the current goal is
(SepI X (λz : set ⇒ apply_fun p z ∈ B) x0 Hx0X Hypx0B).
We prove the intermediate
claim Hx0V:
x0 ∈ V.
An exact proof term for the current goal is (HpreBsub x0 Hx0preB).
We prove the intermediate
claim Hx0NotV:
x0 ∉ V.
An
exact proof term for the current goal is
(setminusE2 X V x0 Hx0XV).
An exact proof term for the current goal is (Hx0NotV Hx0V).
We prove the intermediate
claim HUVYdisj:
UY ∩ VY = Empty.
Let y be given.
We prove the intermediate
claim HyUY:
y ∈ UY.
An
exact proof term for the current goal is
(binintersectE1 UY VY y Hy).
We prove the intermediate
claim HyVY:
y ∈ VY.
An
exact proof term for the current goal is
(binintersectE2 UY VY y Hy).
We prove the intermediate
claim HyY:
y ∈ Y.
We prove the intermediate
claim HyNotImgU:
y ∉ image_of p (X ∖ U).
We prove the intermediate
claim HyNotImgV:
y ∉ image_of p (X ∖ V).
Apply (Hsurj y HyY) to the current goal.
Let x0 be given.
We prove the intermediate
claim Hx0X:
x0 ∈ X.
An
exact proof term for the current goal is
(andEL (x0 ∈ X) (apply_fun p x0 = y) Hx0pair).
We prove the intermediate
claim Hpx0:
apply_fun p x0 = y.
An
exact proof term for the current goal is
(andER (x0 ∈ X) (apply_fun p x0 = y) Hx0pair).
We prove the intermediate
claim Hx0U:
x0 ∈ U.
Apply (xm (x0 ∈ U)) to the current goal.
An exact proof term for the current goal is (λH ⇒ H).
We prove the intermediate
claim Hx0XU:
x0 ∈ (X ∖ U).
An
exact proof term for the current goal is
(setminusI X U x0 Hx0X Hx0NotU).
We prove the intermediate
claim HyImg:
y ∈ image_of p (X ∖ U).
An
exact proof term for the current goal is
(ReplI (X ∖ U) (λz : set ⇒ apply_fun p z) x0 Hx0XU).
rewrite the current goal using Hpx0 (from right to left).
An exact proof term for the current goal is Hpimg.
Apply FalseE to the current goal.
An exact proof term for the current goal is (HyNotImgU HyImg).
We prove the intermediate
claim Hx0V:
x0 ∈ V.
Apply (xm (x0 ∈ V)) to the current goal.
An exact proof term for the current goal is (λH ⇒ H).
We prove the intermediate
claim Hx0XV:
x0 ∈ (X ∖ V).
An
exact proof term for the current goal is
(setminusI X V x0 Hx0X Hx0NotV).
We prove the intermediate
claim HyImg:
y ∈ image_of p (X ∖ V).
An
exact proof term for the current goal is
(ReplI (X ∖ V) (λz : set ⇒ apply_fun p z) x0 Hx0XV).
rewrite the current goal using Hpx0 (from right to left).
An exact proof term for the current goal is Hpimg.
Apply FalseE to the current goal.
An exact proof term for the current goal is (HyNotImgV HyImg).
We prove the intermediate
claim Hx0UV:
x0 ∈ (U ∩ V).
An
exact proof term for the current goal is
(binintersectI U V x0 Hx0U Hx0V).
We prove the intermediate
claim HyImgUV:
y ∈ image_of p (U ∩ V).
An
exact proof term for the current goal is
(ReplI (U ∩ V) (λz : set ⇒ apply_fun p z) x0 Hx0UV).
rewrite the current goal using Hpx0 (from right to left).
An exact proof term for the current goal is Hpimg.
rewrite the current goal using HUVdisj (from right to left).
An exact proof term for the current goal is HyImgUV.
We prove the intermediate
claim HyE:
y ∈ Empty.
rewrite the current goal using
(image_of_Empty p) (from right to left).
An exact proof term for the current goal is HyImgEmpty.
An exact proof term for the current goal is HyE.
Let y be given.
We will
prove y ∈ UY ∩ VY.
Apply FalseE to the current goal.
An
exact proof term for the current goal is
((EmptyE y) Hy).
We use UY to witness the existential quantifier.
We use VY to witness the existential quantifier.
Apply and5I to the current goal.
An exact proof term for the current goal is HUYopen.
An exact proof term for the current goal is HVYopen.
An exact proof term for the current goal is HAsubUY.
An exact proof term for the current goal is HBsubVY.
An exact proof term for the current goal is HUVYdisj.
∎