Exact expanded PA statement
forall p q h k i j. p = 2 * h + 1 -> q = 2 * k + 1 -> ((~(p = 1) /\ forall frp_prime_left_lattice_prime_p frp_prime_right_lattice_prime_p. p = frp_prime_left_lattice_prime_p * frp_prime_right_lattice_prime_p -> frp_prime_left_lattice_prime_p = 1 \/ frp_prime_right_lattice_prime_p = 1)) -> ((~(q = 1) /\ forall frp_prime_left_lattice_prime_q frp_prime_right_lattice_prime_q. q = frp_prime_left_lattice_prime_q * frp_prime_right_lattice_prime_q -> frp_prime_left_lattice_prime_q = 1 \/ frp_prime_right_lattice_prime_q = 1)) -> ~(p = q) -> (exists elo_gap_lattice_i_bound. elo_gap_lattice_i_bound + S (i) = h) -> (exists elo_gap_lattice_j_bound. elo_gap_lattice_j_bound + S (j) = k) -> ~(q * S i = p * S j)Structural proof guide
Generated structural guide
Distinct odd primes have no bounded positive point on q*x=p*y.
Use the direct prerequisites odd_half_strictly_below_modulus, lt_of_le_of_lt, euclid_prime_dvd_product, prime_divisor_eq_one_or_self, succ_ne_zero, divisor_le_nonzero, lt_not_le as previously established PA formulas.
The proof proceeds by case analysis (3), intermediate claims (7).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA00C2 odd_half_strictly_below_modulus PA0033 lt_of_le_of_lt PA0038 euclid_prime_dvd_product PA0003 prime_divisor_eq_one_or_self PA0005 succ_ne_zero PA0039 divisor_le_nonzero PA003A lt_not_leDirect 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 q - 0003
intro h - 0004
intro k - 0005
intro i - 0006
intro j - 0007
intro hpodd - 0008
intro hqodd - 0009
intro hp - 0010
intro hq - 0011
intro hpq - 0012
intro hi - 0013
intro hj - 0014
have hhalf : exists elo_gap_lattice_half_below_p. elo_gap_lattice_half_below_p + S (h) = p - 0015
specialize odd_half_strictly_below_modulus p - 0016
specialize odd_half_strictly_below_modulus h - 0017
apply odd_half_strictly_below_modulus - 0018
exact hpodd - 0019
have hip : exists elo_gap_lattice_i_below_p. elo_gap_lattice_i_below_p + S (S i) = p - 0020
specialize lt_of_le_of_lt (S i) - 0021
specialize lt_of_le_of_lt h - 0022
specialize lt_of_le_of_lt p - 0023
apply lt_of_le_of_lt - 0024
exact hi - 0025
exact hhalf - 0026
intro heq - 0027
have hpdiv : exists t. q * S i = p * t - 0028
exists S j - 0029
exact heq - 0030
have hsplit : (exists u. q = p * u) \/ exists v. S i = p * v - 0031
specialize euclid_prime_dvd_product p - 0032
specialize euclid_prime_dvd_product q - 0033
specialize euclid_prime_dvd_product (S i) - 0034
apply euclid_prime_dvd_product - 0035
exact hp - 0036
exact hpdiv - 0037
cases hsplit - 0038
have hfactor : p = 1 \/ q = p - 0039
specialize prime_divisor_eq_one_or_self q - 0040
specialize prime_divisor_eq_one_or_self p - 0041
apply prime_divisor_eq_one_or_self - 0042
exact hq - 0043
exact hsplit_left - 0044
cases hfactor - 0045
cases hp - 0046
apply hp_left - 0047
exact hfactor_left - 0048
apply hpq - 0049
symm - 0050
exact hfactor_right - 0051
have hsi0 : ~(S i = 0) - 0052
specialize succ_ne_zero i - 0053
exact succ_ne_zero - 0054
have hle : exists gap. gap + p = S i - 0055
specialize divisor_le_nonzero p - 0056
specialize divisor_le_nonzero (S i) - 0057
apply divisor_le_nonzero - 0058
exact hsi0 - 0059
exact hsplit_right - 0060
specialize lt_not_le (S i) - 0061
specialize lt_not_le p - 0062
apply lt_not_le - 0063
exact hip - 0064
exact hle