Let x be given.
We will
prove pick x ∈ B.
An exact proof term for the current goal is (HpickP x HxR).
Apply Hp to the current goal.
Assume Hcore Hsub.
Apply Hcore to the current goal.
Assume HpB HxIn.
An exact proof term for the current goal is HpB.
Let x0 be given.
Let x1 be given.
An exact proof term for the current goal is (HpickP x0 Hx0R).
An exact proof term for the current goal is (HpickP x1 Hx1R).
We prove the intermediate
claim Hx0in0:
x0 ∈ pick x0.
Apply Hp0 to the current goal.
Assume Hcore0 Hsub0.
Apply Hcore0 to the current goal.
Assume Hp0B Hx0in.
An exact proof term for the current goal is Hx0in.
Apply Hp1 to the current goal.
Assume Hcore1 Hsub1.
An exact proof term for the current goal is Hsub1.
We prove the intermediate
claim Hx0in1:
x0 ∈ pick x1.
rewrite the current goal using Heq (from right to left).
An exact proof term for the current goal is Hx0in0.
An exact proof term for the current goal is (Hsub1 x0 Hx0in1).
An
exact proof term for the current goal is
(SepE2 R (λz : set ⇒ ¬ (Rlt z x1) ∧ Rlt z (add_SNo x1 1)) x0 Hx0U1).
We prove the intermediate
claim Hnlt01:
¬ (Rlt x0 x1).
An
exact proof term for the current goal is
(andEL (¬ (Rlt x0 x1)) (Rlt x0 (add_SNo x1 1)) HU1prop).
We prove the intermediate
claim Hx0S:
SNo x0.
An
exact proof term for the current goal is
(real_SNo x0 Hx0R).
We prove the intermediate
claim Hx1S:
SNo x1.
An
exact proof term for the current goal is
(real_SNo x1 Hx1R).
We prove the intermediate
claim H01:
Rlt x0 x1.
An
exact proof term for the current goal is
(RltI x0 x1 Hx0R Hx1R Hlt).
An
exact proof term for the current goal is
(FalseE (Hnlt01 H01) (x0 = x1)).
An exact proof term for the current goal is Heq01.
We prove the intermediate
claim Hx1in1:
x1 ∈ pick x1.
Apply Hp1 to the current goal.
Assume Hcore1 Hsub1.
Apply Hcore1 to the current goal.
Assume Hp1B Hx1in.
An exact proof term for the current goal is Hx1in.
Apply Hp0 to the current goal.
Assume Hcore0 Hsub0.
An exact proof term for the current goal is Hsub0.
We prove the intermediate
claim Hx1in0:
x1 ∈ pick x0.
rewrite the current goal using Heq (from left to right).
An exact proof term for the current goal is Hx1in1.
An exact proof term for the current goal is (Hsub0 x1 Hx1in0).
An
exact proof term for the current goal is
(SepE2 R (λz : set ⇒ ¬ (Rlt z x0) ∧ Rlt z (add_SNo x0 1)) x1 Hx1U0).
We prove the intermediate
claim Hnlt10:
¬ (Rlt x1 x0).
An
exact proof term for the current goal is
(andEL (¬ (Rlt x1 x0)) (Rlt x1 (add_SNo x0 1)) HU0prop).
We prove the intermediate
claim H10:
Rlt x1 x0.
An
exact proof term for the current goal is
(RltI x1 x0 Hx1R Hx0R Hlt).
An
exact proof term for the current goal is
(FalseE (Hnlt10 H10) (x0 = x1)).