Step-by-step derivation
S001 · implies
Before
source roles = [qf-real-terminating-decimal-fraction, [decimal, operation, scale]]
After
derived = [decimal_to_fraction, no-invented-domain]
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 · calculation
Before
Decimal ORIGINAL power10 place1 := mul(1, 10)
After
Decimal ORIGINAL power10 place1 = 10
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, S001
S003 · calculation
Before
Decimal ORIGINAL power10 place2 := mul(10, 10)
After
Decimal ORIGINAL power10 place2 = 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, S002
S004 · calculation
Before
Decimal ORIGINAL whole part times power10 := mul(2, 100)
After
Decimal ORIGINAL whole part times power10 = 200
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
Decimal ORIGINAL add ALL fractional digits := sum(200, 75)
After
Decimal ORIGINAL add ALL fractional digits = 275
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
Decimal ORIGINAL apply explicit sign := mul(1, 275)
After
Decimal ORIGINAL apply explicit sign = 275
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 · implies
Before
source roles = [2.75, 2, 2, 75]
After
derived = [275, 100]
Conditions: none
Preserve the ORIGINAL string and place count.Compute whole*10^scale plus ALL fractional digits,then apply the sign,WITHOUT floating parsing.The leading fractional zeros in0.001 still count toward scale.
Step identifiers and dependencies
Rule: Real_DECIMAL_lexical_places_EXACT_integer_over_power10 · Uses: G001, S006
S008 · calculation
Before
Decimal exact derived fraction ORIGINAL exact numerator over nonzero denominator := div(275, 100)
After
Decimal exact derived fraction ORIGINAL exact numerator over nonzero denominator = 11/4
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 · implies
Before
source roles = [Decimal exact derived fraction, [275, 100]]
After
derived = [[11, 4], 11/4]
Conditions: none
BASE normalizeFraction requires INTEGER components and nonzero denominator,without invented SAFE/million/100million caps.Normalize denominator sign and gcd;zero is0/1.This derived representation does not alter the ORIGINAL raw pair.
Step identifiers and dependencies
Rule: Real_BASE_fraction_sign_gcd_normalization_NO_invented_SAFEcap · Uses: G001, S008