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. ∀ c. ModEq(m,a,b) → ModEq(m,b,c) → ModEq(m,a,c)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
3 occurrences
In local proof propositions
0 occurrences
Exact expanded native-PA statement
forall m a b c. (exists u v. a + m * u = b + m * v) -> (exists r s. b + m * r = c + m * s) -> exists x y. a + m * x = c + m * yProof neighborhood
Direct theorem prerequisites
Direct theorem dependents
PA0026 binary_crt PA0028 binary_crt_fold_step PA002V mod_eq_to_remainder_decomposition PA003Q coprime_mod_inverse PA003R mod_eq_cancel_coprime PA004E mod_eq_mul PA005E pow_predecessor_parity_mod PA005J mod_eq_decidable_from_remainders PA005R quadratic_residue_bounded_equiv PA0063 prime_bounded_nonzero_mod_inverse PA00AK bounded_mod_inverse_unique PA0070 gauss_pointwise_signed_half_representative PA0079 prime_scaled_same_target_unique PA007B gauss_mixed_sign_scaled_source_impossible PA0087 quadratic_residue_mod_equiv PA008E prime_mul_index_map_injective PA008M quadratic_residue_half_power_mod_one PA008O scaled_inverse_transport_right PA009C prime_scaled_inverse_unique PA00BK scaled_pair_order_terminal_power_mod_predecessor PA00BQ bounded_euler_criterion_residue_iff PA00BR arbitrary_euler_criterion_residue_iff PA00BS bounded_euler_criterion_nonresidue_iff PA00BT arbitrary_euler_criterion_nonresidue_iff PA00BV arbitrary_gauss_lemma_complete PA00C5 canonical_remainder_from_mod PA00C6 odd_signed_division_branch_exact PA00CJ matching_parity_mod_two PA00CN odd_scaled_division_signed_mod_two PA00FL mod_two_preserves_parityDefinition-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.
01Fix variables and assumptionsL1–6
02Separate the logical casesL7–10
03Construct an explicit witnessL11–12
04Calculate and transport equalitiesL13–15
05Use earlier factsL16–16
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
apply mul_add
06Calculate and transport equalitiesL17–18
07Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
apply add_assoc
08Calculate and transport equalitiesL20–21
09Use earlier factsL22–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L22
exact hab_witness_witness
10Calculate and transport equalitiesL23–24
11Use earlier factsL25–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
apply add_assoc
12Calculate and transport equalitiesL26–28
13Use earlier factsL29–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
apply add_comm
14Calculate and transport equalitiesL30–31
15Use earlier factsL32–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
apply add_assoc
16Calculate and transport equalitiesL33–34
17Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact hbc_witness_witness
18Calculate and transport equalitiesL36–37
19Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
apply add_assoc
20Calculate and transport equalitiesL39–41
21Use earlier factsL42–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
apply mul_add
Original defined command ledger · 42 lines
- 0001
intro m - 0002
intro a - 0003
intro b - 0004
intro c - 0005
intro hab - 0006
intro hbc - 0007
cases hab - 0008
cases hab_witness - 0009
cases hbc - 0010
cases hbc_witness - 0011
exists x + x2 - 0012
exists x3 + x1 - 0013
trans a + (m * x + m * x2) - 0014
congr - 0015
refl - 0016
apply mul_add - 0017
trans (a + m * x) + m * x2 - 0018
symm - 0019
apply add_assoc - 0020
trans (b + m * x1) + m * x2 - 0021
congr - 0022
exact hab_witness_witness - 0023
refl - 0024
trans b + (m * x1 + m * x2) - 0025
apply add_assoc - 0026
trans b + (m * x2 + m * x1) - 0027
congr - 0028
refl - 0029
apply add_comm - 0030
trans (b + m * x2) + m * x1 - 0031
symm - 0032
apply add_assoc - 0033
trans (c + m * x3) + m * x1 - 0034
congr - 0035
exact hbc_witness_witness - 0036
refl - 0037
trans c + (m * x3 + m * x1) - 0038
apply add_assoc - 0039
congr - 0040
refl - 0041
symm - 0042
apply mul_add