Step-by-step derivation
S001 · implies
Before
source roles = [qf-density14-circle-horizontal-section-candidates, density14_circle_horizontal_section_candidates, finite_integer_circle_boundary_protocol]
After
derived = [[required_vertical_square, ALL_squared_residuals, ALL_boundary_flags]]
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
Circle ORIGINAL nonnegative radius squared := mul(20, 20)
After
Circle ORIGINAL nonnegative radius squared = 400
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 · implies
Before
source roles = [20, orthogonal_equal_unit]
After
derived = [400]
Conditions: none
The circle is the BOUNDARY with squared L2 distance EQUAL to r²,not the disk defined by<=.The radius is nonnegative and0 is legal;at r=0 only the center is on the boundary.Derived coordinates/squares are not SAFE-capped.
Step identifiers and dependencies
Rule: Circle_BOUNDARY_not_disk_and_zero_radius_SINGLEcenter · Uses: G001, S002
S004 · calculation
Before
Circle ORIGINAL horizontal displacement squared := mul(0, 0)
After
Circle ORIGINAL horizontal displacement squared = 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
Circle ORIGINAL required vertical square := sub(400, 0)
After
Circle ORIGINAL required vertical square = 400
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
Circle ORIGINAL vertical candidate0 squared := mul(0, 0)
After
Circle ORIGINAL vertical candidate0 squared = 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 · calculation
Before
Circle ORIGINAL candidate0 square minus required := sub(0, 400)
After
Circle ORIGINAL candidate0 square minus required = -400
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, S006
S008 · calculation
Before
Circle ORIGINAL vertical candidate1 squared := mul(20, 20)
After
Circle ORIGINAL vertical candidate1 squared = 400
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
Circle ORIGINAL candidate1 square minus required := sub(400, 400)
After
Circle ORIGINAL candidate1 square minus required = 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
Circle ORIGINAL vertical candidate2 squared := mul(21, 21)
After
Circle ORIGINAL vertical candidate2 squared = 441
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
Circle ORIGINAL candidate2 square minus required := sub(441, 400)
After
Circle ORIGINAL candidate2 square minus required = 41
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 · implies
Before
source roles = [20, 0, [0, 20, 21]]
After
derived = [400, [-400, 0, 41], [No, Yes, No]]
Conditions: none
The FIXED quantity is horizontal OFFSET dx;candidate points(dx,y) satisfy dx²+y²=r² IFF y²-required=0.A negative required value is LEGAL and gives no real intersection.STILL retain all three signed residuals/positions;do not take a negative square root,clamp0 or add an unspecified center translation.
Step identifiers and dependencies
Rule: Circle_FIXED_horizontal_OFFSET_ALL_vertical_candidates_NEGATIVE_required_LEGAL · Uses: G001, S011