Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Statement with defined notation
∀ p. ∀ q. ∀ h. ∀ k. ∀ i. ∀ j. p = 2 · h + 1 → q = 2 · k + 1 → Prime(p) → Prime(q) → ¬p = q → Lt(i,h) → Lt(j,k) → ¬q · S i = p · S jEvery purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
4 occurrences
In local proof propositions
6 occurrences
Exact expanded native-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)Proof neighborhood
Direct theorem prerequisites
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 theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (7)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–13
03Establish hhalfL14–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply odd half strictly below modulus.
04Establish hipL19–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt of le of lt.
05Establish hpdivL27–27
Establish this local claim before using it. It is not an additional assumption.
06Construct an explicit witnessL28–28
Supply the displayed value, then prove that it has the required property.
- L28
exists S j
07Use earlier factsL29–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
exact heq
08Establish hsplitL30–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply euclid prime dvd product.
- L30
have hsplit : Dvd(p,q) ∨ Dvd(p,S i)Definitions: Dvd(p,q)Dvd(p,S i)Original native command in the exact edition - L31
specialize euclid_prime_dvd_product p - L32
specialize euclid_prime_dvd_product q - L33
specialize euclid_prime_dvd_product (S i) - L34
apply euclid_prime_dvd_product - L35
exact hp - L36
exact hpdiv
09Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases hsplit
10Establish hfactorL38–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime divisor eq one or self.
11Separate the logical casesL44–45
12Use earlier factsL46–48
13Calculate and transport equalitiesL49–49
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L49
symm
14Use earlier factsL50–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L50
exact hfactor_right
15Establish hsi0L51–53
16Establish hleL54–63
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor le nonzero.
17Use earlier factsL64–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L64
exact hle
Original defined command ledger · 64 lines
- 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 : Lt(h,p)Exact native replay line
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 : Lt(S i,p)Exact native replay line
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 : Dvd(p,q · S i)Exact native replay line
have hpdiv : exists t. q * S i = p * t - 0028
exists S j - 0029
exact heq - 0030
have hsplit : Dvd(p,q) ∨ Dvd(p,S i)Exact native replay line
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 : Le(p,S i)Exact native replay line
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