Let m be given.
Assume Hm.
Apply IHm to the current goal.
Let q be given.
Assume H.
Apply H to the current goal.
Assume H.
Apply H to the current goal.
Let r be given.
Assume H.
Apply H to the current goal.
We prove the intermediate
claim LqN:
nat_p q.
An
exact proof term for the current goal is
omega_nat_p q Hq.
We prove the intermediate
claim LrN:
nat_p r.
An
exact proof term for the current goal is
nat_p_trans n LnN r Hr.
We use q to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hq.
We use
(ordsucc r) to
witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is H2.
rewrite the current goal using
add_nat_SR (q * n) r LrN (from left to right).
Use f_equal.
An exact proof term for the current goal is H1.
We use
(ordsucc q) to
witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hq.
We use
0 to
witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is L0n.
rewrite the current goal using
mul_nat_SL q LqN n LnN (from left to right).
rewrite the current goal using H2 (from right to left) at position 2.
rewrite the current goal using
add_nat_SR (q * n) r LrN (from left to right).
Use f_equal.
An exact proof term for the current goal is H1.
An exact proof term for the current goal is H2.
∎