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
∀ p. ∀ q. ∀ h. ∀ k. ∀ i. ∀ d. ∀ r. p = 2 · h + 1 → q = 2 · k + 1 → Lt(i,h) → q · S i = p · d + r → Le(d,k)Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
2 occurrences
In local proof propositions
10 occurrences
Exact expanded native-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)Proof neighborhood
Direct theorem prerequisites
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 theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
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
Establish this local claim before using it. It is not an additional assumption.
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.
- L18
have hdivisor_le : Le(p · S k,p · d)Definitions: Le(p · S k,p · d)Original native command in the exact edition - L19
specialize mul_le_mul_left (S k) - L20
specialize mul_le_mul_left d - L21
specialize mul_le_mul_left p - L22
apply mul_le_mul_left - L23
exact hreverse
08Establish hdivision_leL24–28
Establish this local claim before using it. It is not an additional assumption.
- L24
have hdivision_le : Le(p · d,q · S i)Definitions: Le(p · d,q · S i)Original native command in the exact edition - L25
rewrite hdivision - L26
specialize le_add_right (p * d) - L27
specialize le_add_right r - L28
exact le_add_right
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.
- L29
have hsource_le : Le(q · S i,q · h)Definitions: Le(q · S i,q · h)Original native command in the exact edition - L30
specialize mul_le_mul_left (S i) - L31
specialize mul_le_mul_left h - L32
specialize mul_le_mul_left q - L33
apply mul_le_mul_left - L34
exact hi
10Establish hcombinedL35–35
Establish this local claim before using it. It is not an additional assumption.
- L35
have hcombined : Le(p · S k,q · h)Definitions: Le(p · S k,q · h)Original native command in the exact edition
11Establish htrans_allL36–40
Establish this local claim before using it. It is not an additional assumption.
12Establish hfirstL41–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
- L41
have hfirst : Le(p · S k,q · S i)Definitions: Le(p · S k,q · S i)Original native command in the exact edition - L42
apply le_trans - L43
exact hdivisor_le - L44
exact hdivision_le - L45
specialize htrans_all (p * S k) - L46
specialize htrans_all (q * S i) - L47
specialize htrans_all (q * h) - L48
apply htrans_all - L49
exact hfirst - L50
exact hsource_le
13Establish hcrossL51–56
Establish this local claim before using it. It is not an additional assumption.
- L51
have hcross : Lt(q · h,p · S k)Definitions: Lt(q · h,p · S k)Original native command in the exact edition - L52
rewrite hp - L53
rewrite hq - L54
specialize odd_half_cross_product_gap h - L55
specialize odd_half_cross_product_gap k - L56
exact odd_half_cross_product_gap
14Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
exfalso
Original defined 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 : Lt(k,d)Exact native replay line
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 : Le(p · S k,p · d)Exact native replay line
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 : Le(p · d,q · S i)Exact native replay line
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 : Le(q · S i,q · h)Exact native replay line
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 : Le(p · S k,q · h)Exact native replay line
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 : ∀ a. ∀ b. ∀ c. Le(a,b) → Le(b,c) → Le(a,c)Exact native replay line
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 : Le(p · S k,q · S i)Exact native replay line
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 : Lt(q · h,p · S k)Exact native replay line
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