Exact expanded PA statement
forall a q r t c k d. r = a * q + t -> k = q * r + c -> d + a * c = t * r -> (exists bqb_le_gap_hj32_linear_square_budget. bqb_le_gap_hj32_linear_square_budget + (a * k) = (r * r))Structural proof guide
A factorized linear budget lies below a square by an explicit gap.
Direct prerequisites: mul_add, mul_assoc, add_assoc, add_comm, add_mul. The authored body proceeds by intermediate claims (8), equality transport (11).
Proof neighborhood
Direct dependencies
Direct 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 a - 0002
intro q - 0003
intro r - 0004
intro t - 0005
intro c - 0006
intro k - 0007
intro d - 0008
intro hr - 0009
intro hk - 0010
intro hd - 0011
exists d - 0012
rewrite hk - 0013
have hmul_add : a * (q * r + c) = a * (q * r) + a * c - 0014
specialize mul_add a - 0015
specialize mul_add (q * r) - 0016
specialize mul_add c - 0017
apply mul_add - 0018
rewrite hmul_add - 0019
have hassoc_one : d + (a * (q * r) + a * c) = (d + a * (q * r)) + a * c - 0020
symm - 0021
specialize add_assoc d - 0022
specialize add_assoc (a * (q * r)) - 0023
specialize add_assoc (a * c) - 0024
apply add_assoc - 0025
rewrite hassoc_one - 0026
have hcomm_one : d + a * (q * r) = a * (q * r) + d - 0027
specialize add_comm d - 0028
specialize add_comm (a * (q * r)) - 0029
apply add_comm - 0030
rewrite hcomm_one - 0031
have hassoc_two : (a * (q * r) + d) + a * c = a * (q * r) + (d + a * c) - 0032
specialize add_assoc (a * (q * r)) - 0033
specialize add_assoc d - 0034
specialize add_assoc (a * c) - 0035
apply add_assoc - 0036
rewrite hassoc_two - 0037
have hcomm_two : a * (q * r) + (d + a * c) = (d + a * c) + a * (q * r) - 0038
specialize add_comm (a * (q * r)) - 0039
specialize add_comm (d + a * c) - 0040
apply add_comm - 0041
rewrite hcomm_two - 0042
rewrite hd - 0043
have hmul_assoc : (a * q) * r = a * (q * r) - 0044
specialize mul_assoc a - 0045
specialize mul_assoc q - 0046
specialize mul_assoc r - 0047
apply mul_assoc - 0048
rewrite <- hmul_assoc - 0049
have hadd_mul : (t + a * q) * r = t * r + (a * q) * r - 0050
specialize add_mul t - 0051
specialize add_mul (a * q) - 0052
specialize add_mul r - 0053
apply add_mul - 0054
rewrite <- hadd_mul - 0055
have hcomm_three : t + a * q = a * q + t - 0056
specialize add_comm t - 0057
specialize add_comm (a * q) - 0058
apply add_comm - 0059
rewrite hcomm_three - 0060
rewrite <- hr - 0061
refl