Let a0 be given.
Let a1 be given.
We prove the intermediate
claim Hp0:
(λb : set ⇒ b ∈ B ∧ ∃U : set, U ∈ Tx ∧ (U ∩ A = {a0} ∧ (a0 ∈ b ∧ b ⊆ U))) (pick a0).
An exact proof term for the current goal is (HpickP a0 Ha0).
We prove the intermediate
claim Hp1:
(λb : set ⇒ b ∈ B ∧ ∃U : set, U ∈ Tx ∧ (U ∩ A = {a1} ∧ (a1 ∈ b ∧ b ⊆ U))) (pick a1).
An exact proof term for the current goal is (HpickP a1 Ha1).
We prove the intermediate
claim Hex0:
∃U : set, U ∈ Tx ∧ (U ∩ A = {a0} ∧ (a0 ∈ pick a0 ∧ pick a0 ⊆ U)).
An
exact proof term for the current goal is
(andER (pick a0 ∈ B) (∃U : set, U ∈ Tx ∧ (U ∩ A = {a0} ∧ (a0 ∈ pick a0 ∧ pick a0 ⊆ U))) Hp0).
We prove the intermediate
claim Hex1:
∃U : set, U ∈ Tx ∧ (U ∩ A = {a1} ∧ (a1 ∈ pick a1 ∧ pick a1 ⊆ U)).
An
exact proof term for the current goal is
(andER (pick a1 ∈ B) (∃U : set, U ∈ Tx ∧ (U ∩ A = {a1} ∧ (a1 ∈ pick a1 ∧ pick a1 ⊆ U))) Hp1).
We prove the intermediate
claim Ha1inpick1:
a1 ∈ pick a1.
Apply Hex1 to the current goal.
Let U1 be given.
Assume HU1pair.
We prove the intermediate
claim HU1rest:
U1 ∩ A = {a1} ∧ (a1 ∈ pick a1 ∧ pick a1 ⊆ U1).
An
exact proof term for the current goal is
(andER (U1 ∈ Tx) (U1 ∩ A = {a1} ∧ (a1 ∈ pick a1 ∧ pick a1 ⊆ U1)) HU1pair).
An
exact proof term for the current goal is
(andEL (a1 ∈ pick a1) (pick a1 ⊆ U1) (andER (U1 ∩ A = {a1}) (a1 ∈ pick a1 ∧ pick a1 ⊆ U1) HU1rest)).
We prove the intermediate
claim Ha1inpick0:
a1 ∈ pick a0.
rewrite the current goal using Heq (from left to right).
An exact proof term for the current goal is Ha1inpick1.
Apply Hex0 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) (U0 ∩ A = {a0} ∧ (a0 ∈ pick a0 ∧ pick a0 ⊆ U0)) HU0pair).
We prove the intermediate
claim HU0rest:
U0 ∩ A = {a0} ∧ (a0 ∈ pick a0 ∧ pick a0 ⊆ U0).
An
exact proof term for the current goal is
(andER (U0 ∈ Tx) (U0 ∩ A = {a0} ∧ (a0 ∈ pick a0 ∧ pick a0 ⊆ U0)) HU0pair).
We prove the intermediate
claim HU0eq:
U0 ∩ A = {a0}.
An
exact proof term for the current goal is
(andEL (U0 ∩ A = {a0}) (a0 ∈ pick a0 ∧ pick a0 ⊆ U0) HU0rest).
We prove the intermediate
claim HsubU0:
pick a0 ⊆ U0.
An
exact proof term for the current goal is
(andER (a0 ∈ pick a0) (pick a0 ⊆ U0) (andER (U0 ∩ A = {a0}) (a0 ∈ pick a0 ∧ pick a0 ⊆ U0) HU0rest)).
We prove the intermediate
claim Ha1U0:
a1 ∈ U0.
An exact proof term for the current goal is (HsubU0 a1 Ha1inpick0).
We prove the intermediate
claim Ha1UA:
a1 ∈ U0 ∩ A.
An
exact proof term for the current goal is
(binintersectI U0 A a1 Ha1U0 Ha1).
We prove the intermediate
claim Ha1sing:
a1 ∈ {a0}.
rewrite the current goal using HU0eq (from right to left).
An exact proof term for the current goal is Ha1UA.
Use symmetry.
An
exact proof term for the current goal is
(singleton_elem a1 a0 Ha1sing).