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 q h k i d r. p = 2 * h + 1 -> q = 2 * k + 1 -> (exists edt_lt_gap_odd_half_quotient_index_bound. edt_lt_gap_odd_half_quotient_index_bound + S (i) = h) -> q * S i = p * d + r -> (exists edt_le_gap_odd_half_quotient_bound. edt_le_gap_odd_half_quotient_bound + (d) = k)Structural proof guide
Generated structural guide
A division row from the first odd half has quotient at most the second half.
Use the direct prerequisites odd_half_cross_product_gap, le_or_lt, mul_le_mul_left, le_add_right, le_trans, lt_not_le as previously established PA formulas.
The proof proceeds by case analysis (1), intermediate claims (8), equality transport (3).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA00DQ odd_half_cross_product_gap PA003B le_or_lt PA006M mul_le_mul_left PA002S le_add_right PA000R le_trans PA003A lt_not_leDirect 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 (6)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hdivision
03Use earlier factsL12–13
04Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases le_or_lt
05Use earlier factsL15–15
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L15
exact le_or_lt_left
06Establish hreverseL16–17
07Establish hdivisor_leL18–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul left.
08Establish hdivision_leL24–28
Establish this local claim before using it. It is not an additional assumption.
09Establish hsource_leL29–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul left.
10Establish hcombinedL35–35
Establish this local claim before using it. It is not an additional assumption.
- L35
have hcombined : exists edt_le_gap_odd_half_combined_product_le. edt_le_gap_odd_half_combined_product_le + (p * S k) = q * h
11Establish htrans_allL36–40
12Establish hfirstL41–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
13Establish hcrossL51–56
Establish this local claim before using it. It is not an additional assumption.
14Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
exfalso
Original exact command ledger · 62 lines
- 0001
intro p - 0002
intro q - 0003
intro h - 0004
intro k - 0005
intro i - 0006
intro d - 0007
intro r - 0008
intro hp - 0009
intro hq - 0010
intro hi - 0011
intro hdivision - 0012
specialize le_or_lt d - 0013
specialize le_or_lt k - 0014
cases le_or_lt - 0015
exact le_or_lt_left - 0016
have hreverse : exists edt_lt_gap_odd_half_reverse_quotient. edt_lt_gap_odd_half_reverse_quotient + S (k) = d - 0017
exact le_or_lt_right - 0018
have hdivisor_le : exists edt_le_gap_odd_half_divisor_product_le. edt_le_gap_odd_half_divisor_product_le + (p * S k) = p * d - 0019
specialize mul_le_mul_left (S k) - 0020
specialize mul_le_mul_left d - 0021
specialize mul_le_mul_left p - 0022
apply mul_le_mul_left - 0023
exact hreverse - 0024
have hdivision_le : exists edt_le_gap_odd_half_division_product_le. edt_le_gap_odd_half_division_product_le + (p * d) = q * S i - 0025
rewrite hdivision - 0026
specialize le_add_right (p * d) - 0027
specialize le_add_right r - 0028
exact le_add_right - 0029
have hsource_le : exists edt_le_gap_odd_half_source_product_le. edt_le_gap_odd_half_source_product_le + (q * S i) = q * h - 0030
specialize mul_le_mul_left (S i) - 0031
specialize mul_le_mul_left h - 0032
specialize mul_le_mul_left q - 0033
apply mul_le_mul_left - 0034
exact hi - 0035
have hcombined : exists edt_le_gap_odd_half_combined_product_le. edt_le_gap_odd_half_combined_product_le + (p * S k) = q * h - 0036
have htrans_all : forall a b c. (exists t. t + a = b) -> (exists t. t + b = c) -> exists t. t + a = c - 0037
exact le_trans - 0038
specialize le_trans (p * S k) - 0039
specialize le_trans (p * d) - 0040
specialize le_trans (q * S i) - 0041
have hfirst : exists t. t + (p * S k) = q * S i - 0042
apply le_trans - 0043
exact hdivisor_le - 0044
exact hdivision_le - 0045
specialize htrans_all (p * S k) - 0046
specialize htrans_all (q * S i) - 0047
specialize htrans_all (q * h) - 0048
apply htrans_all - 0049
exact hfirst - 0050
exact hsource_le - 0051
have hcross : exists edt_lt_gap_odd_half_shaped_cross_gap. edt_lt_gap_odd_half_shaped_cross_gap + S (q * h) = p * S k - 0052
rewrite hp - 0053
rewrite hq - 0054
specialize odd_half_cross_product_gap h - 0055
specialize odd_half_cross_product_gap k - 0056
exact odd_half_cross_product_gap - 0057
exfalso - 0058
specialize lt_not_le (q * h) - 0059
specialize lt_not_le (p * S k) - 0060
apply lt_not_le - 0061
exact hcross - 0062
exact hcombined