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 = [1, -7, [-2, 4]]
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(1, 4)
After
Fraction ORIGINAL p times s = 4
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(-2, -7)
After
Fraction ORIGINAL r times q = 14
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(4, 14)
After
Fraction addition ORIGINAL cross numerator sum = 18
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(-7, 4)
After
Fraction addition ORIGINAL denominator product = -28
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 = [1, -7, -2, 4]
After
derived = [18, -28]
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 · calculation
Before
Fraction addition normalization ORIGINAL negate numerator for denominator sign := sub(0, 18)
After
Fraction addition normalization ORIGINAL negate numerator for denominator sign = -18
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, S007
S009 · calculation
Before
Fraction addition normalization ORIGINAL negate denominator := sub(0, -28)
After
Fraction addition normalization ORIGINAL negate denominator = 28
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 · implies
Before
source roles = [Fraction addition normalization, 18, -28]
After
derived = [-18, 28]
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, S009
S011 · calculation
Before
Fraction addition normalization gcd step0 ORIGINAL quotient times divisor := mul(0, 28)
After
Fraction addition normalization gcd step0 ORIGINAL quotient times divisor = 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, S010
S012 · calculation
Before
Fraction addition normalization gcd step0 ORIGINAL dividend minus product := sub(18, 0)
After
Fraction addition normalization gcd step0 ORIGINAL dividend minus product = 18
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 · implies
Before
source roles = [Fraction addition normalization, 0, 18, 28, 0]
After
derived = [0, 18]
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, S012
S014 · calculation
Before
Fraction addition normalization gcd step1 ORIGINAL quotient times divisor := mul(1, 18)
After
Fraction addition normalization gcd step1 ORIGINAL quotient times divisor = 18
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, S013
S015 · calculation
Before
Fraction addition normalization gcd step1 ORIGINAL dividend minus product := sub(28, 18)
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, S014
S016 · implies
Before
source roles = [Fraction addition normalization, 1, 28, 18, 1]
After
derived = [18, 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, S015
S017 · 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, S016
S018 · calculation
Before
Fraction addition normalization gcd step2 ORIGINAL dividend minus product := sub(18, 10)
After
Fraction addition normalization gcd step2 ORIGINAL dividend minus product = 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, S017
S019 · implies
Before
source roles = [Fraction addition normalization, 2, 18, 10, 1]
After
derived = [10, 8]
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, S018
S020 · calculation
Before
Fraction addition normalization gcd step3 ORIGINAL quotient times divisor := mul(1, 8)
After
Fraction addition normalization gcd step3 ORIGINAL quotient times divisor = 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, S019
S021 · calculation
Before
Fraction addition normalization gcd step3 ORIGINAL dividend minus product := sub(10, 8)
After
Fraction addition normalization gcd step3 ORIGINAL dividend minus product = 2
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 · implies
Before
source roles = [Fraction addition normalization, 3, 10, 8, 1]
After
derived = [8, 2]
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, S021
S023 · calculation
Before
Fraction addition normalization gcd step4 ORIGINAL quotient times divisor := mul(4, 2)
After
Fraction addition normalization gcd step4 ORIGINAL quotient times divisor = 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, S022
S024 · calculation
Before
Fraction addition normalization gcd step4 ORIGINAL dividend minus product := sub(8, 8)
After
Fraction addition normalization gcd step4 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, S023
S025 · implies
Before
source roles = [Fraction addition normalization, 4, 8, 2, 4]
After
derived = [8, 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, S024
S026 · calculation
Before
Fraction addition normalization ORIGINAL numerator over positive gcd := div(-18, 2)
After
Fraction addition normalization ORIGINAL numerator over positive gcd = -9
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 · calculation
Before
Fraction addition normalization ORIGINAL denominator over positive gcd := div(28, 2)
After
Fraction addition normalization ORIGINAL denominator over positive gcd = 14
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, S026
S028 · calculation
Before
Fraction addition normalization reverse reduced numerator times gcd := mul(-9, 2)
After
Fraction addition normalization reverse reduced numerator times gcd = -18
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, S027
S029 · calculation
Before
Fraction addition normalization reverse reduced denominator times gcd := mul(14, 2)
After
Fraction addition normalization reverse reduced denominator times gcd = 28
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, S028
S030 · implies
Before
source roles = [Fraction addition normalization, -18, 28, 2]
After
derived = [-9, 14, -18, 28, -9/14]
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, S029
S031 · calculation
Before
Fraction addition reverse ORIGINAL fraction sum := sum(-1/7, -1/2)
After
Fraction addition reverse ORIGINAL fraction sum = -9/14
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, S030
S032 · implies
Before
source roles = [-1/7, -1/2]
After
derived = [-9/14, -9/14]
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, S031