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) → ¬Dvd(p,a) → ModEq(p,a · x,a · y) → ModEq(p,x,y)Every 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
2 occurrences
Exact expanded native-PA statement
forall p a x y. (~(p = 1) /\ forall c e. p = c * e -> c = 1 \/ e = 1) -> ~(exists k. a = p * k) -> (exists u v. (a * x) + p * u = (a * y) + p * v) -> exists r s. x + p * r = y + p * sProof neighborhood
Direct theorem prerequisites
PA0031 prime_nonzero PA003N prime_not_divides_coprime PA003O coprime_symm PA003R mod_eq_cancel_coprimeDirect 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 (4)
01Fix variables and assumptionsL1–7
02Establish hp0L8–13
03Establish hpacopL14–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime not divides coprime.
04Establish hapcopL20–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply coprime symm.
Original defined command ledger · 32 lines
- 0001
intro p - 0002
intro a - 0003
intro x - 0004
intro y - 0005
intro hp - 0006
intro hnot - 0007
intro hxy - 0008
have hp0 : ~(p = 0) - 0009
intro hpzero - 0010
specialize prime_nonzero p - 0011
apply prime_nonzero - 0012
exact hp - 0013
exact hpzero - 0014
have hpacop : Coprime(p,a)Exact native replay line
have hpacop : forall d. (exists u. p = d * u) -> (exists v. a = d * v) -> d = 1 - 0015
specialize prime_not_divides_coprime p - 0016
specialize prime_not_divides_coprime a - 0017
apply prime_not_divides_coprime - 0018
exact hp - 0019
exact hnot - 0020
have hapcop : Coprime(a,p)Exact native replay line
have hapcop : forall d. (exists u. a = d * u) -> (exists v. p = d * v) -> d = 1 - 0021
specialize coprime_symm p - 0022
specialize coprime_symm a - 0023
apply coprime_symm - 0024
exact hpacop - 0025
specialize mod_eq_cancel_coprime p - 0026
specialize mod_eq_cancel_coprime a - 0027
specialize mod_eq_cancel_coprime x - 0028
specialize mod_eq_cancel_coprime y - 0029
apply mod_eq_cancel_coprime - 0030
exact hp0 - 0031
exact hapcop - 0032
exact hxy