Step-by-step derivation
S001 · implies
Before
source roles = [qf-fraction-exact-addition, addition, no-required-domain, []]
After
derived = [[reduced_fraction_RETAIN1_STRING]]
Conditions: none
BASE sources do not acquire a generic legacy operation/domain or unknown-metadata ban.Retain metadata WITHOUT using it as an answer oracle.PULSE/legacy enforce their exact source keys,operation/domain.Do not impose universal tuples,/1 or input bounds.
Step identifiers and dependencies
Rule: R63_SOURCE_bank_keys_operation_domain_output_roles_metadata_not_oracle · Uses: G001
S002 · implies
Before
source roles = [-8, 5, [0, 5]]
After
derived = [Yes]
Conditions: none
Validate EVERY raw SAFE integer component,including the numerator at q0/0/0 eligibility.A validity task may legally return No;actual arithmetic requires ALL used denominators nonzero.
Step identifiers and dependencies
Rule: Fraction_ALL_RAW_SAFE_integer_components_even_zero_den_validity · Uses: G001, S001
S003 · calculation
Before
Fraction ORIGINAL p times s := mul(-8, 5)
After
Fraction ORIGINAL p times s = -40
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S002
S004 · calculation
Before
Fraction ORIGINAL r times q := mul(0, 5)
After
Fraction ORIGINAL r times q = 0
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S003
S005 · calculation
Before
Fraction addition ORIGINAL cross numerator sum := sum(-40, 0)
After
Fraction addition ORIGINAL cross numerator sum = -40
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S004
S006 · calculation
Before
Fraction addition ORIGINAL denominator product := mul(5, 5)
After
Fraction addition ORIGINAL denominator product = 25
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S005
S007 · implies
Before
source roles = [-8, 5, 0, 5]
After
derived = [-40, 25]
Conditions: none
Use the common denominator qs with numerator ps+rq,retaining BOTH cross terms.This is not componentwise addition.Derived large integers are not SAFE-capped.
Step identifiers and dependencies
Rule: Fraction_ADDITION_common_den_ALL_cross_terms_not_naive_components · Uses: G001, S006
S008 · implies
Before
source roles = [Fraction addition normalization, -40, 25]
After
derived = [-40, 25]
Conditions: none
A denominator must FIRST be nonzero.If negative,negate numerator AND denominator together.Derived numerator/denominator are not RAW-SAFE recapped;changing only the denominator would change the value.
Step identifiers and dependencies
Rule: Fraction_DEN_nonzero_sign_normalized_BEFORE_gcd · Uses: G001, S007
S009 · calculation
Before
Fraction addition normalization gcd step0 ORIGINAL quotient times divisor := mul(1, 25)
After
Fraction addition normalization gcd step0 ORIGINAL quotient times divisor = 25
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S008
S010 · calculation
Before
Fraction addition normalization gcd step0 ORIGINAL dividend minus product := sub(40, 25)
After
Fraction addition normalization gcd step0 ORIGINAL dividend minus product = 15
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S009
S011 · implies
Before
source roles = [Fraction addition normalization, 0, 40, 25, 1]
After
derived = [25, 15]
Conditions: none
Use x=qy+r,0≤r<y,to replace gcd(x,y)by gcd(y,r),preserving common divisors BOTH ways.Divide ONLY by nonzero y;remainders strictly decrease to0.
Step identifiers and dependencies
Rule: Fraction_EUCLID_all_remainders_and_common_divisor_invariant · Uses: G001, S010
S012 · calculation
Before
Fraction addition normalization gcd step1 ORIGINAL quotient times divisor := mul(1, 15)
After
Fraction addition normalization gcd step1 ORIGINAL quotient times divisor = 15
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S011
S013 · calculation
Before
Fraction addition normalization gcd step1 ORIGINAL dividend minus product := sub(25, 15)
After
Fraction addition normalization gcd step1 ORIGINAL dividend minus product = 10
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S012
S014 · implies
Before
source roles = [Fraction addition normalization, 1, 25, 15, 1]
After
derived = [15, 10]
Conditions: none
Use x=qy+r,0≤r<y,to replace gcd(x,y)by gcd(y,r),preserving common divisors BOTH ways.Divide ONLY by nonzero y;remainders strictly decrease to0.
Step identifiers and dependencies
Rule: Fraction_EUCLID_all_remainders_and_common_divisor_invariant · Uses: G001, S013
S015 · calculation
Before
Fraction addition normalization gcd step2 ORIGINAL quotient times divisor := mul(1, 10)
After
Fraction addition normalization gcd step2 ORIGINAL quotient times divisor = 10
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S014
S016 · calculation
Before
Fraction addition normalization gcd step2 ORIGINAL dividend minus product := sub(15, 10)
After
Fraction addition normalization gcd step2 ORIGINAL dividend minus product = 5
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S015
S017 · implies
Before
source roles = [Fraction addition normalization, 2, 15, 10, 1]
After
derived = [10, 5]
Conditions: none
Use x=qy+r,0≤r<y,to replace gcd(x,y)by gcd(y,r),preserving common divisors BOTH ways.Divide ONLY by nonzero y;remainders strictly decrease to0.
Step identifiers and dependencies
Rule: Fraction_EUCLID_all_remainders_and_common_divisor_invariant · Uses: G001, S016
S018 · calculation
Before
Fraction addition normalization gcd step3 ORIGINAL quotient times divisor := mul(2, 5)
After
Fraction addition normalization gcd step3 ORIGINAL quotient times divisor = 10
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S017
S019 · calculation
Before
Fraction addition normalization gcd step3 ORIGINAL dividend minus product := sub(10, 10)
After
Fraction addition normalization gcd step3 ORIGINAL dividend minus product = 0
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S018
S020 · implies
Before
source roles = [Fraction addition normalization, 3, 10, 5, 2]
After
derived = [10, 0]
Conditions: none
Use x=qy+r,0≤r<y,to replace gcd(x,y)by gcd(y,r),preserving common divisors BOTH ways.Divide ONLY by nonzero y;remainders strictly decrease to0.
Step identifiers and dependencies
Rule: Fraction_EUCLID_all_remainders_and_common_divisor_invariant · Uses: G001, S019
S021 · calculation
Before
Fraction addition normalization ORIGINAL numerator over positive gcd := div(-40, 5)
After
Fraction addition normalization ORIGINAL numerator over positive gcd = -8
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S020
S022 · calculation
Before
Fraction addition normalization ORIGINAL denominator over positive gcd := div(25, 5)
After
Fraction addition normalization ORIGINAL denominator over positive gcd = 5
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S021
S023 · calculation
Before
Fraction addition normalization reverse reduced numerator times gcd := mul(-8, 5)
After
Fraction addition normalization reverse reduced numerator times gcd = -40
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S022
S024 · calculation
Before
Fraction addition normalization reverse reduced denominator times gcd := mul(5, 5)
After
Fraction addition normalization reverse reduced denominator times gcd = 25
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S023
S025 · implies
Before
source roles = [Fraction addition normalization, -40, 25, 5]
After
derived = [-8, 5, -40, 25, -8/5]
Conditions: none
Divide BOTH components by the positive gcd,retaining value and a positive lowest-terms denominator.Multiply back to recover both components.Zero is0/1;integers RETAIN/1,not decimals.
Step identifiers and dependencies
Rule: Fraction_REDUCED_positive_den_ZERO0over1_RETAIN_integer1 · Uses: G001, S024
S026 · calculation
Before
Fraction addition reverse ORIGINAL fraction sum := sum(-8/5, 0)
After
Fraction addition reverse ORIGINAL fraction sum = -8/5
Conditions: none
Use ORIGINAL operands and order for exact integer/rational arithmetic.Raw bounds are bank-specific;derived values do not inherit SAFE or foreign small caps.No floating approximation.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S025
S027 · implies
Before
source roles = [-8/5, 0/1]
After
derived = [-8/5, -8/5]
Conditions: none
Reverse-check by summing the TWO ORIGINAL fractions with their own denominators.Compare the reduced result exactly without rewriting original parameters.
Step identifiers and dependencies
Rule: Fraction_ADDITION_reverse_original_two_values · Uses: G001, S026