Exact expanded PA statement
forall x q s. (exists fspm_u_cancel_middle_input fspm_v_cancel_middle_input. (x) + 2 * fspm_u_cancel_middle_input = (q + x + s) + 2 * fspm_v_cancel_middle_input) -> (exists fspm_u_cancel_middle_result fspm_v_cancel_middle_result. (0) + 2 * fspm_u_cancel_middle_result = (q + s) + 2 * fspm_v_cancel_middle_result)Structural proof guide
Generated structural guide
From x == q+x+s modulo two, cancel x and obtain 0 == q+s.
Use the direct prerequisites mod_eq_add_cancel_left, add_assoc, add_comm as previously established PA formulas.
The proof proceeds by intermediate claims (2), equality transport (2), 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 x - 0002
intro q - 0003
intro s - 0004
intro hmod - 0005
have hreorder : q + x + s = x + (q + s) - 0006
simp [add_assoc, add_comm] - 0007
rewrite hreorder at hmod - 0008
specialize mod_eq_add_cancel_left 2 - 0009
specialize mod_eq_add_cancel_left x - 0010
specialize mod_eq_add_cancel_left 0 - 0011
specialize mod_eq_add_cancel_left (q + s) - 0012
apply mod_eq_add_cancel_left - 0013
have hxzero : x + 0 = x - 0014
apply PA3 - 0015
rewrite hxzero - 0016
exact hmod