Exact expanded PA statement
forall p h m. p = 2 * h + 1 -> (exists gsp_lt_gap_gsd_m_positive. gsp_lt_gap_gsd_m_positive + S 0 = m) -> (exists gsp_le_gap_gsd_m_le_h. gsp_le_gap_gsd_m_le_h + m = h) -> (exists t. (exists gsp_lt_gap_gsd_t_below_p. gsp_lt_gap_gsd_t_below_p + S t = p) /\ t + m = p)Structural proof guide
Generated structural guide
A positive magnitude at most the odd half has a complement below the modulus.
Use the direct prerequisites lt_irrefl_expanded, nonzero_is_succ, add_assoc, add_comm, mul_comm, zero_add, add_succ_left as previously established PA formulas.
The proof proceeds by case analysis (2), intermediate claims (3), equality transport (3), certified simplification (2).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA0010 lt_irrefl_expanded PA001V nonzero_is_succ PA0009 add_assoc PA000F add_comm PA000H mul_comm PA0001 zero_add PA000E add_succ_leftDirect 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 p - 0002
intro h - 0003
intro m - 0004
intro hp - 0005
intro hmpositive - 0006
intro hmle - 0007
cases hmle - 0008
have hsum : (h + x + 1) + m = p - 0009
trans h + (x + m) + 1 - 0010
simp [add_assoc, add_comm] - 0011
congr - 0012
trans (m + x) + h - 0013
symm - 0014
apply add_assoc - 0015
trans (x + m) + h - 0016
congr - 0017
apply add_comm - 0018
refl - 0019
apply add_assoc - 0020
rewrite hmle_witness - 0021
rewrite hp - 0022
trans h + h + 1 - 0023
refl - 0024
congr - 0025
trans h * 2 - 0026
simp [zero_add] - 0027
specialize mul_comm h - 0028
specialize mul_comm 2 - 0029
apply mul_comm - 0030
refl - 0031
have hm0 : ~(m = 0) - 0032
intro hmzero - 0033
specialize lt_irrefl_expanded 0 - 0034
apply lt_irrefl_expanded - 0035
rewrite hmzero at hmpositive - 0036
exact hmpositive - 0037
have hmsucc : exists z. m = S z - 0038
specialize nonzero_is_succ m - 0039
apply nonzero_is_succ - 0040
exact hm0 - 0041
cases hmsucc - 0042
exists h + x + 1 - 0043
split - 0044
exists x1 - 0045
trans S (x1 + (h + x + 1)) - 0046
apply PA4 - 0047
trans S ((h + x + 1) + x1) - 0048
congr - 0049
apply add_comm - 0050
trans (h + x + 1) + S x1 - 0051
symm - 0052
apply PA4 - 0053
trans (h + x + 1) + m - 0054
congr - 0055
refl - 0056
symm - 0057
exact hmsucc_witness - 0058
exact hsum - 0059
exact hsum