Exact expanded PA statement
forall t m. (exists h. h + S t = m) -> exists h. h + S (S (t + t)) = m + mStructural proof guide
Generated structural guide
The right position of an earlier pair lies below the doubled prefix.
Use the direct prerequisites add_le_add_right, add_le_add_left, le_trans, add_succ_left as previously established PA formulas.
The proof proceeds by intermediate claims (3), equality transport (1), certified simplification (1).
Referenced ingredients
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v16 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
- 0001
intro t - 0002
intro m - 0003
intro htm - 0004
have hfirst : exists h. h + (S t + S t) = m + S t - 0005
specialize add_le_add_right (S t) - 0006
specialize add_le_add_right m - 0007
specialize add_le_add_right (S t) - 0008
apply add_le_add_right - 0009
exact htm - 0010
have hdouble : S (S (t + t)) = S t + S t - 0011
simp [add_succ_left] - 0012
rewrite <- hdouble at hfirst - 0013
have hsecond : exists h. h + (m + S t) = m + m - 0014
specialize add_le_add_left (S t) - 0015
specialize add_le_add_left m - 0016
specialize add_le_add_left m - 0017
apply add_le_add_left - 0018
exact htm - 0019
specialize le_trans (S (S (t + t))) - 0020
specialize le_trans (m + S t) - 0021
specialize le_trans (m + m) - 0022
apply le_trans - 0023
exact hfirst - 0024
exact hsecond