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(9, 9)
After
Legacy quadratic ORIGINAL b squared = 81
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, -3)
After
Legacy quadratic ORIGINAL a times c = 18
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, 18)
After
Legacy quadratic ORIGINAL four times ac = 72
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(81, 72)
After
Legacy quadratic ORIGINAL b squared minus fourac = 9
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, 9, -3, 9]
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(5, 5)
After
Legacy quadratic DERIVED discriminant exact midpoint square0 = 25
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, 9, 0, [0, 10], 5]
After
derived = [25, No, 0, 5]
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(2, 2)
After
Legacy quadratic DERIVED discriminant exact midpoint square1 = 4
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, 9, 1, [0, 5], 2]
After
derived = [4, Yes, 2, 5]
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(3, 3)
After
Legacy quadratic DERIVED discriminant exact midpoint square2 = 9
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, 9, 2, [2, 5], 3]
After
derived = [9, Yes, 3, 5]
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(4, 4)
After
Legacy quadratic DERIVED discriminant exact midpoint square3 = 16
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, 9, 3, [3, 5], 4]
After
derived = [16, No, 3, 4]
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 terminal root square := mul(3, 3)
After
Legacy quadratic DERIVED discriminant terminal root square = 9
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 · calculation
Before
Legacy quadratic DERIVED discriminant terminal successor square := mul(4, 4)
After
Legacy quadratic DERIVED discriminant terminal successor square = 16
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, S015
S017 · implies
Before
source roles = [Legacy quadratic DERIVED discriminant, 9, 3, 4]
After
derived = [9, 16]
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, S016
S018 · calculation
Before
Legacy quadratic ORIGINAL negated b := sub(0, 9)
After
Legacy quadratic ORIGINAL negated b = -9
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, S017
S019 · calculation
Before
Legacy quadratic ORIGINAL minus numerator := sub(-9, 3)
After
Legacy quadratic ORIGINAL minus numerator = -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, S018
S020 · calculation
Before
Legacy quadratic ORIGINAL plus numerator := sum(-9, 3)
After
Legacy quadratic ORIGINAL plus numerator = -6
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, S019
S021 · 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, S020
S022 · calculation
Before
Legacy quadratic ORIGINAL raw rational branch0 := div(-12, -12)
After
Legacy quadratic ORIGINAL raw rational branch0 = 1
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, S021
S023 · implies
Before
source roles = [0, -12, -12]
After
derived = [1, 1, 1/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, S022
S024 · calculation
Before
Legacy quadratic ORIGINAL raw rational branch1 := div(-6, -12)
After
Legacy quadratic ORIGINAL raw rational branch1 = 1/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, S023
S025 · implies
Before
source roles = [1, -6, -12]
After
derived = [1, 2, 1/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, S024
S026 · implies
Before
source roles = [-6, 9, [1/1, 1/2]]
After
derived = [[1/2, 1/1], {1/2, 1/1}]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, S025