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
∀ d. ∀ N. ∀ q. ∀ r. ∀ s. DivRem(N,d,q,r) → Le(d · s,N) → Le(s,q)Every 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
3 occurrences
In local proof propositions
6 occurrences
Exact expanded native-PA statement
forall d N q r s. (((N) = (d) * (q) + (r) /\ (exists bcf_lt_gap_b5rbdqlosl_division_bound. bcf_lt_gap_b5rbdqlosl_division_bound + S (r) = d))) -> (exists bcf_le_gap_b5rbdqlosl_scaled. bcf_le_gap_b5rbdqlosl_scaled + (d * s) = N) -> (exists bcf_le_gap_b5rbdqlosl_result. bcf_le_gap_b5rbdqlosl_result + (s) = q)Proof neighborhood
Direct theorem prerequisites
BT001R division_block_upper BT001G le_or_lt BT001L mul_le_mul_left BT001D lt_of_lt_of_le BT001I lt_not_leDirect 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–7
02Separate the logical casesL8–8
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L8
cases hdivision
03Establish hcasesL9–12
04Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
cases hcases
05Use earlier factsL14–14
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L14
exact hcases_left
06Establish hupperL15–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division block upper.
07Establish hreverseL22–23
Establish this local claim before using it. It is not an additional assumption.
08Establish hproductL24–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul left.
- L24
have hproduct : Le(d · S q,d · s)Definitions: Le(d · S q,d · s)Original native command in the exact edition - L25
specialize mul_le_mul_left (S q) - L26
specialize mul_le_mul_left s - L27
specialize mul_le_mul_left d - L28
apply mul_le_mul_left - L29
exact hreverse
09Establish hstrictL30–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt of lt of le.
10Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
exfalso
Original defined command ledger · 42 lines
- 0001
intro d - 0002
intro N - 0003
intro q - 0004
intro r - 0005
intro s - 0006
intro hdivision - 0007
intro hscaled - 0008
cases hdivision - 0009
have hcases : Le(s,q) ∨ Lt(q,s)Exact native replay line
have hcases : (exists bcf_le_gap_b5rbdqlosl_result. bcf_le_gap_b5rbdqlosl_result + (s) = q) \/ (exists bcf_lt_gap_b5rbdqlosl_reverse. bcf_lt_gap_b5rbdqlosl_reverse + S (q) = s) - 0010
specialize le_or_lt s - 0011
specialize le_or_lt q - 0012
exact le_or_lt - 0013
cases hcases - 0014
exact hcases_left - 0015
have hupper : Lt(N,d · S q)Exact native replay line
have hupper : exists bcf_lt_gap_b5rbdqlosl_upper. bcf_lt_gap_b5rbdqlosl_upper + S (N) = d * S q - 0016
rewrite hdivision_left - 0017
specialize division_block_upper d - 0018
specialize division_block_upper q - 0019
specialize division_block_upper r - 0020
apply division_block_upper - 0021
exact hdivision_right - 0022
have hreverse : Lt(q,s)Exact native replay line
have hreverse : exists bcf_le_gap_b5rbdqlosl_reverse_le. bcf_le_gap_b5rbdqlosl_reverse_le + (S q) = s - 0023
exact hcases_right - 0024
have hproduct : Le(d · S q,d · s)Exact native replay line
have hproduct : exists bcf_le_gap_b5rbdqlosl_product_le. bcf_le_gap_b5rbdqlosl_product_le + (d * S q) = d * s - 0025
specialize mul_le_mul_left (S q) - 0026
specialize mul_le_mul_left s - 0027
specialize mul_le_mul_left d - 0028
apply mul_le_mul_left - 0029
exact hreverse - 0030
have hstrict : Lt(N,d · s)Exact native replay line
have hstrict : exists bcf_lt_gap_b5rbdqlosl_contradiction. bcf_lt_gap_b5rbdqlosl_contradiction + S (N) = d * s - 0031
specialize lt_of_lt_of_le N - 0032
specialize lt_of_lt_of_le (d * S q) - 0033
specialize lt_of_lt_of_le (d * s) - 0034
apply lt_of_lt_of_le - 0035
exact hupper - 0036
exact hproduct - 0037
exfalso - 0038
specialize lt_not_le N - 0039
specialize lt_not_le (d * s) - 0040
apply lt_not_le - 0041
exact hstrict - 0042
exact hscaled