Let y be given.
We prove the intermediate
claim HyVU:
y ∈ VU.
An
exact proof term for the current goal is
(binintersectE1 VU Im y HyInt).
We prove the intermediate
claim HyIm:
y ∈ Im.
An
exact proof term for the current goal is
(binintersectE2 VU Im y HyInt).
Let V be given.
Let x be given.
We prove the intermediate
claim Hpf:
apply_fun pickf x = pick x.
We prove the intermediate
claim Hpfdef:
pickf = graph U (λx0 : set ⇒ pick x0).
rewrite the current goal using Hpfdef (from left to right).
An
exact proof term for the current goal is
(apply_fun_graph U (λx0 : set ⇒ pick x0) x HxU).
We prove the intermediate
claim HVe2:
V = pick x.
rewrite the current goal using HVe (from left to right).
rewrite the current goal using Hpf (from left to right).
Use reflexivity.
An exact proof term for the current goal is (HpickTy x HxU).
We prove the intermediate
claim HpreSub:
preimage_of X f (pick x) ⊆ U.
We prove the intermediate
claim HyPick:
y ∈ pick x.
rewrite the current goal using HVe2 (from right to left).
An exact proof term for the current goal is HyV.
We prove the intermediate
claim HxX:
x ∈ X.
An exact proof term for the current goal is (HUsubX x HxU).
We prove the intermediate
claim Hyfx:
apply_fun f x ∈ pick x.
We prove the intermediate
claim Hp12:
pick x ∈ Ty ∧ apply_fun f x ∈ pick x.
An
exact proof term for the current goal is
(andER (pick x ∈ Ty) (apply_fun f x ∈ pick x) Hp12).
We prove the intermediate
claim HgyX:
apply_fun g y ∈ X.
An exact proof term for the current goal is (Hgfun y HyIm).
An exact proof term for the current goal is (Hgfmap y HyIm).
rewrite the current goal using HyEq (from left to right).
An exact proof term for the current goal is HyPick.
An
exact proof term for the current goal is
(SepI X (λu : set ⇒ apply_fun f u ∈ pick x) (apply_fun g y) HgyX HfgyPick).
We prove the intermediate
claim HgyU:
apply_fun g y ∈ U.
An
exact proof term for the current goal is
(HpreSub (apply_fun g y) HgyPre).
An
exact proof term for the current goal is
(SepI Im (λy0 : set ⇒ apply_fun g y0 ∈ U) y HyIm HgyU).