Exact expanded PA statement
forall x y s t. (((exists bcs_sqrt_lower_gap_monotone_left. bcs_sqrt_lower_gap_monotone_left + (s) * (s) = (x)) /\ exists bcs_sqrt_upper_gap_monotone_left. bcs_sqrt_upper_gap_monotone_left + S (x) = S (s) * S (s))) -> (((exists bcs_sqrt_lower_gap_monotone_right. bcs_sqrt_lower_gap_monotone_right + (t) * (t) = (y)) /\ exists bcs_sqrt_upper_gap_monotone_right. bcs_sqrt_upper_gap_monotone_right + S (y) = S (t) * S (t))) -> (exists k. k + x = y) -> exists k. k + s = tStructural proof guide
Witness order on inputs is transported monotonically to floor roots.
Direct prerequisites: le_or_lt, mul_le_mul_right, mul_le_mul_left, le_trans, lt_of_lt_of_le, lt_not_le. The authored body proceeds by case analysis (3), intermediate claims (5).
Proof neighborhood
Direct dependencies
BT001G le_or_lt BT001M mul_le_mul_right BT001L mul_le_mul_left BT000F le_trans BT001D lt_of_lt_of_le BT001I lt_not_leDirect 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 x - 0002
intro y - 0003
intro s - 0004
intro t - 0005
intro hs - 0006
intro ht - 0007
intro hxy - 0008
cases hs - 0009
cases ht - 0010
specialize le_or_lt s - 0011
specialize le_or_lt t - 0012
cases le_or_lt - 0013
exact le_or_lt_left - 0014
exfalso - 0015
have hone : exists k. k + S t * S t = s * S t - 0016
apply mul_le_mul_right - 0017
exact le_or_lt_right - 0018
have htwo : exists k. k + s * S t = s * s - 0019
apply mul_le_mul_left - 0020
exact le_or_lt_right - 0021
have hsquare : exists k. k + S t * S t = s * s - 0022
specialize le_trans (S t * S t) - 0023
specialize le_trans (s * S t) - 0024
specialize le_trans (s * s) - 0025
apply le_trans - 0026
exact hone - 0027
exact htwo - 0028
have hsy : exists k. k + s * s = y - 0029
specialize le_trans (s * s) - 0030
specialize le_trans x - 0031
specialize le_trans y - 0032
apply le_trans - 0033
exact hs_left - 0034
exact hxy - 0035
have hylt : exists k. k + S y = s * s - 0036
specialize lt_of_lt_of_le y - 0037
specialize lt_of_lt_of_le (S t * S t) - 0038
specialize lt_of_lt_of_le (s * s) - 0039
apply lt_of_lt_of_le - 0040
exact ht_right - 0041
exact hsquare - 0042
specialize lt_not_le y - 0043
specialize lt_not_le (s * s) - 0044
apply lt_not_le - 0045
exact hylt - 0046
exact hsy