Step-by-step derivation
S001 · implies
Before
[[0, 16], [-15, 0], [16, 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
[[0, 16], [-15, 0], [16, 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(-15, 0)
After
ABC first vector component0 = -15
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(0, 16)
After
ABC first vector component1 = -16
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(16, 0)
After
ABC second vector component0 = 16
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, 16)
After
ABC second vector component1 = -16
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(-15, -16)
After
ABC cross positive term = 240
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(-16, 16)
After
ABC cross negative term = -256
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(240, -256)
After
ABC signed determinant = 496
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=496
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=1
After
opposite endpoints=[2, 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(-15, 16)
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(-15, 1/2)
After
first endpoint to midpoint coordinate difference0 = -31/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(-31/2)
After
first endpoint to midpoint difference squared0 = 961/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(961/4, 0)
After
first endpoint to midpoint squared distance = 961/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(16, 1/2)
After
second endpoint to midpoint coordinate difference0 = 31/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(31/2)
After
second endpoint to midpoint difference squared0 = 961/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(961/4, 0)
After
second endpoint to midpoint squared distance = 961/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(16, 0)
After
marked vertex to midpoint coordinate difference1 = 16
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(16)
After
marked vertex to midpoint difference squared1 = 256
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, 256)
After
marked vertex to midpoint squared distance = 1025/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=(961/4,961/4);vertex-to-midpoint square=1025/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