Let p be given.
We prove the intermediate
claim Hp0:
p 0 ∈ K0.
An
exact proof term for the current goal is
(ap0_Sigma K0 (λ_ : set ⇒ {z0}) p Hp).
We prove the intermediate
claim Hp1:
p 1 ∈ {z0}.
An
exact proof term for the current goal is
(ap1_Sigma K0 (λ_ : set ⇒ {z0}) p Hp).
We prove the intermediate
claim HpEta:
p = (p 0,p 1).
An
exact proof term for the current goal is
(setprod_eta K0 {z0} p Hp).
We prove the intermediate
claim Hp1eq:
p 1 = z0.
An
exact proof term for the current goal is
(SingE z0 (p 1) Hp1).
rewrite the current goal using HpEta (from left to right).
rewrite the current goal using Hp1eq (from left to right).
An
exact proof term for the current goal is
(HK0pre (p 0) Hp0).
We prove the intermediate
claim Hp0X:
p 0 ∈ X.
An
exact proof term for the current goal is
(HK0subX (p 0) Hp0).
We prove the intermediate
claim Hiz0Val:
apply_fun iz0 (p 0) = (p 0,z0).
rewrite the current goal using
(const_fun_apply X z0 (p 0) Hp0X) (from left to right).
Use reflexivity.
rewrite the current goal using HeqFz0 (from right to left).
An exact proof term for the current goal is Himg.
rewrite the current goal using HcompVal (from right to left).
An exact proof term for the current goal is Himg1.
We prove the intermediate
claim Himg3:
apply_fun f (p 0,z0) ∈ U0.
rewrite the current goal using Hiz0Val (from right to left).
An exact proof term for the current goal is Himg2.
We prove the intermediate
claim Hp0Z:
z0 ∈ Z.
An exact proof term for the current goal is Hz0Z.
We prove the intermediate
claim HpairXZ:
(p 0,z0) ∈ setprod X Z.
An
exact proof term for the current goal is
(SepI (setprod X Z) (λq : set ⇒ apply_fun f q ∈ U0) (p 0,z0) HpairXZ Himg3).
Let z1 be given.
We prove the intermediate
claim Hz1Z:
z1 ∈ Z.
We prove the intermediate
claim HFz1Dom:
apply_fun F z1 ∈ Dom.
An exact proof term for the current goal is (HF_fun z1 Hz1Z).
Let x be given.
We prove the intermediate
claim HxX:
x ∈ X.
An exact proof term for the current goal is (HK0subX x HxK0).
We prove the intermediate
claim HpairIn:
(x,z1) ∈ setprod K0 V0.
We prove the intermediate
claim HxzN0:
(x,z1) ∈ N0.
An exact proof term for the current goal is (HK0V0sub (x,z1) HpairIn).
We prove the intermediate
claim HimgU0:
apply_fun f (x,z1) ∈ U0.
An
exact proof term for the current goal is
(SepE2 (setprod X Z) (λq : set ⇒ apply_fun f q ∈ U0) (x,z1) HxzN0).
rewrite the current goal using HeqFz1 (from left to right).
rewrite the current goal using
(compose_fun_apply X iz1 f x HxX) (from left to right).
rewrite the current goal using
(const_fun_apply X z1 x HxX) (from left to right).
Use reflexivity.
rewrite the current goal using HvalEq (from left to right).
An exact proof term for the current goal is HimgU0.
An
exact proof term for the current goal is
(SepI Dom (λg : set ⇒ K0 ⊆ preimage_of X g U0) (apply_fun F z1) HFz1Dom HK0pre1).
We prove the intermediate
claim HFz1S0:
apply_fun F z1 ∈ S0.
rewrite the current goal using HS0eq (from left to right).
An exact proof term for the current goal is HFz1RHS.
An
exact proof term for the current goal is
(SepI Z (λz : set ⇒ apply_fun F z ∈ S0) z1 Hz1Z HFz1S0).