Exact expanded PA statement
forall n q r p. (((n + n) = (3) * (q) + (r) /\ (exists bcf_lt_gap_bdtsuql_division_bound. bcf_lt_gap_bdtsuql_division_bound + S (r) = 3))) -> (exists bcf_lt_gap_bdtsuql_quotient. bcf_lt_gap_bdtsuql_quotient + S (q) = p) -> (exists bcf_lt_gap_bdtsuql_result. bcf_lt_gap_bdtsuql_result + S (n + n) = (p + p) + p)Structural proof guide
A quotient below p places the dividend strictly below 3*p.
Direct prerequisites: division_block_upper, mul_le_mul_left, lt_of_lt_of_le, mul_succ_left, one_mul. The authored body proceeds by case analysis (1), intermediate claims (6), equality transport (4).
Proof neighborhood
Direct dependencies
BT001R division_block_upper BT001L mul_le_mul_left BT001D lt_of_lt_of_le BT0005 mul_succ_left BT0009 one_mulDirect dependents
Formal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
intro n - 0002
intro q - 0003
intro r - 0004
intro p - 0005
intro hdivision - 0006
intro hquotient - 0007
cases hdivision - 0008
have hblock : exists bcf_lt_gap_bdtsuql_block. bcf_lt_gap_bdtsuql_block + S (3 * q + r) = 3 * S q - 0009
specialize division_block_upper 3 - 0010
specialize division_block_upper q - 0011
specialize division_block_upper r - 0012
apply division_block_upper - 0013
exact hdivision_right - 0014
have hblock_aligned : exists bcf_lt_gap_bdtsuql_block_aligned. bcf_lt_gap_bdtsuql_block_aligned + S (n + n) = 3 * S q - 0015
rewrite hdivision_left - 0016
exact hblock - 0017
have hscaled : exists bcf_le_gap_bdtsuql_scaled. bcf_le_gap_bdtsuql_scaled + (3 * S q) = 3 * p - 0018
specialize mul_le_mul_left (S q) - 0019
specialize mul_le_mul_left p - 0020
specialize mul_le_mul_left 3 - 0021
apply mul_le_mul_left - 0022
exact hquotient - 0023
have hraw : exists bcf_lt_gap_bdtsuql_raw_result. bcf_lt_gap_bdtsuql_raw_result + S (n + n) = 3 * p - 0024
specialize lt_of_lt_of_le (n + n) - 0025
specialize lt_of_lt_of_le (3 * S q) - 0026
specialize lt_of_lt_of_le (3 * p) - 0027
apply lt_of_lt_of_le - 0028
exact hblock_aligned - 0029
exact hscaled - 0030
have hdouble : 2 * p = p + p - 0031
trans 1 * p + p - 0032
specialize mul_succ_left 1 - 0033
specialize mul_succ_left p - 0034
exact mul_succ_left - 0035
specialize one_mul p - 0036
rewrite one_mul - 0037
refl - 0038
have htriple : 3 * p = (p + p) + p - 0039
trans 2 * p + p - 0040
specialize mul_succ_left 2 - 0041
specialize mul_succ_left p - 0042
exact mul_succ_left - 0043
rewrite hdouble - 0044
refl - 0045
rewrite htriple at hraw - 0046
exact hraw