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 power10 place3 := mul(100, 10)
After
Decimal ORIGINAL power10 place3 = 1000
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 whole part times power10 := mul(0, 1000)
After
Decimal ORIGINAL whole part times power10 = 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
Decimal ORIGINAL add ALL fractional digits := sum(0, 125)
After
Decimal ORIGINAL add ALL fractional digits = 125
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
Decimal ORIGINAL apply explicit sign := mul(1, 125)
After
Decimal ORIGINAL apply explicit sign = 125
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 · implies
Before
source roles = [0.125, 3, 0, 125]
After
derived = [125, 1000]
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, S007
S009 · calculation
Before
Decimal exact derived fraction ORIGINAL exact numerator over nonzero denominator := div(125, 1000)
After
Decimal exact derived fraction ORIGINAL exact numerator over nonzero denominator = 1/8
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 · implies
Before
source roles = [Decimal exact derived fraction, [125, 1000]]
After
derived = [[1, 8], 1/8]
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, S009