Exact expanded PA statement
forall p h a x y m. p = 2 * h + 1 -> ((~(p = 1) /\ forall gsp_prime_left_collision_prime gsp_prime_right_collision_prime. p = gsp_prime_left_collision_prime * gsp_prime_right_collision_prime -> gsp_prime_left_collision_prime = 1 \/ gsp_prime_right_collision_prime = 1)) -> (~(exists gsp_divisor_factor_collision_multiplier. a = p * gsp_divisor_factor_collision_multiplier)) -> (exists gsp_lt_gap_mixed_sum_bound. gsp_lt_gap_mixed_sum_bound + S (x + y) = p) -> ~(x + y = 0) -> (exists gmp_mod_left_mixed_x_lower gmp_mod_right_mixed_x_lower. (a * x) + p * gmp_mod_left_mixed_x_lower = (m) + p * gmp_mod_right_mixed_x_lower) -> (exists gmp_mod_left_mixed_y_reflected gmp_mod_right_mixed_y_reflected. (a * y) + p * gmp_mod_left_mixed_y_reflected = ((2 * h) * m) + p * gmp_mod_right_mixed_y_reflected) -> falseStructural proof guide
Generated structural guide
Opposite signed representatives cannot share one magnitude when their positive source sum is below p.
Use the direct prerequisites mod_eq_add, mul_add, mul_succ_left, add_comm, dvd_to_mod_zero, mod_eq_trans, prime_mod_cancel, prime_nonzero, one_le_of_ne_zero, mod_eq_bounded_unique as previously established PA formulas.
The proof proceeds by case analysis (4), intermediate claims (9), equality transport (1), certified simplification (2).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA0022 mod_eq_add PA000A mul_add PA000G mul_succ_left PA000F add_comm PA0021 dvd_to_mod_zero PA0024 mod_eq_trans PA003S prime_mod_cancel PA0031 prime_nonzero PA002L one_le_of_ne_zero PA002U mod_eq_bounded_uniqueDirect 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 a - 0004
intro x - 0005
intro y - 0006
intro m - 0007
intro hpodd - 0008
intro hp - 0009
intro hnotdiv - 0010
intro hsum_bound - 0011
intro hsum_nonzero - 0012
intro hxlower - 0013
intro hyreflected - 0014
have hadd : exists gmp_mod_left_mixed_added gmp_mod_right_mixed_added. (a * x + a * y) + p * gmp_mod_left_mixed_added = (m + (2 * h) * m) + p * gmp_mod_right_mixed_added - 0015
specialize mod_eq_add p - 0016
specialize mod_eq_add (a * x) - 0017
specialize mod_eq_add m - 0018
specialize mod_eq_add (a * y) - 0019
specialize mod_eq_add (2 * h) * m - 0020
apply mod_eq_add - 0021
exact hxlower - 0022
exact hyreflected - 0023
cases hadd - 0024
cases hadd_witness - 0025
have hscaled_multiple : exists gmp_mod_left_mixed_scaled_sum_multiple gmp_mod_right_mixed_scaled_sum_multiple. (a * (x + y)) + p * gmp_mod_left_mixed_scaled_sum_multiple = (p * m) + p * gmp_mod_right_mixed_scaled_sum_multiple - 0026
exists x1 - 0027
exists x2 - 0028
trans (a * x + a * y) + p * x1 - 0029
congr - 0030
apply mul_add - 0031
refl - 0032
trans (m + (2 * h) * m) + p * x2 - 0033
exact hadd_witness_witness - 0034
congr - 0035
rewrite hpodd - 0036
simp [mul_succ_left, add_comm] - 0037
refl - 0038
have hmultiple_zero : exists gmp_mod_left_mixed_multiple_zero gmp_mod_right_mixed_multiple_zero. (p * m) + p * gmp_mod_left_mixed_multiple_zero = (0) + p * gmp_mod_right_mixed_multiple_zero - 0039
specialize dvd_to_mod_zero p - 0040
specialize dvd_to_mod_zero (p * m) - 0041
apply dvd_to_mod_zero - 0042
exists m - 0043
refl - 0044
have hscaled_zero : exists gmp_mod_left_mixed_scaled_sum_zero gmp_mod_right_mixed_scaled_sum_zero. (a * (x + y)) + p * gmp_mod_left_mixed_scaled_sum_zero = (0) + p * gmp_mod_right_mixed_scaled_sum_zero - 0045
specialize mod_eq_trans p - 0046
specialize mod_eq_trans (a * (x + y)) - 0047
specialize mod_eq_trans (p * m) - 0048
specialize mod_eq_trans 0 - 0049
apply mod_eq_trans - 0050
exact hscaled_multiple - 0051
exact hmultiple_zero - 0052
cases hscaled_zero - 0053
cases hscaled_zero_witness - 0054
have hscaled_factor_zero : exists gmp_mod_left_mixed_scaled_sum_factor_zero gmp_mod_right_mixed_scaled_sum_factor_zero. (a * (x + y)) + p * gmp_mod_left_mixed_scaled_sum_factor_zero = (a * 0) + p * gmp_mod_right_mixed_scaled_sum_factor_zero - 0055
exists x3 - 0056
exists x4 - 0057
trans 0 + p * x4 - 0058
exact hscaled_zero_witness_witness - 0059
congr - 0060
simp - 0061
refl - 0062
have hsum_zero_mod : exists gmp_mod_left_mixed_sum_zero gmp_mod_right_mixed_sum_zero. (x + y) + p * gmp_mod_left_mixed_sum_zero = (0) + p * gmp_mod_right_mixed_sum_zero - 0063
specialize prime_mod_cancel p - 0064
specialize prime_mod_cancel a - 0065
specialize prime_mod_cancel (x + y) - 0066
specialize prime_mod_cancel 0 - 0067
apply prime_mod_cancel - 0068
exact hp - 0069
exact hnotdiv - 0070
exact hscaled_factor_zero - 0071
have hp0 : ~(p = 0) - 0072
intro hpzero - 0073
specialize prime_nonzero p - 0074
apply prime_nonzero - 0075
exact hp - 0076
exact hpzero - 0077
have hzero_bound : exists gsp_lt_gap_mixed_zero_bound. gsp_lt_gap_mixed_zero_bound + S 0 = p - 0078
specialize one_le_of_ne_zero p - 0079
apply one_le_of_ne_zero - 0080
exact hp0 - 0081
have hsum_zero : x + y = 0 - 0082
specialize mod_eq_bounded_unique p - 0083
specialize mod_eq_bounded_unique (x + y) - 0084
specialize mod_eq_bounded_unique 0 - 0085
apply mod_eq_bounded_unique - 0086
exact hsum_bound - 0087
exact hzero_bound - 0088
exact hsum_zero_mod - 0089
apply hsum_nonzero - 0090
exact hsum_zero