Step-by-step derivation
S001 · implies
Before
source roles = [qf-quadratic-root-verification, [a, b, c, domain, operation, p, q]]
After
derived = [root_verification, reals]
Conditions: none
Separate source banks:legacy RAW SAFE with unbounded derived BigInts versus BASE Number.isInteger without invented SAFE/million caps.Operations,domains and permissive/exact keys follow THIS bank.Keep ORIGINAL JSON intact.
Step identifiers and dependencies
Rule: R68_BANK_specific_keys_operations_and_numeric_guards · Uses: G001
S002 · implies
Before
source roles = [4, -20, 0, 5, 1]
After
derived = [5/1, Yes]
Conditions: none
FIRST qualify a≠0 and an ALREADY reduced candidate with POSITIVE denominator.Zero can only be0/1.This task checks THIS candidate;No is legal and does not require a nonnegative or square discriminant.
Step identifiers and dependencies
Rule: Quadratic_ROOT_candidate_ALREADY_reduced_positive_DEN · Uses: G001, S001
S003 · calculation
Before
Root verification SOURCE unused discriminant b squared := mul(-20, -20)
After
Root verification SOURCE unused discriminant b squared = 400
Conditions: none
Calculate exactly from ORIGINAL ordered operands;mul/sub/div have EXPLICITLY TWO operands.Legacy derived BigInts are not recapped at RAW SAFE;check BASE Number type/representation conditions separately.Do not use floating approximations to force an answer.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S002
S004 · calculation
Before
Root verification SOURCE discriminant ORIGINAL a times c := mul(4, 0)
After
Root verification SOURCE discriminant ORIGINAL a times c = 0
Conditions: none
Calculate exactly from ORIGINAL ordered operands;mul/sub/div have EXPLICITLY TWO operands.Legacy derived BigInts are not recapped at RAW SAFE;check BASE Number type/representation conditions separately.Do not use floating approximations to force an answer.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S003
S005 · calculation
Before
Root verification SOURCE unused discriminant four a c := mul(4, 0)
After
Root verification SOURCE unused discriminant four a c = 0
Conditions: none
Calculate exactly from ORIGINAL ordered operands;mul/sub/div have EXPLICITLY TWO operands.Legacy derived BigInts are not recapped at RAW SAFE;check BASE Number type/representation conditions separately.Do not use floating approximations to force an answer.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S004
S006 · calculation
Before
Root verification SOURCE unused signed discriminant := sub(400, 0)
After
Root verification SOURCE unused signed discriminant = 400
Conditions: none
Calculate exactly from ORIGINAL ordered operands;mul/sub/div have EXPLICITLY TWO operands.Legacy derived BigInts are not recapped at RAW SAFE;check BASE Number type/representation conditions separately.Do not use floating approximations to force an answer.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S005
S007 · calculation
Before
Root verification ORIGINAL candidate numerator squared := mul(5, 5)
After
Root verification ORIGINAL candidate numerator squared = 25
Conditions: none
Calculate exactly from ORIGINAL ordered operands;mul/sub/div have EXPLICITLY TWO operands.Legacy derived BigInts are not recapped at RAW SAFE;check BASE Number type/representation conditions separately.Do not use floating approximations to force an answer.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S006
S008 · calculation
Before
Root verification ORIGINAL candidate denominator squared := mul(1, 1)
After
Root verification ORIGINAL candidate denominator squared = 1
Conditions: none
Calculate exactly from ORIGINAL ordered operands;mul/sub/div have EXPLICITLY TWO operands.Legacy derived BigInts are not recapped at RAW SAFE;check BASE Number type/representation conditions separately.Do not use floating approximations to force an answer.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S007
S009 · calculation
Before
Root verification ORIGINAL a times numerator squared := mul(4, 25)
After
Root verification ORIGINAL a times numerator squared = 100
Conditions: none
Calculate exactly from ORIGINAL ordered operands;mul/sub/div have EXPLICITLY TWO operands.Legacy derived BigInts are not recapped at RAW SAFE;check BASE Number type/representation conditions separately.Do not use floating approximations to force an answer.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S008
S010 · calculation
Before
Root verification ORIGINAL b times candidate numerator := mul(-20, 5)
After
Root verification ORIGINAL b times candidate numerator = -100
Conditions: none
Calculate exactly from ORIGINAL ordered operands;mul/sub/div have EXPLICITLY TWO operands.Legacy derived BigInts are not recapped at RAW SAFE;check BASE Number type/representation conditions separately.Do not use floating approximations to force an answer.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S009
S011 · calculation
Before
Root verification ORIGINAL b numerator denominator := mul(-100, 1)
After
Root verification ORIGINAL b numerator denominator = -100
Conditions: none
Calculate exactly from ORIGINAL ordered operands;mul/sub/div have EXPLICITLY TWO operands.Legacy derived BigInts are not recapped at RAW SAFE;check BASE Number type/representation conditions separately.Do not use floating approximations to force an answer.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S010
S012 · calculation
Before
Root verification ORIGINAL c times denominator squared := mul(0, 1)
After
Root verification ORIGINAL c times denominator squared = 0
Conditions: none
Calculate exactly from ORIGINAL ordered operands;mul/sub/div have EXPLICITLY TWO operands.Legacy derived BigInts are not recapped at RAW SAFE;check BASE Number type/representation conditions separately.Do not use floating approximations to force an answer.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S011
S013 · calculation
Before
Root verification ORIGINAL all denominator-cleared terms := sum(100, -100, 0)
After
Root verification ORIGINAL all denominator-cleared terms = 0
Conditions: none
Calculate exactly from ORIGINAL ordered operands;mul/sub/div have EXPLICITLY TWO operands.Legacy derived BigInts are not recapped at RAW SAFE;check BASE Number type/representation conditions separately.Do not use floating approximations to force an answer.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S012
S014 · implies
Before
source roles = [4, -20, 0, 5, 1, 400]
After
derived = [0, Yes]
Conditions: none
Substitute x=p/q into the ORIGINAL equation and multiply by NONZERO q².This is equivalent to a*p²+b*p*q+c*q²=0.Retain ALL three terms,including zeros.The SOURCE computes D but this family does not gate its sign/squareness or infer the complete root set.
Step identifiers and dependencies
Rule: Quadratic_ROOT_clear_NONzero_denominator_ALL_three_terms · Uses: G001, S013