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 p n q r j. n = p * q + r -> ~(r = 0) -> (exists edt_lt_gap_division_threshold_remainder_bound. edt_lt_gap_division_threshold_remainder_bound + S (r) = p) -> ((((exists edt_lt_gap_division_threshold_result_below. edt_lt_gap_division_threshold_result_below + S (p * S j) = n) -> (exists edt_le_gap_division_threshold_result_bounded. edt_le_gap_division_threshold_result_bounded + (S j) = q)) /\ ((exists edt_le_gap_division_threshold_result_bounded. edt_le_gap_division_threshold_result_bounded + (S j) = q) -> (exists edt_lt_gap_division_threshold_result_below. edt_lt_gap_division_threshold_result_below + S (p * S j) = n))))Structural proof guide
Generated structural guide
A positive multiple lies below a nonintegral division value exactly through the quotient threshold.
Use the direct prerequisites division_block_upper, lt_trans, le_or_lt, mul_le_mul_left, lt_not_le, nonzero_is_succ, add_comm, lt_of_le_of_lt as previously established PA formulas.
The proof proceeds by case analysis (2), intermediate claims (8), equality transport (3), certified simplification (1).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA006N division_block_upper PA006O lt_trans PA003B le_or_lt PA006M mul_le_mul_left PA003A lt_not_le PA001V nonzero_is_succ PA000F add_comm PA0033 lt_of_le_of_ltDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v25 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
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 (7)
01Fix variables and assumptionsL1–8
02Separate the logical casesL9–9
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L9
split
03Fix variables and assumptionsL10–10
Work with arbitrary variables or the premises of the current implication.
- L10
intro hbelow
04Establish hupperL11–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division block upper.
05Establish hstrictL18–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt trans.
- L18
have hstrict : exists edt_lt_gap_division_threshold_strict_products. edt_lt_gap_division_threshold_strict_products + S (p * S j) = p * S q - L19
specialize lt_trans (p * S j) - L20
specialize lt_trans n - L21
specialize lt_trans (p * S q) - L22
apply lt_trans - L23
exact hbelow - L24
exact hupper - L25
specialize le_or_lt (S j) - L26
specialize le_or_lt q
06Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases le_or_lt
07Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact le_or_lt_left
08Establish hqreverseL29–30
09Establish hqleL31–32
10Establish hproduct_leL33–38
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul left.
11Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
exfalso
12Use earlier factsL40–44
13Fix variables and assumptionsL45–45
Work with arbitrary variables or the premises of the current implication.
- L45
intro hbounded
14Establish hproduct_leL46–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul left.
15Establish hr_succL52–55
16Separate the logical casesL56–56
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L56
cases hr_succ
17Establish hpositiveL57–58
18Construct an explicit witnessL59–59
Supply the displayed value, then prove that it has the required property.
- L59
exists x
19Calculate and transport equalitiesL60–61
Original exact command ledger · 67 lines
- 0001
intro p - 0002
intro n - 0003
intro q - 0004
intro r - 0005
intro j - 0006
intro hdivision - 0007
intro hr0 - 0008
intro hrp - 0009
split - 0010
intro hbelow - 0011
have hupper : exists edt_lt_gap_division_threshold_block_upper. edt_lt_gap_division_threshold_block_upper + S (n) = p * S q - 0012
rewrite hdivision - 0013
specialize division_block_upper p - 0014
specialize division_block_upper q - 0015
specialize division_block_upper r - 0016
apply division_block_upper - 0017
exact hrp - 0018
have hstrict : exists edt_lt_gap_division_threshold_strict_products. edt_lt_gap_division_threshold_strict_products + S (p * S j) = p * S q - 0019
specialize lt_trans (p * S j) - 0020
specialize lt_trans n - 0021
specialize lt_trans (p * S q) - 0022
apply lt_trans - 0023
exact hbelow - 0024
exact hupper - 0025
specialize le_or_lt (S j) - 0026
specialize le_or_lt q - 0027
cases le_or_lt - 0028
exact le_or_lt_left - 0029
have hqreverse : exists edt_lt_gap_division_threshold_quotient_reverse. edt_lt_gap_division_threshold_quotient_reverse + S (q) = S j - 0030
exact le_or_lt_right - 0031
have hqle : exists edt_le_gap_division_threshold_quotient_reverse_le. edt_le_gap_division_threshold_quotient_reverse_le + (S q) = S j - 0032
exact hqreverse - 0033
have hproduct_le : exists edt_le_gap_division_threshold_products_reverse_le. edt_le_gap_division_threshold_products_reverse_le + (p * S q) = p * S j - 0034
specialize mul_le_mul_left (S q) - 0035
specialize mul_le_mul_left (S j) - 0036
specialize mul_le_mul_left p - 0037
apply mul_le_mul_left - 0038
exact hqle - 0039
exfalso - 0040
specialize lt_not_le (p * S j) - 0041
specialize lt_not_le (p * S q) - 0042
apply lt_not_le - 0043
exact hstrict - 0044
exact hproduct_le - 0045
intro hbounded - 0046
have hproduct_le : exists edt_le_gap_division_threshold_products_forward_le. edt_le_gap_division_threshold_products_forward_le + (p * S j) = p * q - 0047
specialize mul_le_mul_left (S j) - 0048
specialize mul_le_mul_left q - 0049
specialize mul_le_mul_left p - 0050
apply mul_le_mul_left - 0051
exact hbounded - 0052
have hr_succ : exists t. r = S t - 0053
specialize nonzero_is_succ r - 0054
apply nonzero_is_succ - 0055
exact hr0 - 0056
cases hr_succ - 0057
have hpositive : exists edt_lt_gap_division_threshold_positive_remainder_gap. edt_lt_gap_division_threshold_positive_remainder_gap + S (p * q) = n - 0058
rewrite hdivision - 0059
exists x - 0060
rewrite hr_succ_witness - 0061
simp [add_comm] - 0062
specialize lt_of_le_of_lt (p * S j) - 0063
specialize lt_of_le_of_lt (p * q) - 0064
specialize lt_of_le_of_lt n - 0065
apply lt_of_le_of_lt - 0066
exact hproduct_le - 0067
exact hpositive