Step-by-step derivation
S001 · implies
Before
usual total order on R;all original denominators positive
After
closed endpoints included;negative scaling reverses;zero collapses
Conditions: none
These exact rationals use the usual real total order,not complex numbers or an arbitrary partial order.Original denominators must be positive;normalizing a negative input denominator does not waive that contract.
Step identifiers and dependencies
Rule: real_rational_order_scope · Uses: G001
S002 · calculation
Before
original pair0,1 left cross := mul(0, 1)
After
original pair0,1 left cross = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S001
S003 · calculation
Before
original pair0,1 right cross := mul(0, 1)
After
original pair0,1 right cross = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S002
S004 · calculation
Before
original pair0,1 cross residual := sub(0, 0)
After
original pair0,1 cross residual = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S003
S005 · implies
Before
original pair0,1:fractions=[0/1, 0/1]
After
cross residual=0;comparison==
Conditions: none
Reduced denominators are positive,so the cross-difference sign determines order.Retain equality and use original indices separately to break equal-value sorting ties.
Step identifiers and dependencies
Rule: rational_positive_denominator_comparison · Uses: G001, S004
S006 · calculation
Before
original pair0,2 left cross := mul(0, 1)
After
original pair0,2 left cross = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S005
S007 · calculation
Before
original pair0,2 right cross := mul(0, 1)
After
original pair0,2 right cross = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S006
S008 · calculation
Before
original pair0,2 cross residual := sub(0, 0)
After
original pair0,2 cross residual = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S007
S009 · implies
Before
original pair0,2:fractions=[0/1, 0/1]
After
cross residual=0;comparison==
Conditions: none
Reduced denominators are positive,so the cross-difference sign determines order.Retain equality and use original indices separately to break equal-value sorting ties.
Step identifiers and dependencies
Rule: rational_positive_denominator_comparison · Uses: G001, S008
S010 · calculation
Before
original pair1,2 left cross := mul(0, 1)
After
original pair1,2 left cross = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S009
S011 · calculation
Before
original pair1,2 right cross := mul(0, 1)
After
original pair1,2 right cross = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S010
S012 · calculation
Before
original pair1,2 cross residual := sub(0, 0)
After
original pair1,2 cross residual = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S011
S013 · implies
Before
original pair1,2:fractions=[0/1, 0/1]
After
cross residual=0;comparison==
Conditions: none
Reduced denominators are positive,so the cross-difference sign determines order.Retain equality and use original indices separately to break equal-value sorting ties.
Step identifiers and dependencies
Rule: rational_positive_denominator_comparison · Uses: G001, S012
S014 · calculation
Before
sorted adjacent0 left cross := mul(0, 1)
After
sorted adjacent0 left cross = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S013
S015 · calculation
Before
sorted adjacent0 right cross := mul(0, 1)
After
sorted adjacent0 right cross = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S014
S016 · calculation
Before
sorted adjacent0 cross residual := sub(0, 0)
After
sorted adjacent0 cross residual = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S015
S017 · implies
Before
sorted adjacent0:fractions=[0/1, 0/1]
After
cross residual=0;comparison==
Conditions: none
Reduced denominators are positive,so the cross-difference sign determines order.Retain equality and use original indices separately to break equal-value sorting ties.
Step identifiers and dependencies
Rule: rational_positive_denominator_comparison · Uses: G001, S016
S018 · calculation
Before
sorted adjacent1 left cross := mul(0, 1)
After
sorted adjacent1 left cross = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S017
S019 · calculation
Before
sorted adjacent1 right cross := mul(0, 1)
After
sorted adjacent1 right cross = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S018
S020 · calculation
Before
sorted adjacent1 cross residual := sub(0, 0)
After
sorted adjacent1 cross residual = 0
Conditions: none
Substitute the source data exactly in the stated operand order;division requires a nonzero denominator.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S019
S021 · implies
Before
sorted adjacent1:fractions=[0/1, 0/1]
After
cross residual=0;comparison==
Conditions: none
Reduced denominators are positive,so the cross-difference sign determines order.Retain equality and use original indices separately to break equal-value sorting ties.
Step identifiers and dependencies
Rule: rational_positive_denominator_comparison · Uses: G001, S020
S022 · implies
Before
normalized original values=[0/1, 0/1, 0/1]
After
stable original indices=[0, 1, 2];sorted values=[0/1, 0/1, 0/1]
Conditions: none
Preserve original index order when values tie.Repeated values remain separate entries rather than being deduplicated as a set.
Step identifiers and dependencies
Rule: stable_rational_original_index_sort · Uses: G001, S021