Let q be given.
Let k be given.
Assume H.
Apply H to the current goal.
Assume H.
Apply H to the current goal.
Let m be given.
Assume H.
Apply H to the current goal.
We prove the intermediate
claim LkN:
nat_p k.
An
exact proof term for the current goal is
omega_nat_p k Hk.
Apply SepI to the current goal.
An exact proof term for the current goal is Hq.
We use m to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hm.
We prove the intermediate
claim L2kN:
nat_p (2 ^ k).
We prove the intermediate
claim L2kS:
SNo (2 ^ k).
An
exact proof term for the current goal is
nat_p_SNo (2 ^ k) L2kN.
We prove the intermediate
claim L2knz:
2 ^ k ≠ 0.
rewrite the current goal using H1 (from left to right).
We use
2 ^ k to
witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is L2kN.
Apply L2knz to the current goal.
An
exact proof term for the current goal is
SingE 0 (2 ^ k) H1.
We will
prove q = m :/: (2 ^ k).
rewrite the current goal using Hqkm (from left to right).
∎