Let m and n be given.
Apply H1 to the current goal.
Assume H.
Apply H to the current goal.
Assume H.
Apply H to the current goal.
Let k be given.
Assume H.
Apply H to the current goal.
Apply H2 to the current goal.
Assume _ H.
Apply H to the current goal.
Let k' be given.
Assume H.
Apply H to the current goal.
We prove the intermediate
claim Lm:
nat_p m.
An
exact proof term for the current goal is
omega_nat_p m Hm.
We prove the intermediate
claim Ln:
nat_p n.
An
exact proof term for the current goal is
omega_nat_p n Hn.
We prove the intermediate
claim Lk:
nat_p k.
An
exact proof term for the current goal is
omega_nat_p k Hk.
We prove the intermediate
claim Lk':
nat_p k'.
An
exact proof term for the current goal is
omega_nat_p k' Hk'.
We prove the intermediate
claim L1:
1 + n = ordsucc n.
Use f_equal.
An
exact proof term for the current goal is
add_nat_0L n Ln.
We prove the intermediate
claim L2:
m * k' ∈ m + n.
rewrite the current goal using Hmk' (from left to right).
rewrite the current goal using L1 (from right to left).
We will
prove 1 + n ∈ m + n.
An
exact proof term for the current goal is
add_nat_In_R m Lm 1 H1m n Ln.
We prove the intermediate
claim L3:
m + n ⊆ m * k'.
rewrite the current goal using Hmk (from right to left).
We will
prove m + m * k ⊆ m * k'.
rewrite the current goal using
mul_nat_SR m k Lk (from right to left).
An exact proof term for the current goal is Lk.
An exact proof term for the current goal is Lk'.
We prove the intermediate
claim L3a:
ordsucc n ⊆ n.
rewrite the current goal using Hmk' (from right to left).
rewrite the current goal using Hmk (from right to left).
We will
prove m * k' ⊆ m * k.
An
exact proof term for the current goal is
mul_nat_Subq_L k' k Lk' Lk H3 m Lm.
Apply L3a to the current goal.
An exact proof term for the current goal is Lm.
Apply L3 to the current goal.
An exact proof term for the current goal is L2.
∎