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(72, 72)
After
Legacy principal ORIGINAL radicand exact midpoint square0 = 5184
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, 144, 0, [0, 145], 72]
After
derived = [5184, No, 0, 72]
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(36, 36)
After
Legacy principal ORIGINAL radicand exact midpoint square1 = 1296
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, 144, 1, [0, 72], 36]
After
derived = [1296, No, 0, 36]
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(18, 18)
After
Legacy principal ORIGINAL radicand exact midpoint square2 = 324
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, 144, 2, [0, 36], 18]
After
derived = [324, No, 0, 18]
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(9, 9)
After
Legacy principal ORIGINAL radicand exact midpoint square3 = 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, S007
S009 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 144, 3, [0, 18], 9]
After
derived = [81, Yes, 9, 18]
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(13, 13)
After
Legacy principal ORIGINAL radicand exact midpoint square4 = 169
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, 144, 4, [9, 18], 13]
After
derived = [169, No, 9, 13]
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(11, 11)
After
Legacy principal ORIGINAL radicand exact midpoint square5 = 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, S011
S013 · implies
Before
source roles = [Legacy principal ORIGINAL radicand, 144, 5, [9, 13], 11]
After
derived = [121, Yes, 11, 13]
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(12, 12)
After
Legacy principal ORIGINAL radicand exact midpoint square6 = 144
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, 144, 6, [11, 13], 12]
After
derived = [144, Yes, 12, 13]
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(12, 12)
After
Legacy principal ORIGINAL radicand terminal root square = 144
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(13, 13)
After
Legacy principal ORIGINAL radicand terminal successor square = 169
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, 144, 12, 13]
After
derived = [144, 169]
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 = [144]
After
derived = [12, 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