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
∀ m. ∀ a. ∀ b. Lt(a,m) → Lt(b,m) → ModEq(m,a,b) → a = bEvery 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
0 occurrences
Exact expanded native-PA statement
forall m a b. (exists ha. ha + S a = m) -> (exists hb. hb + S b = m) -> (exists u v. a + m * u = b + m * v) -> a = bProof neighborhood
Direct theorem prerequisites
Direct theorem dependents
PA002V mod_eq_to_remainder_decomposition PA005J mod_eq_decidable_from_remainders PA0063 prime_bounded_nonzero_mod_inverse PA00AK bounded_mod_inverse_unique PA0079 prime_scaled_same_target_unique PA007B gauss_mixed_sign_scaled_source_impossible PA008E prime_mul_index_map_injective PA008P prime_scaled_inverse_target_nonzero PA009C prime_scaled_inverse_unique PA00BP odd_prime_one_not_mod_predecessor PA00C5 canonical_remainder_from_modDefinition-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–6
02Separate the logical casesL7–8
03Establish hdaL9–10
04Establish hdbL11–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add comm.
- L11
have hdb : a + m * x = m * x1 + b - L12
trans b + m * x1 - L13
exact hab_witness_witness - L14
apply add_comm - L15
specialize division_remainder_unique m - L16
specialize division_remainder_unique (a + m * x) - L17
specialize division_remainder_unique x - L18
specialize division_remainder_unique a - L19
specialize division_remainder_unique x1 - L20
specialize division_remainder_unique b
05Establish huniqL21–26
06Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases huniq
07Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact huniq_right
Original defined command ledger · 28 lines
- 0001
intro m - 0002
intro a - 0003
intro b - 0004
intro ha - 0005
intro hb - 0006
intro hab - 0007
cases hab - 0008
cases hab_witness - 0009
have hda : a + m * x = m * x + a - 0010
apply add_comm - 0011
have hdb : a + m * x = m * x1 + b - 0012
trans b + m * x1 - 0013
exact hab_witness_witness - 0014
apply add_comm - 0015
specialize division_remainder_unique m - 0016
specialize division_remainder_unique (a + m * x) - 0017
specialize division_remainder_unique x - 0018
specialize division_remainder_unique a - 0019
specialize division_remainder_unique x1 - 0020
specialize division_remainder_unique b - 0021
have huniq : x = x1 /\ a = b - 0022
apply division_remainder_unique - 0023
exact hda - 0024
exact ha - 0025
exact hdb - 0026
exact hb - 0027
cases huniq - 0028
exact huniq_right