Step-by-step derivation
S001 · implies
Before
source roles = [qf-principal-square-root-exact, principal_sqrt]
After
derived = [[single_nonnegative_exact_integer_root]]
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 principal ORIGINAL radicand exact midpoint square0 := mul(181, 181)
After
Legacy principal ORIGINAL radicand exact midpoint square0 = 32761
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 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 361, 0, [0, 362], 181]
After
derived = [32761, No, 0, 181]
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, S002
S004 · calculation
Before
Legacy principal ORIGINAL radicand exact midpoint square1 := mul(90, 90)
After
Legacy principal ORIGINAL radicand exact midpoint square1 = 8100
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 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 361, 1, [0, 181], 90]
After
derived = [8100, No, 0, 90]
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, S004
S006 · calculation
Before
Legacy principal ORIGINAL radicand exact midpoint square2 := mul(45, 45)
After
Legacy principal ORIGINAL radicand exact midpoint square2 = 2025
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, S005
S007 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 361, 2, [0, 90], 45]
After
derived = [2025, No, 0, 45]
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, S006
S008 · calculation
Before
Legacy principal ORIGINAL radicand exact midpoint square3 := mul(22, 22)
After
Legacy principal ORIGINAL radicand exact midpoint square3 = 484
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, S007
S009 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 361, 3, [0, 45], 22]
After
derived = [484, No, 0, 22]
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, S008
S010 · calculation
Before
Legacy principal ORIGINAL radicand exact midpoint square4 := mul(11, 11)
After
Legacy principal ORIGINAL radicand exact midpoint square4 = 121
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, S009
S011 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 361, 4, [0, 22], 11]
After
derived = [121, Yes, 11, 22]
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, S010
S012 · calculation
Before
Legacy principal ORIGINAL radicand exact midpoint square5 := mul(16, 16)
After
Legacy principal ORIGINAL radicand exact midpoint square5 = 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, S011
S013 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 361, 5, [11, 22], 16]
After
derived = [256, Yes, 16, 22]
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, S012
S014 · calculation
Before
Legacy principal ORIGINAL radicand exact midpoint square6 := mul(19, 19)
After
Legacy principal ORIGINAL radicand exact midpoint square6 = 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, S013
S015 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 361, 6, [16, 22], 19]
After
derived = [361, Yes, 19, 22]
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, S014
S016 · calculation
Before
Legacy principal ORIGINAL radicand exact midpoint square7 := mul(20, 20)
After
Legacy principal ORIGINAL radicand exact midpoint square7 = 400
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 principal ORIGINAL radicand, 361, 7, [19, 22], 20]
After
derived = [400, No, 19, 20]
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, S016
S018 · calculation
Before
Legacy principal ORIGINAL radicand terminal root square := mul(19, 19)
After
Legacy principal ORIGINAL radicand terminal root square = 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, S017
S019 · calculation
Before
Legacy principal ORIGINAL radicand terminal successor square := mul(20, 20)
After
Legacy principal ORIGINAL radicand terminal successor square = 400
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 principal ORIGINAL radicand, 361, 19, 20]
After
derived = [361, 400]
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, S019
S021 · implies
Before
source roles = [361]
After
derived = [19, Yes]
Conditions: none
Check root²=r and root>=0.Monotonicity of nonnegative squaring gives uniqueness;two signed equation roots are not the principal-root value.
Step identifiers and dependencies
Rule: Legacy_PERFECT_square_exact_NONNEGATIVE_principal_root · Uses: G001, S020