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 = [-6, -9, -3, 0, 1]
After
derived = [0/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(-9, -9)
After
Root verification SOURCE unused discriminant b squared = 81
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(-6, -3)
After
Root verification SOURCE discriminant ORIGINAL a times c = 18
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, 18)
After
Root verification SOURCE unused discriminant four a c = 72
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(81, 72)
After
Root verification SOURCE unused signed discriminant = 9
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(0, 0)
After
Root verification ORIGINAL candidate numerator 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, 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(-6, 0)
After
Root verification ORIGINAL a times numerator 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, S008
S010 · calculation
Before
Root verification ORIGINAL b times candidate numerator := mul(-9, 0)
After
Root verification ORIGINAL b times candidate numerator = 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, S009
S011 · calculation
Before
Root verification ORIGINAL b numerator denominator := mul(0, 1)
After
Root verification ORIGINAL b numerator denominator = 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, S010
S012 · calculation
Before
Root verification ORIGINAL c times denominator squared := mul(-3, 1)
After
Root verification ORIGINAL c times denominator squared = -3
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(0, 0, -3)
After
Root verification ORIGINAL all denominator-cleared terms = -3
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 = [-6, -9, -3, 0, 1, 9]
After
derived = [-3, No]
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