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. ∀ k. ∀ i. ∀ d. ∀ r. p = 2 · k + 1 → Prime(p) → Prime(q) → ¬p = q → Lt(i,k) → q · S i = p · d + r → ¬r = 0Every 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
3 occurrences
In local proof propositions
2 occurrences
Exact expanded native-PA statement
forall p q k i d r. p = 2 * k + 1 -> ((~(p = 1) /\ forall frp_prime_left_remainder_nonzero_prime_p frp_prime_right_remainder_nonzero_prime_p. p = frp_prime_left_remainder_nonzero_prime_p * frp_prime_right_remainder_nonzero_prime_p -> frp_prime_left_remainder_nonzero_prime_p = 1 \/ frp_prime_right_remainder_nonzero_prime_p = 1)) -> ((~(q = 1) /\ forall frp_prime_left_remainder_nonzero_prime_q frp_prime_right_remainder_nonzero_prime_q. q = frp_prime_left_remainder_nonzero_prime_q * frp_prime_right_remainder_nonzero_prime_q -> frp_prime_left_remainder_nonzero_prime_q = 1 \/ frp_prime_right_remainder_nonzero_prime_q = 1)) -> ~(p = q) -> (exists ern_lt_gap_remainder_nonzero_own_half_bound. ern_lt_gap_remainder_nonzero_own_half_bound + S (i) = k) -> q * S i = p * d + r -> ~(r = 0)Proof neighborhood
Direct theorem prerequisites
PA00C2 odd_half_strictly_below_modulus PA0033 lt_of_le_of_lt PA00DO distinct_primes_bounded_scaled_remainder_nonzeroDirect 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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–13
03Establish hkpL14–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–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt of le of lt.
- L19
- L20
specialize lt_of_le_of_lt (S i) - L21
specialize lt_of_le_of_lt k - L22
specialize lt_of_le_of_lt p - L23
apply lt_of_le_of_lt - L24
exact hik - L25
exact hkp - L26
specialize distinct_primes_bounded_scaled_remainder_nonzero p - L27
specialize distinct_primes_bounded_scaled_remainder_nonzero q - L28
specialize distinct_primes_bounded_scaled_remainder_nonzero i
05Use earlier factsL29–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 37 lines
- 0001
intro p - 0002
intro q - 0003
intro k - 0004
intro i - 0005
intro d - 0006
intro r - 0007
intro hpodd - 0008
intro hp - 0009
intro hq - 0010
intro hpq - 0011
intro hik - 0012
intro hdivision - 0013
intro hr0 - 0014
have hkp : Lt(k,p)Exact native replay line
have hkp : exists ern_lt_gap_remainder_nonzero_half_below_p. ern_lt_gap_remainder_nonzero_half_below_p + S (k) = p - 0015
specialize odd_half_strictly_below_modulus p - 0016
specialize odd_half_strictly_below_modulus k - 0017
apply odd_half_strictly_below_modulus - 0018
exact hpodd - 0019
have hip : Lt(S i,p)Exact native replay line
have hip : exists ern_lt_gap_remainder_nonzero_index_below_p. ern_lt_gap_remainder_nonzero_index_below_p + S (S i) = p - 0020
specialize lt_of_le_of_lt (S i) - 0021
specialize lt_of_le_of_lt k - 0022
specialize lt_of_le_of_lt p - 0023
apply lt_of_le_of_lt - 0024
exact hik - 0025
exact hkp - 0026
specialize distinct_primes_bounded_scaled_remainder_nonzero p - 0027
specialize distinct_primes_bounded_scaled_remainder_nonzero q - 0028
specialize distinct_primes_bounded_scaled_remainder_nonzero i - 0029
specialize distinct_primes_bounded_scaled_remainder_nonzero d - 0030
specialize distinct_primes_bounded_scaled_remainder_nonzero r - 0031
apply distinct_primes_bounded_scaled_remainder_nonzero - 0032
exact hp - 0033
exact hq - 0034
exact hpq - 0035
exact hip - 0036
exact hdivision - 0037
exact hr0