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. ∀ n. ∀ q. ∀ r. ∀ q2. ∀ r2. n = m · q + r → Lt(r,m) → n = m · q2 + r2 → Lt(r2,m) → q = q2 ∧ r = r2Every 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
0 occurrences
Exact expanded native-PA statement
forall m n q r q2 r2. n = m * q + r -> (exists k. k + S r = m) -> n = m * q2 + r2 -> (exists k. k + S r2 = m) -> q = q2 /\ r = r2Proof neighborhood
Direct theorem prerequisites
BT0000 zero_add BT000K le_total BT000Q zero_or_succ BT000V add_left_cancel BT001S positive_quotient_gap_impossibleDirect theorem dependents
BT003B multiple_decidable_nonzero BT003W mod_eq_bounded_unique BT0042 beta_at_unique BT00S1 power_quotient_prefix_transport BT00SG division_remainder_successor_cases BT00SH division_successor_quotient_by_bit BT00SS prime_power_quotient_prefix_last_zero BT00XF division_zero_quotient_of_lt BT00XG division_double_quotient_bit BT00YC double_quotient_carry_prefix_entries_zeroDefinition-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–10
02Establish hsumL11–17
03Separate the logical casesL18–19
04Use earlier factsL20–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L20
specialize zero_or_succ x
05Separate the logical casesL21–21
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L21
cases zero_or_succ
06Calculate and transport equalitiesL22–22
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L22
rewrite zero_or_succ_left at le_total_left_witness
07Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
specialize zero_add q
08Calculate and transport equalitiesL24–24
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L24
rewrite zero_add at le_total_left_witness
09Separate the logical casesL25–25
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L25
split
10Use earlier factsL26–30
11Calculate and transport equalitiesL31–31
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L31
rewrite <- le_total_left_witness at hsum
12Use earlier factsL32–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
exact hsum
13Separate the logical casesL33–34
14Use earlier factsL35–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
specialize positive_quotient_gap_impossible m - L36
specialize positive_quotient_gap_impossible q - L37
specialize positive_quotient_gap_impossible q2 - L38
specialize positive_quotient_gap_impossible r - L39
specialize positive_quotient_gap_impossible r2 - L40
specialize positive_quotient_gap_impossible x1 - L41
apply positive_quotient_gap_impossible - L42
exact hr
15Calculate and transport equalitiesL43–43
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L43
rewrite zero_or_succ_right_witness at le_total_left_witness
16Use earlier factsL44–45
17Separate the logical casesL46–46
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L46
cases le_total_right
18Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
specialize zero_or_succ x
19Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
cases zero_or_succ
20Calculate and transport equalitiesL49–49
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L49
rewrite zero_or_succ_left at le_total_right_witness
21Use earlier factsL50–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L50
specialize zero_add q2
22Calculate and transport equalitiesL51–51
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L51
rewrite zero_add at le_total_right_witness
23Separate the logical casesL52–52
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L52
split
24Calculate and transport equalitiesL53–53
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L53
symm
25Use earlier factsL54–58
26Calculate and transport equalitiesL59–59
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L59
rewrite le_total_right_witness at hsum
27Use earlier factsL60–60
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
exact hsum
28Separate the logical casesL61–62
29Use earlier factsL63–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
specialize positive_quotient_gap_impossible m - L64
specialize positive_quotient_gap_impossible q2 - L65
specialize positive_quotient_gap_impossible q - L66
specialize positive_quotient_gap_impossible r2 - L67
specialize positive_quotient_gap_impossible r - L68
specialize positive_quotient_gap_impossible x1 - L69
apply positive_quotient_gap_impossible - L70
exact hr2
30Calculate and transport equalitiesL71–71
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L71
rewrite zero_or_succ_right_witness at le_total_right_witness
31Use earlier factsL72–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
exact le_total_right_witness
32Calculate and transport equalitiesL73–73
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L73
symm
33Use earlier factsL74–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
exact hsum
Original defined command ledger · 74 lines
- 0001
intro m - 0002
intro n - 0003
intro q - 0004
intro r - 0005
intro q2 - 0006
intro r2 - 0007
intro h1 - 0008
intro hr - 0009
intro h2 - 0010
intro hr2 - 0011
have hsum : m * q + r = m * q2 + r2 - 0012
trans n - 0013
symm - 0014
exact h1 - 0015
exact h2 - 0016
specialize le_total q - 0017
specialize le_total q2 - 0018
cases le_total - 0019
cases le_total_left - 0020
specialize zero_or_succ x - 0021
cases zero_or_succ - 0022
rewrite zero_or_succ_left at le_total_left_witness - 0023
specialize zero_add q - 0024
rewrite zero_add at le_total_left_witness - 0025
split - 0026
exact le_total_left_witness - 0027
specialize add_left_cancel (m * q) - 0028
specialize add_left_cancel r - 0029
specialize add_left_cancel r2 - 0030
apply add_left_cancel - 0031
rewrite <- le_total_left_witness at hsum - 0032
exact hsum - 0033
cases zero_or_succ_right - 0034
exfalso - 0035
specialize positive_quotient_gap_impossible m - 0036
specialize positive_quotient_gap_impossible q - 0037
specialize positive_quotient_gap_impossible q2 - 0038
specialize positive_quotient_gap_impossible r - 0039
specialize positive_quotient_gap_impossible r2 - 0040
specialize positive_quotient_gap_impossible x1 - 0041
apply positive_quotient_gap_impossible - 0042
exact hr - 0043
rewrite zero_or_succ_right_witness at le_total_left_witness - 0044
exact le_total_left_witness - 0045
exact hsum - 0046
cases le_total_right - 0047
specialize zero_or_succ x - 0048
cases zero_or_succ - 0049
rewrite zero_or_succ_left at le_total_right_witness - 0050
specialize zero_add q2 - 0051
rewrite zero_add at le_total_right_witness - 0052
split - 0053
symm - 0054
exact le_total_right_witness - 0055
specialize add_left_cancel (m * q) - 0056
specialize add_left_cancel r - 0057
specialize add_left_cancel r2 - 0058
apply add_left_cancel - 0059
rewrite le_total_right_witness at hsum - 0060
exact hsum - 0061
cases zero_or_succ_right - 0062
exfalso - 0063
specialize positive_quotient_gap_impossible m - 0064
specialize positive_quotient_gap_impossible q2 - 0065
specialize positive_quotient_gap_impossible q - 0066
specialize positive_quotient_gap_impossible r2 - 0067
specialize positive_quotient_gap_impossible r - 0068
specialize positive_quotient_gap_impossible x1 - 0069
apply positive_quotient_gap_impossible - 0070
exact hr2 - 0071
rewrite zero_or_succ_right_witness at le_total_right_witness - 0072
exact le_total_right_witness - 0073
symm - 0074
exact hsum