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. ∀ b. ∀ x. ¬m = 0 → Lt(x,m) → ModEq(m,b,x) → ∃ y. b = y · m + xEvery purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.
Definitions used by this theorem
In the theorem statement
2 occurrences
In local proof propositions
3 occurrences
Exact expanded native-PA statement
forall m b x. ~(m = 0) -> (exists h. h + S x = m) -> (exists u v. b + m * u = x + m * v) -> exists q. b = q * m + xProof neighborhood
Direct theorem prerequisites
BT001P division_remainder_exists BT0002 add_comm BT0006 mul_comm BT003Q mod_eq_trans BT003W mod_eq_bounded_uniqueDirect theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.
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 (5)
01Fix variables and assumptionsL1–6
02Establish hdivL7–11
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder exists.
- L7
have hdiv : ∃ q. ∃ r. DivRem(b,m,q,r)Definitions: DivRem(b,m,q,r)Original native command in the exact edition - L8
specialize division_remainder_exists m - L9
specialize division_remainder_exists b - L10
apply division_remainder_exists - L11
exact hm
03Separate the logical casesL12–14
04Establish hrembL15–15
Establish this local claim before using it. It is not an additional assumption.
05Construct an explicit witnessL16–17
06Calculate and transport equalitiesL18–18
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L18
trans m * x1 + x2
07Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
apply add_comm
08Calculate and transport equalitiesL20–21
09Use earlier factsL22–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L22
exact hdiv_witness_witness_left
10Calculate and transport equalitiesL23–24
11Use earlier factsL25–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
apply PA3
12Establish hremxL26–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
13Establish hrxL34–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq bounded unique.
14Construct an explicit witnessL42–42
Supply the displayed value, then prove that it has the required property.
- L42
exists x1
15Calculate and transport equalitiesL43–43
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L43
trans m * x1 + x2
16Use earlier factsL44–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
exact hdiv_witness_witness_left
17Calculate and transport equalitiesL45–46
18Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
apply mul_comm
19Calculate and transport equalitiesL48–50
20Use earlier factsL51–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
exact hrx
Original defined command ledger · 51 lines
- 0001
intro m - 0002
intro b - 0003
intro x - 0004
intro hm - 0005
intro hx - 0006
intro hbx - 0007
have hdiv : ∃ q. ∃ r. DivRem(b,m,q,r)Exact native replay line
have hdiv : exists q r. b = m * q + r /\ exists h. h + S r = m - 0008
specialize division_remainder_exists m - 0009
specialize division_remainder_exists b - 0010
apply division_remainder_exists - 0011
exact hm - 0012
cases hdiv - 0013
cases hdiv_witness - 0014
cases hdiv_witness_witness - 0015
have hremb : ModEq(m,x2,b)Exact native replay line
have hremb : exists u v. x2 + m * u = b + m * v - 0016
exists x1 - 0017
exists 0 - 0018
trans m * x1 + x2 - 0019
apply add_comm - 0020
trans b - 0021
symm - 0022
exact hdiv_witness_witness_left - 0023
symm - 0024
rewrite PA5 - 0025
apply PA3 - 0026
have hremx : ModEq(m,x2,x)Exact native replay line
have hremx : exists u v. x2 + m * u = x + m * v - 0027
specialize mod_eq_trans m - 0028
specialize mod_eq_trans x2 - 0029
specialize mod_eq_trans b - 0030
specialize mod_eq_trans x - 0031
apply mod_eq_trans - 0032
exact hremb - 0033
exact hbx - 0034
have hrx : x2 = x - 0035
specialize mod_eq_bounded_unique m - 0036
specialize mod_eq_bounded_unique x2 - 0037
specialize mod_eq_bounded_unique x - 0038
apply mod_eq_bounded_unique - 0039
exact hdiv_witness_witness_right - 0040
exact hx - 0041
exact hremx - 0042
exists x1 - 0043
trans m * x1 + x2 - 0044
exact hdiv_witness_witness_left - 0045
trans x1 * m + x2 - 0046
congr - 0047
apply mul_comm - 0048
refl - 0049
congr - 0050
refl - 0051
exact hrx