Step-by-step derivation
S001 · implies
Before
source roles = [qf-quadratic-exact-roots, exact_roots]
After
derived = [[increasing_reduced_positive_denominator_root_SET_retaining1]]
Conditions: none
List this scalar/label/set/point answer role or mode-specific ordered fields,not an imposed universal tuple.Retain legacy domain/underscore operation and integer fractions with/1;original bilingual snapshots stay unchanged.
Step identifiers and dependencies
Rule: source_answer_roles_or_ordered_fields_without_JS · Uses: G001
S002 · calculation
Before
Legacy quadratic ORIGINAL b squared := mul(-17, -17)
After
Legacy quadratic ORIGINAL b squared = 289
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S001
S003 · calculation
Before
Legacy quadratic ORIGINAL a times c := mul(-6, 14)
After
Legacy quadratic ORIGINAL a times c = -84
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S002
S004 · calculation
Before
Legacy quadratic ORIGINAL four times ac := mul(4, -84)
After
Legacy quadratic ORIGINAL four times ac = -336
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S003
S005 · calculation
Before
Legacy quadratic ORIGINAL b squared minus fourac := sub(289, -336)
After
Legacy quadratic ORIGINAL b squared minus fourac = 625
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S004
S006 · implies
Before
source roles = [-6, -17, 14, 625]
After
derived = [4a*(a*x^2+b*x+c)=(2a*x+b)^2-D, 2]
Conditions: none
With a!=0,multiplication by4a is invertible and the equation is equivalent to(2ax+b)²=D.Negative D gives no real root,zero D one value and positive D two DISTINCT values.A repeated root counts once;D is unbounded derived BigInt.
Step identifiers and dependencies
Rule: Legacy_quadratic_GENERAL_complete_square_iff_DISTINCT_real_roots · Uses: G001, S005
S007 · calculation
Before
Legacy quadratic DERIVED discriminant exact midpoint square0 := mul(313, 313)
After
Legacy quadratic DERIVED discriminant exact midpoint square0 = 97969
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S006
S008 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 625, 0, [0, 626], 313]
After
derived = [97969, No, 0, 313]
Conditions: none
Squaring is monotone on nonnegative integers;maintain low²<=n<high².The midpoint is BigInt floor((low+high)/2),not floating sqrt,and strictly shrinks the integer bracket.Derived values do not inherit SAFE bounds.
Step identifiers and dependencies
Rule: Legacy_isqrt_EACH_BigInt_integer_midpoint_bracket · Uses: G001, S007
S009 · calculation
Before
Legacy quadratic DERIVED discriminant exact midpoint square1 := mul(156, 156)
After
Legacy quadratic DERIVED discriminant exact midpoint square1 = 24336
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S008
S010 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 625, 1, [0, 313], 156]
After
derived = [24336, No, 0, 156]
Conditions: none
Squaring is monotone on nonnegative integers;maintain low²<=n<high².The midpoint is BigInt floor((low+high)/2),not floating sqrt,and strictly shrinks the integer bracket.Derived values do not inherit SAFE bounds.
Step identifiers and dependencies
Rule: Legacy_isqrt_EACH_BigInt_integer_midpoint_bracket · Uses: G001, S009
S011 · calculation
Before
Legacy quadratic DERIVED discriminant exact midpoint square2 := mul(78, 78)
After
Legacy quadratic DERIVED discriminant exact midpoint square2 = 6084
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S010
S012 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 625, 2, [0, 156], 78]
After
derived = [6084, No, 0, 78]
Conditions: none
Squaring is monotone on nonnegative integers;maintain low²<=n<high².The midpoint is BigInt floor((low+high)/2),not floating sqrt,and strictly shrinks the integer bracket.Derived values do not inherit SAFE bounds.
Step identifiers and dependencies
Rule: Legacy_isqrt_EACH_BigInt_integer_midpoint_bracket · Uses: G001, S011
S013 · calculation
Before
Legacy quadratic DERIVED discriminant exact midpoint square3 := mul(39, 39)
After
Legacy quadratic DERIVED discriminant exact midpoint square3 = 1521
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S012
S014 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 625, 3, [0, 78], 39]
After
derived = [1521, No, 0, 39]
Conditions: none
Squaring is monotone on nonnegative integers;maintain low²<=n<high².The midpoint is BigInt floor((low+high)/2),not floating sqrt,and strictly shrinks the integer bracket.Derived values do not inherit SAFE bounds.
Step identifiers and dependencies
Rule: Legacy_isqrt_EACH_BigInt_integer_midpoint_bracket · Uses: G001, S013
S015 · calculation
Before
Legacy quadratic DERIVED discriminant exact midpoint square4 := mul(19, 19)
After
Legacy quadratic DERIVED discriminant exact midpoint square4 = 361
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S014
S016 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 625, 4, [0, 39], 19]
After
derived = [361, Yes, 19, 39]
Conditions: none
Squaring is monotone on nonnegative integers;maintain low²<=n<high².The midpoint is BigInt floor((low+high)/2),not floating sqrt,and strictly shrinks the integer bracket.Derived values do not inherit SAFE bounds.
Step identifiers and dependencies
Rule: Legacy_isqrt_EACH_BigInt_integer_midpoint_bracket · Uses: G001, S015
S017 · calculation
Before
Legacy quadratic DERIVED discriminant exact midpoint square5 := mul(29, 29)
After
Legacy quadratic DERIVED discriminant exact midpoint square5 = 841
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S016
S018 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 625, 5, [19, 39], 29]
After
derived = [841, No, 19, 29]
Conditions: none
Squaring is monotone on nonnegative integers;maintain low²<=n<high².The midpoint is BigInt floor((low+high)/2),not floating sqrt,and strictly shrinks the integer bracket.Derived values do not inherit SAFE bounds.
Step identifiers and dependencies
Rule: Legacy_isqrt_EACH_BigInt_integer_midpoint_bracket · Uses: G001, S017
S019 · calculation
Before
Legacy quadratic DERIVED discriminant exact midpoint square6 := mul(24, 24)
After
Legacy quadratic DERIVED discriminant exact midpoint square6 = 576
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S018
S020 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 625, 6, [19, 29], 24]
After
derived = [576, Yes, 24, 29]
Conditions: none
Squaring is monotone on nonnegative integers;maintain low²<=n<high².The midpoint is BigInt floor((low+high)/2),not floating sqrt,and strictly shrinks the integer bracket.Derived values do not inherit SAFE bounds.
Step identifiers and dependencies
Rule: Legacy_isqrt_EACH_BigInt_integer_midpoint_bracket · Uses: G001, S019
S021 · calculation
Before
Legacy quadratic DERIVED discriminant exact midpoint square7 := mul(26, 26)
After
Legacy quadratic DERIVED discriminant exact midpoint square7 = 676
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S020
S022 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 625, 7, [24, 29], 26]
After
derived = [676, No, 24, 26]
Conditions: none
Squaring is monotone on nonnegative integers;maintain low²<=n<high².The midpoint is BigInt floor((low+high)/2),not floating sqrt,and strictly shrinks the integer bracket.Derived values do not inherit SAFE bounds.
Step identifiers and dependencies
Rule: Legacy_isqrt_EACH_BigInt_integer_midpoint_bracket · Uses: G001, S021
S023 · calculation
Before
Legacy quadratic DERIVED discriminant exact midpoint square8 := mul(25, 25)
After
Legacy quadratic DERIVED discriminant exact midpoint square8 = 625
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S022
S024 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 625, 8, [24, 26], 25]
After
derived = [625, Yes, 25, 26]
Conditions: none
Squaring is monotone on nonnegative integers;maintain low²<=n<high².The midpoint is BigInt floor((low+high)/2),not floating sqrt,and strictly shrinks the integer bracket.Derived values do not inherit SAFE bounds.
Step identifiers and dependencies
Rule: Legacy_isqrt_EACH_BigInt_integer_midpoint_bracket · Uses: G001, S023
S025 · calculation
Before
Legacy quadratic DERIVED discriminant terminal root square := mul(25, 25)
After
Legacy quadratic DERIVED discriminant terminal root square = 625
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S024
S026 · calculation
Before
Legacy quadratic DERIVED discriminant terminal successor square := mul(26, 26)
After
Legacy quadratic DERIVED discriminant terminal successor square = 676
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S025
S027 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 625, 25, 26]
After
derived = [625, 676]
Conditions: none
Adjacent integer bounds certify floor sqrt=low;an exact root separately needs low²=n,and the principal root is the single nonnegative branch.
Step identifiers and dependencies
Rule: Legacy_isqrt_terminal_floor_and_single_nonnegative_branch · Uses: G001, S026
S028 · calculation
Before
Legacy quadratic ORIGINAL negated b := sub(0, -17)
After
Legacy quadratic ORIGINAL negated b = 17
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S027
S029 · calculation
Before
Legacy quadratic ORIGINAL minus numerator := sub(17, 25)
After
Legacy quadratic ORIGINAL minus numerator = -8
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S028
S030 · calculation
Before
Legacy quadratic ORIGINAL plus numerator := sum(17, 25)
After
Legacy quadratic ORIGINAL plus numerator = 42
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S029
S031 · calculation
Before
Legacy quadratic ORIGINAL denominator2a := mul(2, -6)
After
Legacy quadratic ORIGINAL denominator2a = -12
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S030
S032 · calculation
Before
Legacy quadratic ORIGINAL raw rational branch0 := div(-8, -12)
After
Legacy quadratic ORIGINAL raw rational branch0 = 2/3
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S031
S033 · implies
Before
source roles = [0, -8, -12]
After
derived = [2, 3, 2/3]
Conditions: none
Normalize positive denominator and gcd for EACH original branch.Original2a may be negative;derived numerator/denominator do not inherit SAFE.Integer roots retain p/1.
Step identifiers and dependencies
Rule: Legacy_quadratic_EACH_raw_branch_positive_den_gcd_normalization · Uses: G001, S032
S034 · calculation
Before
Legacy quadratic ORIGINAL raw rational branch1 := div(42, -12)
After
Legacy quadratic ORIGINAL raw rational branch1 = -7/2
Conditions: none
Substitute original roles exactly,without floating approximation or changed operands;extra teaching identities add no source-domain restrictions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S033
S035 · implies
Before
source roles = [1, 42, -12]
After
derived = [-7, 2, -7/2]
Conditions: none
Normalize positive denominator and gcd for EACH original branch.Original2a may be negative;derived numerator/denominator do not inherit SAFE.Integer roots retain p/1.
Step identifiers and dependencies
Rule: Legacy_quadratic_EACH_raw_branch_positive_den_gcd_normalization · Uses: G001, S034
S036 · implies
Before
source roles = [-6, 625, [2/3, -7/2]]
After
derived = [[-7/2, 2/3], {-7/2, 2/3}]Conditions: none
Sort by exact rational value/cross products,not lexically or by assuming the minus branch is smaller(negative a reverses it).At D0 list the repeated value once;the complete-square IFF also proves no roots omitted.
Step identifiers and dependencies
Rule: Legacy_quadratic_EXACT_numeric_sort_and_D0_set_dedup · Uses: G001, S035