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. ∀ a. ∀ x. ∀ y. Prime(p) → ¬a = 0 → Lt(a,p) → ModEq(p,x · y,a) → ¬y = 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 a x y. ((~(p = 1) /\ forall esi_prime_left_target_nonzero_prime esi_prime_right_target_nonzero_prime. p = esi_prime_left_target_nonzero_prime * esi_prime_right_target_nonzero_prime -> esi_prime_left_target_nonzero_prime = 1 \/ esi_prime_right_target_nonzero_prime = 1)) -> ~(a = 0) -> (exists esi_strict_gap_target_nonzero_target_bound. esi_strict_gap_target_nonzero_target_bound + S a = p) -> (exists esi_mod_left_target_nonzero_product esi_mod_right_target_nonzero_product. (x * y) + p * esi_mod_left_target_nonzero_product = (a) + p * esi_mod_right_target_nonzero_product) -> ~(y = 0)Proof neighborhood
Direct theorem prerequisites
Direct 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 (2)
01Fix variables and assumptionsL1–9
02Establish hp2L10–13
03Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases hp2
04Establish h0pL15–15
Establish this local claim before using it. It is not an additional assumption.
05Construct an explicit witnessL16–16
Supply the displayed value, then prove that it has the required property.
- L16
exists S x1
06Calculate and transport equalitiesL17–18
07Establish hzeroaL19–19
Establish this local claim before using it. It is not an additional assumption.
08Separate the logical casesL20–21
09Construct an explicit witnessL22–23
10Calculate and transport equalitiesL24–29
11Use earlier factsL30–31
12Calculate and transport equalitiesL32–32
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L32
refl
13Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
exact hxy_witness_witness
14Establish h0aL34–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq bounded unique.
15Use earlier factsL44–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
exact h0a
Original defined command ledger · 44 lines
- 0001
intro p - 0002
intro a - 0003
intro x - 0004
intro y - 0005
intro hp - 0006
intro ha0 - 0007
intro hap - 0008
intro hxy - 0009
intro hy0 - 0010
have hp2 : exists k. p = S (S k) - 0011
specialize prime_is_succ_succ p - 0012
apply prime_is_succ_succ - 0013
exact hp - 0014
cases hp2 - 0015
have h0p : Lt(0,p)Exact native replay line
have h0p : exists h. h + S 0 = p - 0016
exists S x1 - 0017
rewrite hp2_witness - 0018
simp - 0019
have hzeroa : ModEq(p,0,a)Exact native replay line
have hzeroa : exists esi_mod_left_target_nonzero_zero esi_mod_right_target_nonzero_zero. (0) + p * esi_mod_left_target_nonzero_zero = (a) + p * esi_mod_right_target_nonzero_zero - 0020
cases hxy - 0021
cases hxy_witness - 0022
exists x2 - 0023
exists x3 - 0024
trans (x * y) + p * x2 - 0025
congr - 0026
symm - 0027
trans x * 0 - 0028
congr - 0029
refl - 0030
exact hy0 - 0031
apply PA5 - 0032
refl - 0033
exact hxy_witness_witness - 0034
have h0a : 0 = a - 0035
specialize mod_eq_bounded_unique p - 0036
specialize mod_eq_bounded_unique 0 - 0037
specialize mod_eq_bounded_unique a - 0038
apply mod_eq_bounded_unique - 0039
exact h0p - 0040
exact hap - 0041
exact hzeroa - 0042
apply ha0 - 0043
symm - 0044
exact h0a