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(41, 41)
After
Legacy principal ORIGINAL radicand exact midpoint square0 = 1681
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, 81, 0, [0, 82], 41]
After
derived = [1681, No, 0, 41]
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(20, 20)
After
Legacy principal ORIGINAL radicand exact midpoint square1 = 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, S003
S005 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 81, 1, [0, 41], 20]
After
derived = [400, No, 0, 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, S004
S006 · calculation
Before
Legacy principal ORIGINAL radicand exact midpoint square2 := mul(10, 10)
After
Legacy principal ORIGINAL radicand exact midpoint square2 = 100
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, 81, 2, [0, 20], 10]
After
derived = [100, No, 0, 10]
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(5, 5)
After
Legacy principal ORIGINAL radicand exact midpoint square3 = 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, S007
S009 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 81, 3, [0, 10], 5]
After
derived = [25, Yes, 5, 10]
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(7, 7)
After
Legacy principal ORIGINAL radicand exact midpoint square4 = 49
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, 81, 4, [5, 10], 7]
After
derived = [49, Yes, 7, 10]
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(8, 8)
After
Legacy principal ORIGINAL radicand exact midpoint square5 = 64
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, 81, 5, [7, 10], 8]
After
derived = [64, Yes, 8, 10]
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(9, 9)
After
Legacy principal ORIGINAL radicand exact midpoint square6 = 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, S013
S015 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 81, 6, [8, 10], 9]
After
derived = [81, Yes, 9, 10]
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 terminal root square := mul(9, 9)
After
Legacy principal ORIGINAL radicand terminal root square = 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, S015
S017 · calculation
Before
Legacy principal ORIGINAL radicand terminal successor square := mul(10, 10)
After
Legacy principal ORIGINAL radicand terminal successor square = 100
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 principal ORIGINAL radicand, 81, 9, 10]
After
derived = [81, 100]
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, S017
S019 · implies
Before
source roles = [81]
After
derived = [9, 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, S018