Let c be given.
Assume HcC.
We prove the intermediate
claim HexU:
∃U ∈ Bx, c ∈ {setprod U V|V ∈ By}.
An
exact proof term for the current goal is
(famunionE Bx (λU0 : set ⇒ {setprod U0 V|V ∈ By}) c HcC).
Apply HexU to the current goal.
Let U be given.
Assume HUconj.
We prove the intermediate
claim HUbx:
U ∈ Bx.
An
exact proof term for the current goal is
(andEL (U ∈ Bx) (c ∈ {setprod U V|V ∈ By}) HUconj).
We prove the intermediate
claim HcRepl:
c ∈ {setprod U V|V ∈ By}.
An
exact proof term for the current goal is
(andER (U ∈ Bx) (c ∈ {setprod U V|V ∈ By}) HUconj).
We prove the intermediate
claim HexV:
∃V ∈ By, c = setprod U V.
An
exact proof term for the current goal is
(ReplE By (λV0 : set ⇒ setprod U V0) c HcRepl).
Apply HexV to the current goal.
Let V be given.
Assume HVconj.
We prove the intermediate
claim HVby:
V ∈ By.
An
exact proof term for the current goal is
(andEL (V ∈ By) (c = setprod U V) HVconj).
We prove the intermediate
claim HcEqUV:
c = setprod U V.
An
exact proof term for the current goal is
(andER (V ∈ By) (c = setprod U V) HVconj).
We prove the intermediate
claim HexUx:
∃U0 ∈ Tx, U = U0 ∩ A.
An
exact proof term for the current goal is
(ReplE Tx (λU0 : set ⇒ U0 ∩ A) U HUbx).
We prove the intermediate
claim HexVy:
∃V0 ∈ Ty, V = V0 ∩ B.
An
exact proof term for the current goal is
(ReplE Ty (λV0 : set ⇒ V0 ∩ B) V HVby).
Apply HexUx to the current goal.
Let U0 be given.
Assume HU0conj.
We prove the intermediate
claim HU0Tx:
U0 ∈ Tx.
An
exact proof term for the current goal is
(andEL (U0 ∈ Tx) (U = U0 ∩ A) HU0conj).
We prove the intermediate
claim HUeq:
U = U0 ∩ A.
An
exact proof term for the current goal is
(andER (U0 ∈ Tx) (U = U0 ∩ A) HU0conj).
Apply HexVy to the current goal.
Let V0 be given.
Assume HV0conj.
We prove the intermediate
claim HV0Ty:
V0 ∈ Ty.
An
exact proof term for the current goal is
(andEL (V0 ∈ Ty) (V = V0 ∩ B) HV0conj).
We prove the intermediate
claim HVeq:
V = V0 ∩ B.
An
exact proof term for the current goal is
(andER (V0 ∈ Ty) (V = V0 ∩ B) HV0conj).
Set W to be the term
setprod U0 V0.
An
exact proof term for the current goal is
(ReplI Ty (λV1 : set ⇒ rectangle_set U0 V1) V0 HV0Ty).
We prove the intermediate
claim HcPow:
c ∈ 𝒫 (setprod A B).
Let p be given.
We prove the intermediate
claim HpUV:
p ∈ setprod U V.
rewrite the current goal using HcEqUV (from right to left).
An exact proof term for the current goal is Hp.
We prove the intermediate
claim HsubU:
U ⊆ A.
rewrite the current goal using HUeq (from left to right).
We prove the intermediate
claim HsubV:
V ⊆ B.
rewrite the current goal using HVeq (from left to right).
An
exact proof term for the current goal is
(setprod_Subq U V A B HsubU HsubV).
An exact proof term for the current goal is (HsubUV p HpUV).
We prove the intermediate
claim HcEqSub:
c = W ∩ setprod A B.
rewrite the current goal using HcEqUV (from left to right).
rewrite the current goal using HUeq (from left to right).
rewrite the current goal using HVeq (from left to right).
Use reflexivity.
We use W to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is HWopen.
An exact proof term for the current goal is HcEqSub.
Let U1 be given.
Let p be given.
We prove the intermediate
claim HU1sub:
U1 ⊆ setprod A B.
We prove the intermediate
claim HpAB:
p ∈ setprod A B.
An exact proof term for the current goal is (HU1sub p HpU1).
Apply HU1prop to the current goal.
Let W be given.
Assume HWconj.
We prove the intermediate
claim HU1eq:
U1 = W ∩ setprod A B.
We prove the intermediate
claim HpWAB:
p ∈ W ∩ setprod A B.
rewrite the current goal using HU1eq (from right to left).
An exact proof term for the current goal is HpU1.
We prove the intermediate
claim HpW:
p ∈ W.
An exact proof term for the current goal is HWopen.
An exact proof term for the current goal is (HWref p HpW).
Apply Hexb to the current goal.
Let b be given.
Assume Hbconj.
We prove the intermediate
claim Hbprop:
p ∈ b ∧ b ⊆ W.
We prove the intermediate
claim Hpb:
p ∈ b.
An
exact proof term for the current goal is
(andEL (p ∈ b) (b ⊆ W) Hbprop).
We prove the intermediate
claim HbsubW:
b ⊆ W.
An
exact proof term for the current goal is
(andER (p ∈ b) (b ⊆ W) Hbprop).
Apply HexU to the current goal.
Let U0 be given.
Assume HU0conj.
We prove the intermediate
claim HU0Tx:
U0 ∈ Tx.
An
exact proof term for the current goal is
(ReplE Ty (λV0 : set ⇒ rectangle_set U0 V0) b HbRepl).
Apply HexV to the current goal.
Let V0 be given.
Assume HV0conj.
We prove the intermediate
claim HV0Ty:
V0 ∈ Ty.
Set Cx to be the term
setprod (U0 ∩ A) (V0 ∩ B).
We use Cx to witness the existential quantifier.
Apply andI to the current goal.
We prove the intermediate
claim HU0Bx:
U0 ∩ A ∈ Bx.
An
exact proof term for the current goal is
(ReplI Tx (λU1 : set ⇒ U1 ∩ A) U0 HU0Tx).
We prove the intermediate
claim HV0By:
V0 ∩ B ∈ By.
An
exact proof term for the current goal is
(ReplI Ty (λV1 : set ⇒ V1 ∩ B) V0 HV0Ty).
An
exact proof term for the current goal is
(ReplI By (λV1 : set ⇒ setprod (U0 ∩ A) V1) (V0 ∩ B) HV0By).
Apply andI to the current goal.
rewrite the current goal using Hbeq (from right to left).
An exact proof term for the current goal is Hpb.
An exact proof term for the current goal is HpAB.
An exact proof term for the current goal is HpInInter.
We prove the intermediate
claim HCx_sub_W:
Cx ⊆ W.
rewrite the current goal using Hbeq (from right to left).
An
exact proof term for the current goal is
(Subq_ref b).
We prove the intermediate
claim HCx_sub_AB:
Cx ⊆ setprod A B.
We prove the intermediate
claim HCx_sub_WAB:
Cx ⊆ W ∩ setprod A B.
rewrite the current goal using HU1eq (from left to right).
An exact proof term for the current goal is HCx_sub_WAB.
Use reflexivity.
∎