Exact expanded PA statement
forall p a x y t. ((~(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_collision_x_bound. gsp_lt_gap_collision_x_bound + S x = p) -> (exists gsp_lt_gap_collision_y_bound. gsp_lt_gap_collision_y_bound + S y = p) -> (exists gmp_mod_left_same_target_x gmp_mod_right_same_target_x. (a * x) + p * gmp_mod_left_same_target_x = (t) + p * gmp_mod_right_same_target_x) -> (exists gmp_mod_left_same_target_y gmp_mod_right_same_target_y. (a * y) + p * gmp_mod_left_same_target_y = (t) + p * gmp_mod_right_same_target_y) -> x = yStructural proof guide
Generated structural guide
A nonzero prime residue multiplier is injective when two bounded sources have one modular target.
Use the direct prerequisites mod_eq_symm, mod_eq_trans, prime_mod_cancel, mod_eq_bounded_unique as previously established PA formulas.
The proof proceeds by intermediate claims (3).
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 p - 0002
intro a - 0003
intro x - 0004
intro y - 0005
intro t - 0006
intro hp - 0007
intro hnotdiv - 0008
intro hxbound - 0009
intro hybound - 0010
intro hxtarget - 0011
intro hytarget - 0012
have hreverse : exists gmp_mod_left_same_target_reverse gmp_mod_right_same_target_reverse. (t) + p * gmp_mod_left_same_target_reverse = (a * y) + p * gmp_mod_right_same_target_reverse - 0013
specialize mod_eq_symm p - 0014
specialize mod_eq_symm (a * y) - 0015
specialize mod_eq_symm t - 0016
apply mod_eq_symm - 0017
exact hytarget - 0018
have hscaled : exists gmp_mod_left_same_target_scaled gmp_mod_right_same_target_scaled. (a * x) + p * gmp_mod_left_same_target_scaled = (a * y) + p * gmp_mod_right_same_target_scaled - 0019
specialize mod_eq_trans p - 0020
specialize mod_eq_trans (a * x) - 0021
specialize mod_eq_trans t - 0022
specialize mod_eq_trans (a * y) - 0023
apply mod_eq_trans - 0024
exact hxtarget - 0025
exact hreverse - 0026
have hcanceled : exists gmp_mod_left_same_target_canceled gmp_mod_right_same_target_canceled. (x) + p * gmp_mod_left_same_target_canceled = (y) + p * gmp_mod_right_same_target_canceled - 0027
specialize prime_mod_cancel p - 0028
specialize prime_mod_cancel a - 0029
specialize prime_mod_cancel x - 0030
specialize prime_mod_cancel y - 0031
apply prime_mod_cancel - 0032
exact hp - 0033
exact hnotdiv - 0034
exact hscaled - 0035
specialize mod_eq_bounded_unique p - 0036
specialize mod_eq_bounded_unique x - 0037
specialize mod_eq_bounded_unique y - 0038
apply mod_eq_bounded_unique - 0039
exact hxbound - 0040
exact hybound - 0041
exact hcanceled