Step-by-step derivation
S001 · implies
Before
source roles = [qf-density12-length-midpoint-equidistance, density12_length_midpoint_equidistance, integer_euclidean_plane]
After
derived = [[midpoint_x, midpoint_y, SQUARED_PM, SQUARED_MQ]]
Conditions: none
Retain the ORIGINAL bank full operation prefix,domain and ordered answer roles.Use orthogonal_equal_unit only where a frame is declared,and degrees where an angle unit is declared.Integer fractions retain/1.Do not invent parameters or alter original bilingual sources.
Step identifiers and dependencies
Rule: R59_EXACT_family_domain_FULLprefix_operation_and_answer_roles · Uses: G001
S002 · calculation
Before
Length original PQ ORIGINAL Q minus P coordinate0 := sub(0, 0)
After
Length original PQ ORIGINAL Q minus P coordinate0 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S001
S003 · calculation
Before
Length original PQ ORIGINAL Q minus P coordinate1 := sub(0, 0)
After
Length original PQ ORIGINAL Q minus P coordinate1 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S002
S004 · calculation
Before
Length original PQ ORIGINAL square coordinate0 := mul(0, 0)
After
Length original PQ ORIGINAL square coordinate0 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S003
S005 · calculation
Before
Length original PQ ORIGINAL square coordinate1 := mul(0, 0)
After
Length original PQ ORIGINAL square coordinate1 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S004
S006 · calculation
Before
Length original PQ ORIGINAL squared norm sum := sum(0, 0)
After
Length original PQ ORIGINAL squared norm sum = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S005
S007 · implies
Before
source roles = [Length original PQ, [0, 0], [0, 0]]
After
derived = [[0, 0], 0]
Conditions: none
In the SAME equal-unit orthogonal L2 frame,the directed displacement is Q-P with signs retained.The sum of coordinate squares is the nonnegative SQUARED length.Derived coordinates may exceed SAFE without being revalidated as raw inputs.
Step identifiers and dependencies
Rule: Euclidean_DIRECTED_displacement_then_SQUARED_nonnegative_norm · Uses: G001, S006
S008 · calculation
Before
Midpoint ORIGINAL endpoint sum coordinate0 := sum(0, 0)
After
Midpoint ORIGINAL endpoint sum coordinate0 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S007
S009 · calculation
Before
Midpoint ORIGINAL average coordinate0 := div(0, 2)
After
Midpoint ORIGINAL average coordinate0 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S008
S010 · calculation
Before
Midpoint ORIGINAL endpoint sum coordinate1 := sum(0, 0)
After
Midpoint ORIGINAL endpoint sum coordinate1 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S009
S011 · calculation
Before
Midpoint ORIGINAL average coordinate1 := div(0, 2)
After
Midpoint ORIGINAL average coordinate1 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S010
S012 · calculation
Before
Midpoint ORIGINAL full squared length over four := div(0, 4)
After
Midpoint ORIGINAL full squared length over four = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S011
S013 · calculation
Before
Midpoint reverse PM displacement coordinate0 := sub(0, 0)
After
Midpoint reverse PM displacement coordinate0 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S012
S014 · calculation
Before
Midpoint reverse PM displacement coordinate1 := sub(0, 0)
After
Midpoint reverse PM displacement coordinate1 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S013
S015 · calculation
Before
Midpoint reverse PM coordinate0 square := mul(0, 0)
After
Midpoint reverse PM coordinate0 square = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S014
S016 · calculation
Before
Midpoint reverse PM coordinate1 square := mul(0, 0)
After
Midpoint reverse PM coordinate1 square = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S015
S017 · calculation
Before
Midpoint reverse PM squared sum := sum(0, 0)
After
Midpoint reverse PM squared sum = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S016
S018 · calculation
Before
Midpoint reverse MQ displacement coordinate0 := sub(0, 0)
After
Midpoint reverse MQ displacement coordinate0 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S017
S019 · calculation
Before
Midpoint reverse MQ displacement coordinate1 := sub(0, 0)
After
Midpoint reverse MQ displacement coordinate1 = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S018
S020 · calculation
Before
Midpoint reverse MQ coordinate0 square := mul(0, 0)
After
Midpoint reverse MQ coordinate0 square = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S019
S021 · calculation
Before
Midpoint reverse MQ coordinate1 square := mul(0, 0)
After
Midpoint reverse MQ coordinate1 square = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S020
S022 · calculation
Before
Midpoint reverse MQ squared sum := sum(0, 0)
After
Midpoint reverse MQ squared sum = 0
Conditions: none
Substitute exact ORIGINAL roles,without floating approximation.SAFE bounds raw inputs only;derived integers/rationals are unbounded and do not inherit another bank component cap.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S021
S023 · implies
Before
source roles = [[0, 0], [0, 0], [0/1, 0/1], 0]
After
derived = [0/1, 0/1, 0/1]
Conditions: none
Average EACH coordinate to obtain M,possibly half-integral.Both M-P and Q-M are half the original displacement,so EACH squared length is N/4,also recomputed separately.These are SQUARES,not square roots;P=Q is legal.
Step identifiers and dependencies
Rule: Length_midpoint_TWO_HALFsegment_SQUARES_not_distances · Uses: G001, S022