Let X, Tx and P be given.
Let x be given.
Apply (HPlf x HxX) to the current goal.
Let N be given.
We prove the intermediate
claim HN1:
N ∈ Tx ∧ x ∈ N.
We prove the intermediate
claim HxN:
x ∈ N.
An
exact proof term for the current goal is
(andER (N ∈ Tx) (x ∈ N) HN1).
Apply HexF0 to the current goal.
Let F0 be given.
We use F0 to witness the existential quantifier.
We prove the intermediate
claim HF0left:
finite F0 ∧ F0 ⊆ P.
We prove the intermediate
claim HF0fin:
finite F0.
An
exact proof term for the current goal is
(andEL (finite F0) (F0 ⊆ P) HF0left).
We prove the intermediate
claim HF0subP:
F0 ⊆ P.
An
exact proof term for the current goal is
(andER (finite F0) (F0 ⊆ P) HF0left).
We prove the intermediate
claim HF0prop:
∀f : set, f ∈ P → support_of X Tx f ∩ N ≠ Empty → f ∈ F0.
Apply andI to the current goal.
Apply andI to the current goal.
An exact proof term for the current goal is HF0left.
Let f be given.
We prove the intermediate
claim HxSupp:
x ∈ support_of X Tx f.
An exact proof term for the current goal is (HF0prop f HfP Hmeet).
Let n be given.
Apply Hn to the current goal.
Let e be given.
We use n to witness the existential quantifier.
Apply andI to the current goal.
An
exact proof term for the current goal is
(andEL (n ∈ ω) (bijection n F0 e) Hne).
We use e to witness the existential quantifier.
Apply andI to the current goal.
An
exact proof term for the current goal is
(andER (n ∈ ω) (bijection n F0 e) Hne).
We use p to witness the existential quantifier.
Apply andI to the current goal.
Apply andI to the current goal.
We prove the intermediate
claim HnNat:
nat_p n.
Let m be given.
We prove the intermediate
claim Hbase:
Pw 0.
Assume _.
rewrite the current goal using
(nat_primrec_0 0 step) (from left to right).
An
exact proof term for the current goal is
real_0.
We prove the intermediate
claim Hstep:
∀t : set, nat_p t → Pw t → Pw (ordsucc t).
Let t be given.
Assume IH: Pw t.
We prove the intermediate
claim Hsub:
ordsucc t ⊆ n.
We prove the intermediate
claim HtInN:
t ∈ n.
An
exact proof term for the current goal is
(Hsub t (ordsuccI2 t)).
We prove the intermediate
claim HtInSuccN:
t ∈ ordsucc n.
An
exact proof term for the current goal is
(ordsuccI1 n t HtInN).
An exact proof term for the current goal is (IH HtInSuccN).
We prove the intermediate
claim Hefun:
function_on e n F0.
We prove the intermediate
claim HetF0:
apply_fun e t ∈ F0.
An exact proof term for the current goal is (Hefun t HtInN).
We prove the intermediate
claim HetP:
apply_fun e t ∈ P.
An
exact proof term for the current goal is
(HF0subP (apply_fun e t) HetF0).
An
exact proof term for the current goal is
(HPsubFS (apply_fun e t) HetP).
An exact proof term for the current goal is (HetFun x HxX).
rewrite the current goal using
(nat_primrec_S 0 step t HtNat) (from left to right).
We prove the intermediate
claim HmNat:
nat_p m.
Apply (ordsuccE n m HmIn) to the current goal.
An
exact proof term for the current goal is
(nat_p_trans n HnNat m HmInN).
rewrite the current goal using Hmeq (from left to right).
An exact proof term for the current goal is HnNat.
We prove the intermediate claim HPw: Pw m.
An
exact proof term for the current goal is
(nat_ind Pw Hbase Hstep m HmNat).
An exact proof term for the current goal is (HPw HmIn).
We prove the intermediate
claim HnNat:
nat_p n.
We prove the intermediate
claim H0In:
0 ∈ ordsucc n.
rewrite the current goal using
(nat_primrec_0 0 step) (from left to right).
Use reflexivity.
Let k be given.
We prove the intermediate
claim HnNat:
nat_p n.
We prove the intermediate
claim HkNat:
nat_p k.
An
exact proof term for the current goal is
(nat_p_trans n HnNat k HkIn).
We prove the intermediate
claim HkInSuccN:
k ∈ ordsucc n.
An
exact proof term for the current goal is
(ordsuccI1 n k HkIn).
rewrite the current goal using
(nat_primrec_S 0 step k HkNat) (from left to right).
Use reflexivity.
∎