Let A, n and f be given.
Assume Hn: nat_p n.
Assume Hinj: inj A ω f.
Set An to be the term {aA|f a ordsucc n}.
We prove the intermediate claim Hsucc: nat_p (ordsucc n).
An exact proof term for the current goal is (nat_ordsucc n Hn).
We prove the intermediate claim HinjAn: inj An (ordsucc n) f.
We will prove (∀uAn, f u ordsucc n) (∀u vAn, f u = f vu = v).
Apply andI to the current goal.
Let u be given.
Assume Hu: u An.
An exact proof term for the current goal is (SepE2 A (λa0 : setf a0 ordsucc n) u Hu).
Let u be given.
Assume Hu: u An.
Let v be given.
Assume Hv: v An.
Assume Heq: f u = f v.
We prove the intermediate claim HuA: u A.
An exact proof term for the current goal is (SepE1 A (λa0 : setf a0 ordsucc n) u Hu).
We prove the intermediate claim HvA: v A.
An exact proof term for the current goal is (SepE1 A (λa0 : setf a0 ordsucc n) v Hv).
We prove the intermediate claim Hinj0: ∀x zA, f x = f zx = z.
An exact proof term for the current goal is (andER (∀xA, f x ω) (∀x zA, f x = f zx = z) Hinj).
An exact proof term for the current goal is (Hinj0 u HuA v HvA Heq).
An exact proof term for the current goal is (inj_into_finite_nat An (ordsucc n) f Hsucc HinjAn).