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.
Exact expanded PA statement
forall p a x y z. ((~(p = 1) /\ forall esi_prime_left_unique_prime esi_prime_right_unique_prime. p = esi_prime_left_unique_prime * esi_prime_right_unique_prime -> esi_prime_left_unique_prime = 1 \/ esi_prime_right_unique_prime = 1)) -> ((((~(x = 0) /\ (exists esi_strict_gap_unique_left_left_bound. esi_strict_gap_unique_left_left_bound + S x = p))) /\ (((~(y = 0) /\ (exists esi_strict_gap_unique_left_right_bound. esi_strict_gap_unique_left_right_bound + S y = p))) /\ (exists esi_mod_left_unique_left_mod esi_mod_right_unique_left_mod. (x * y) + p * esi_mod_left_unique_left_mod = (a) + p * esi_mod_right_unique_left_mod)))) -> ((((~(x = 0) /\ (exists esi_strict_gap_unique_right_left_bound. esi_strict_gap_unique_right_left_bound + S x = p))) /\ (((~(z = 0) /\ (exists esi_strict_gap_unique_right_right_bound. esi_strict_gap_unique_right_right_bound + S z = p))) /\ (exists esi_mod_left_unique_right_mod esi_mod_right_unique_right_mod. (x * z) + p * esi_mod_left_unique_right_mod = (a) + p * esi_mod_right_unique_right_mod)))) -> y = zStructural proof guide
Generated structural guide
The bounded scaled inverse of a prime unit is unique.
Use the direct prerequisites divisor_le_nonzero, lt_not_le, mod_eq_symm, mod_eq_trans, prime_mod_cancel, mod_eq_bounded_unique as previously established PA formulas.
The proof proceeds by case analysis (8), intermediate claims (5).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA0039 divisor_le_nonzero PA003A lt_not_le PA003L mod_eq_symm PA0024 mod_eq_trans PA003S prime_mod_cancel PA002U mod_eq_bounded_uniqueDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v25 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
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 (6)
01Fix variables and assumptionsL1–8
02Separate the logical casesL9–16
03Establish hnotdivL17–18
04Establish hpxL19–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor le nonzero.
05Use earlier factsL29–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
exact hpx
06Establish hreverseL30–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
07Establish hproductsL36–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
- L36
have hproducts : exists esi_mod_left_unique_products esi_mod_right_unique_products. (x * y) + p * esi_mod_left_unique_products = (x * z) + p * esi_mod_right_unique_products - L37
specialize mod_eq_trans p - L38
specialize mod_eq_trans (x * y) - L39
specialize mod_eq_trans a - L40
specialize mod_eq_trans (x * z) - L41
apply mod_eq_trans - L42
exact hxy_right_right - L43
exact hreverse
08Establish hyzL44–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime mod cancel.
- L44
have hyz : exists esi_mod_left_unique_residues esi_mod_right_unique_residues. (y) + p * esi_mod_left_unique_residues = (z) + p * esi_mod_right_unique_residues - L45
specialize prime_mod_cancel p - L46
specialize prime_mod_cancel x - L47
specialize prime_mod_cancel y - L48
specialize prime_mod_cancel z - L49
apply prime_mod_cancel - L50
exact hp - L51
exact hnotdiv - L52
exact hproducts - L53
specialize mod_eq_bounded_unique p
Original exact command ledger · 59 lines
- 0001
intro p - 0002
intro a - 0003
intro x - 0004
intro y - 0005
intro z - 0006
intro hp - 0007
intro hxy - 0008
intro hxz - 0009
cases hxy - 0010
cases hxy_left - 0011
cases hxy_right - 0012
cases hxy_right_left - 0013
cases hxz - 0014
cases hxz_left - 0015
cases hxz_right - 0016
cases hxz_right_left - 0017
have hnotdiv : ~(exists k. x = p * k) - 0018
intro hdiv - 0019
have hpx : exists t. t + p = x - 0020
specialize divisor_le_nonzero p - 0021
specialize divisor_le_nonzero x - 0022
apply divisor_le_nonzero - 0023
exact hxy_left_left - 0024
exact hdiv - 0025
specialize lt_not_le x - 0026
specialize lt_not_le p - 0027
apply lt_not_le - 0028
exact hxy_left_right - 0029
exact hpx - 0030
have hreverse : exists esi_mod_left_unique_reverse esi_mod_right_unique_reverse. (a) + p * esi_mod_left_unique_reverse = (x * z) + p * esi_mod_right_unique_reverse - 0031
specialize mod_eq_symm p - 0032
specialize mod_eq_symm (x * z) - 0033
specialize mod_eq_symm a - 0034
apply mod_eq_symm - 0035
exact hxz_right_right - 0036
have hproducts : exists esi_mod_left_unique_products esi_mod_right_unique_products. (x * y) + p * esi_mod_left_unique_products = (x * z) + p * esi_mod_right_unique_products - 0037
specialize mod_eq_trans p - 0038
specialize mod_eq_trans (x * y) - 0039
specialize mod_eq_trans a - 0040
specialize mod_eq_trans (x * z) - 0041
apply mod_eq_trans - 0042
exact hxy_right_right - 0043
exact hreverse - 0044
have hyz : exists esi_mod_left_unique_residues esi_mod_right_unique_residues. (y) + p * esi_mod_left_unique_residues = (z) + p * esi_mod_right_unique_residues - 0045
specialize prime_mod_cancel p - 0046
specialize prime_mod_cancel x - 0047
specialize prime_mod_cancel y - 0048
specialize prime_mod_cancel z - 0049
apply prime_mod_cancel - 0050
exact hp - 0051
exact hnotdiv - 0052
exact hproducts - 0053
specialize mod_eq_bounded_unique p - 0054
specialize mod_eq_bounded_unique y - 0055
specialize mod_eq_bounded_unique z - 0056
apply mod_eq_bounded_unique - 0057
exact hxy_right_left_right - 0058
exact hxz_right_left_right - 0059
exact hyz