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(15, 15)
After
Legacy quadratic ORIGINAL b squared = 225
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, 0)
After
Legacy quadratic ORIGINAL a times c = 0
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, 0)
After
Legacy quadratic ORIGINAL four times ac = 0
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(225, 0)
After
Legacy quadratic ORIGINAL b squared minus fourac = 225
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, 15, 0, 225]
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(113, 113)
After
Legacy quadratic DERIVED discriminant exact midpoint square0 = 12769
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, 225, 0, [0, 226], 113]
After
derived = [12769, No, 0, 113]
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(56, 56)
After
Legacy quadratic DERIVED discriminant exact midpoint square1 = 3136
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, 225, 1, [0, 113], 56]
After
derived = [3136, No, 0, 56]
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(28, 28)
After
Legacy quadratic DERIVED discriminant exact midpoint square2 = 784
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, 225, 2, [0, 56], 28]
After
derived = [784, No, 0, 28]
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(14, 14)
After
Legacy quadratic DERIVED discriminant exact midpoint square3 = 196
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, 225, 3, [0, 28], 14]
After
derived = [196, Yes, 14, 28]
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(21, 21)
After
Legacy quadratic DERIVED discriminant exact midpoint square4 = 441
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, 225, 4, [14, 28], 21]
After
derived = [441, No, 14, 21]
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(17, 17)
After
Legacy quadratic DERIVED discriminant exact midpoint square5 = 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, S016
S018 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 225, 5, [14, 21], 17]
After
derived = [289, No, 14, 17]
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(15, 15)
After
Legacy quadratic DERIVED discriminant exact midpoint square6 = 225
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, 225, 6, [14, 17], 15]
After
derived = [225, Yes, 15, 17]
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(16, 16)
After
Legacy quadratic DERIVED discriminant exact midpoint square7 = 256
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, 225, 7, [15, 17], 16]
After
derived = [256, No, 15, 16]
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 terminal root square := mul(15, 15)
After
Legacy quadratic DERIVED discriminant terminal root square = 225
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 · calculation
Before
Legacy quadratic DERIVED discriminant terminal successor square := mul(16, 16)
After
Legacy quadratic DERIVED discriminant terminal successor square = 256
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, S023
S025 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 225, 15, 16]
After
derived = [225, 256]
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, S024
S026 · calculation
Before
Legacy quadratic ORIGINAL negated b := sub(0, 15)
After
Legacy quadratic ORIGINAL negated b = -15
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 · calculation
Before
Legacy quadratic ORIGINAL minus numerator := sub(-15, 15)
After
Legacy quadratic ORIGINAL minus numerator = -30
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, S026
S028 · calculation
Before
Legacy quadratic ORIGINAL plus numerator := sum(-15, 15)
After
Legacy quadratic ORIGINAL plus numerator = 0
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 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, S028
S030 · calculation
Before
Legacy quadratic ORIGINAL raw rational branch0 := div(-30, -12)
After
Legacy quadratic ORIGINAL raw rational branch0 = 5/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, S029
S031 · implies
Before
source roles = [0, -30, -12]
After
derived = [5, 2, 5/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, S030
S032 · calculation
Before
Legacy quadratic ORIGINAL raw rational branch1 := div(0, -12)
After
Legacy quadratic ORIGINAL raw rational branch1 = 0
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 = [1, 0, -12]
After
derived = [0, 1, 0/1]
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 · implies
Before
source roles = [-6, 225, [5/2, 0/1]]
After
derived = [[0/1, 5/2], {0/1, 5/2}]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, S033