Step-by-step derivation
S001 · implies
Before
[[-16, 0], [0, 17], [17, 0]]
After
original vertex labels1,2,3 in an equal-unit orthogonal Euclidean frame
Conditions: none
Retain the original A,B,C order;the squared-coordinate formula uses equal units and orthogonal axes.Do not read values from a sketch or assume candidate vertices already form a triangle.
Step identifiers and dependencies
Rule: labelled_triangle_coordinate_scope · Uses: G001
S002 · implies
Before
[[-16, 0], [0, 17], [17, 0]]
After
three distinct points=Yes
Conditions: none
Check distinctness separately from noncollinearity;collinear points may be distinct,while repeated vertices do not form a proper triangle.
Step identifiers and dependencies
Rule: distinct_triangle_vertex_check · Uses: G001, S001
S003 · calculation
Before
ABC first vector component0 := sub(0, -16)
After
ABC first vector component0 = 16
Conditions: none
The first edge vector is the second vertex minus the first.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S002
S004 · calculation
Before
ABC first vector component1 := sub(17, 0)
After
ABC first vector component1 = 17
Conditions: none
The first edge vector is the second vertex minus the first.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S003
S005 · calculation
Before
ABC second vector component0 := sub(17, -16)
After
ABC second vector component0 = 33
Conditions: none
The second edge vector is the third vertex minus that same first vertex.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S004
S006 · calculation
Before
ABC second vector component1 := sub(0, 0)
After
ABC second vector component1 = 0
Conditions: none
The second edge vector is the third vertex minus that same first vertex.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S005
S007 · calculation
Before
ABC cross positive term := mul(16, 0)
After
ABC cross positive term = 0
Conditions: none
Compute u_x v_y first.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S006
S008 · calculation
Before
ABC cross negative term := mul(17, 33)
After
ABC cross negative term = 561
Conditions: none
Compute u_y v_x separately,retaining subtraction for the next step.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S007
S009 · calculation
Before
ABC signed determinant := sub(0, 561)
After
ABC signed determinant = -561
Conditions: none
Subtract to obtain signed double area;do not erase label orientation with an absolute value.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S008
S010 · implies
Before
distinct=Yes;signed determinant=-561
After
proper triangle=Yes
Conditions: none
A proper triangle needs distinct vertices and nonzero determinant;this judges the supplied coordinates,not a general geometric construction proof.
Step identifiers and dependencies
Rule: triangle_nondegenerate_coordinate_qualification · Uses: G001, S009
S011 · implies
Before
marked vertex=2
After
opposite endpoints=[1, 3]
Conditions: none
The opposite-side endpoints are the other two original labels,not a reordered coordinate or side-length list.
Step identifiers and dependencies
Rule: original_label_opposite_side · Uses: G001, S010
S012 · calculation
Before
midpoint coordinate sum0 := sum(-16, 17)
After
midpoint coordinate sum0 = 1
Conditions: none
Add matching coordinates of the opposite endpoints.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S011
S013 · calculation
Before
midpoint coordinate0 := div(1, 2)
After
midpoint coordinate0 = 1/2
Conditions: none
Divide the full sum by2,retaining the reduced rational value.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S012
S014 · calculation
Before
midpoint coordinate sum1 := sum(0, 0)
After
midpoint coordinate sum1 = 0
Conditions: none
Add matching coordinates of the opposite endpoints.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S013
S015 · calculation
Before
midpoint coordinate1 := div(0, 2)
After
midpoint coordinate1 = 0
Conditions: none
Divide the full sum by2,retaining the reduced rational value.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S014
S016 · calculation
Before
first endpoint to midpoint coordinate difference0 := sub(-16, 1/2)
After
first endpoint to midpoint coordinate difference0 = -33/2
Conditions: none
Subtract matching coordinates,allowing rational midpoint coordinates.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S015
S017 · calculation
Before
first endpoint to midpoint difference squared0 := square(-33/2)
After
first endpoint to midpoint difference squared0 = 1089/4
Conditions: none
Square each difference;its sign does not affect squared length.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S016
S018 · calculation
Before
first endpoint to midpoint coordinate difference1 := sub(0, 0)
After
first endpoint to midpoint coordinate difference1 = 0
Conditions: none
Subtract matching coordinates,allowing rational midpoint coordinates.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S017
S019 · calculation
Before
first endpoint to midpoint difference squared1 := square(0)
After
first endpoint to midpoint difference squared1 = 0
Conditions: none
Square each difference;its sign does not affect squared length.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S018
S020 · calculation
Before
first endpoint to midpoint squared distance := sum(1089/4, 0)
After
first endpoint to midpoint squared distance = 1089/4
Conditions: none
Add the two squares in the equal-unit orthogonal L2 frame.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S019
S021 · calculation
Before
second endpoint to midpoint coordinate difference0 := sub(17, 1/2)
After
second endpoint to midpoint coordinate difference0 = 33/2
Conditions: none
Subtract matching coordinates,allowing rational midpoint coordinates.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S020
S022 · calculation
Before
second endpoint to midpoint difference squared0 := square(33/2)
After
second endpoint to midpoint difference squared0 = 1089/4
Conditions: none
Square each difference;its sign does not affect squared length.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S021
S023 · calculation
Before
second endpoint to midpoint coordinate difference1 := sub(0, 0)
After
second endpoint to midpoint coordinate difference1 = 0
Conditions: none
Subtract matching coordinates,allowing rational midpoint coordinates.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S022
S024 · calculation
Before
second endpoint to midpoint difference squared1 := square(0)
After
second endpoint to midpoint difference squared1 = 0
Conditions: none
Square each difference;its sign does not affect squared length.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S023
S025 · calculation
Before
second endpoint to midpoint squared distance := sum(1089/4, 0)
After
second endpoint to midpoint squared distance = 1089/4
Conditions: none
Add the two squares in the equal-unit orthogonal L2 frame.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S024
S026 · calculation
Before
marked vertex to midpoint coordinate difference0 := sub(0, 1/2)
After
marked vertex to midpoint coordinate difference0 = -1/2
Conditions: none
Subtract matching coordinates,allowing rational midpoint coordinates.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S025
S027 · calculation
Before
marked vertex to midpoint difference squared0 := square(-1/2)
After
marked vertex to midpoint difference squared0 = 1/4
Conditions: none
Square each difference;its sign does not affect squared length.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S026
S028 · calculation
Before
marked vertex to midpoint coordinate difference1 := sub(17, 0)
After
marked vertex to midpoint coordinate difference1 = 17
Conditions: none
Subtract matching coordinates,allowing rational midpoint coordinates.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S027
S029 · calculation
Before
marked vertex to midpoint difference squared1 := square(17)
After
marked vertex to midpoint difference squared1 = 289
Conditions: none
Square each difference;its sign does not affect squared length.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S028
S030 · calculation
Before
marked vertex to midpoint squared distance := sum(1/4, 289)
After
marked vertex to midpoint squared distance = 1157/4
Conditions: none
Add the two squares in the equal-unit orthogonal L2 frame.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S029
S031 · implies
Before
endpoint squares=(1089/4,1089/4);vertex-to-midpoint square=1157/4
After
endpoint equality does not make every median half the opposite side
Conditions: none
The midpoint is equally distant from the endpoints,at half the side length.But a general third-vertex median need not have that length;do not apply a right-hypotenuse special case to arbitrary labels.
Step identifiers and dependencies
Rule: midpoint_endpoint_vs_median_distinction · Uses: G001, S030