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.
Exact expanded 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)Structural proof guide
A scaled lower bound forces the division quotient above its scale index.
Direct prerequisites: division_block_upper, le_or_lt, mul_le_mul_left, lt_of_lt_of_le, lt_not_le. The authored body proceeds by case analysis (2), intermediate claims (5), equality transport (1).
Proof neighborhood
Direct dependencies
BT001R division_block_upper BT001G le_or_lt BT001L mul_le_mul_left BT001D lt_of_lt_of_le BT001I lt_not_leDirect dependents
Formal native tactic body
Dependencies are hypotheses of the historical Alpha-v12 body receipt. The complete historical Alpha-v18 proof bundle independently checks every dependency; current Alpha v25 preserves that checked theorem use without changing Stable membership.
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
Establish this local claim before using it. It is not an additional assumption.
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
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.
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 exact 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 : (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 : 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 : exists bcf_le_gap_b5rbdqlosl_reverse_le. bcf_le_gap_b5rbdqlosl_reverse_le + (S q) = s - 0023
exact hcases_right - 0024
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 : 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