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-v16 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
- 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