Step-by-step derivation
S001 · implies
Before
source roles = [qf-ext18-gcd-common-divisor-audit, Nat_gcd, gcd-common-divisor-audit, no-form-field]
After
derived = [[a, b, d, divides_a, divides_b, equals_gcd, gcd, common_AND_gcd]]
Conditions: none
Check THIS bank interface:BASE equations use form/domain;BASE events/complement have no operation;factorials have no domain.ext18 uses local hyphens,other legacy operations underscores.Do not force every answer into a tuple or fraction.
Step identifiers and dependencies
Rule: R62_EXACT_source_keys_domain_operation_form_AND_output_types · Uses: G001
S002 · calculation
Before
GCD Euclid row0 ORIGINAL quotient times y := mul(0, 126)
After
GCD Euclid row0 ORIGINAL quotient times y = 0
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S001
S003 · calculation
Before
GCD Euclid row0 ORIGINAL x minus qy := sub(104, 0)
After
GCD Euclid row0 ORIGINAL x minus qy = 104
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S002
S004 · implies
Before
source roles = [104, 126, 0]
After
derived = [0, 104, [104, 126, 104]]
Conditions: none
With y≠0,divide to get x=qy+r and0≤r<y.A divisor common to x,y divides y,r,and the converse follows from x=qy+r,so common divisors are unchanged.Positive remainders strictly decrease,ensuring termination.
Step identifiers and dependencies
Rule: GCD_EUCLID_nonzero_divisor_exact_quotient_remainder_INVARIANT · Uses: G001, S003
S005 · calculation
Before
GCD Euclid row1 ORIGINAL quotient times y := mul(1, 104)
After
GCD Euclid row1 ORIGINAL quotient times y = 104
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S004
S006 · calculation
Before
GCD Euclid row1 ORIGINAL x minus qy := sub(126, 104)
After
GCD Euclid row1 ORIGINAL x minus qy = 22
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S005
S007 · implies
Before
source roles = [126, 104, 1]
After
derived = [104, 22, [126, 104, 22]]
Conditions: none
With y≠0,divide to get x=qy+r and0≤r<y.A divisor common to x,y divides y,r,and the converse follows from x=qy+r,so common divisors are unchanged.Positive remainders strictly decrease,ensuring termination.
Step identifiers and dependencies
Rule: GCD_EUCLID_nonzero_divisor_exact_quotient_remainder_INVARIANT · Uses: G001, S006
S008 · calculation
Before
GCD Euclid row2 ORIGINAL quotient times y := mul(4, 22)
After
GCD Euclid row2 ORIGINAL quotient times y = 88
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S007
S009 · calculation
Before
GCD Euclid row2 ORIGINAL x minus qy := sub(104, 88)
After
GCD Euclid row2 ORIGINAL x minus qy = 16
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S008
S010 · implies
Before
source roles = [104, 22, 4]
After
derived = [88, 16, [104, 22, 16]]
Conditions: none
With y≠0,divide to get x=qy+r and0≤r<y.A divisor common to x,y divides y,r,and the converse follows from x=qy+r,so common divisors are unchanged.Positive remainders strictly decrease,ensuring termination.
Step identifiers and dependencies
Rule: GCD_EUCLID_nonzero_divisor_exact_quotient_remainder_INVARIANT · Uses: G001, S009
S011 · calculation
Before
GCD Euclid row3 ORIGINAL quotient times y := mul(1, 16)
After
GCD Euclid row3 ORIGINAL quotient times y = 16
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S010
S012 · calculation
Before
GCD Euclid row3 ORIGINAL x minus qy := sub(22, 16)
After
GCD Euclid row3 ORIGINAL x minus qy = 6
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S011
S013 · implies
Before
source roles = [22, 16, 1]
After
derived = [16, 6, [22, 16, 6]]
Conditions: none
With y≠0,divide to get x=qy+r and0≤r<y.A divisor common to x,y divides y,r,and the converse follows from x=qy+r,so common divisors are unchanged.Positive remainders strictly decrease,ensuring termination.
Step identifiers and dependencies
Rule: GCD_EUCLID_nonzero_divisor_exact_quotient_remainder_INVARIANT · Uses: G001, S012
S014 · calculation
Before
GCD Euclid row4 ORIGINAL quotient times y := mul(2, 6)
After
GCD Euclid row4 ORIGINAL quotient times y = 12
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S013
S015 · calculation
Before
GCD Euclid row4 ORIGINAL x minus qy := sub(16, 12)
After
GCD Euclid row4 ORIGINAL x minus qy = 4
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S014
S016 · implies
Before
source roles = [16, 6, 2]
After
derived = [12, 4, [16, 6, 4]]
Conditions: none
With y≠0,divide to get x=qy+r and0≤r<y.A divisor common to x,y divides y,r,and the converse follows from x=qy+r,so common divisors are unchanged.Positive remainders strictly decrease,ensuring termination.
Step identifiers and dependencies
Rule: GCD_EUCLID_nonzero_divisor_exact_quotient_remainder_INVARIANT · Uses: G001, S015
S017 · calculation
Before
GCD Euclid row5 ORIGINAL quotient times y := mul(1, 4)
After
GCD Euclid row5 ORIGINAL quotient times y = 4
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S016
S018 · calculation
Before
GCD Euclid row5 ORIGINAL x minus qy := sub(6, 4)
After
GCD Euclid row5 ORIGINAL x minus qy = 2
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S017
S019 · implies
Before
source roles = [6, 4, 1]
After
derived = [4, 2, [6, 4, 2]]
Conditions: none
With y≠0,divide to get x=qy+r and0≤r<y.A divisor common to x,y divides y,r,and the converse follows from x=qy+r,so common divisors are unchanged.Positive remainders strictly decrease,ensuring termination.
Step identifiers and dependencies
Rule: GCD_EUCLID_nonzero_divisor_exact_quotient_remainder_INVARIANT · Uses: G001, S018
S020 · calculation
Before
GCD Euclid row6 ORIGINAL quotient times y := mul(2, 2)
After
GCD Euclid row6 ORIGINAL quotient times y = 4
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S019
S021 · calculation
Before
GCD Euclid row6 ORIGINAL x minus qy := sub(4, 4)
After
GCD Euclid row6 ORIGINAL x minus qy = 0
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S020
S022 · implies
Before
source roles = [4, 2, 2]
After
derived = [4, 0, [4, 2, 0]]
Conditions: none
With y≠0,divide to get x=qy+r and0≤r<y.A divisor common to x,y divides y,r,and the converse follows from x=qy+r,so common divisors are unchanged.Positive remainders strictly decrease,ensuring termination.
Step identifiers and dependencies
Rule: GCD_EUCLID_nonzero_divisor_exact_quotient_remainder_INVARIANT · Uses: G001, S021
S023 · implies
Before
source roles = [104, 126, [[104, 126, 104], [126, 104, 22], [104, 22, 16], [22, 16, 6], [16, 6, 4], [6, 4, 2], [4, 2, 0]]]
After
derived = [2, 0]
Conditions: none
At second value0 retain the last x.For nonzero x,gcd(x,0)=x;the two-way common-divisor invariant transfers this to the original pair.At(0,0)use the EXPLICIT convention gcd=0,not a claim that0 is the largest positive divisor.
Step identifiers and dependencies
Rule: GCD_TERMINAL_last_x_ZEROsecond_and_explicit_gcd00_convention · Uses: G001, S022
S024 · implies
Before
source roles = [GCD candidate divides a, 3, 104]
After
derived = [No, not-applicable]
Conditions: none
Natural divisibility at d=0 holds ONLY for x=0;choose multiplier0 for0∣0 without claiming uniqueness.For nonzero d,show a multiplier ONLY at remainder0.Two divisibility flags alone do not establish greatestness.
Step identifiers and dependencies
Rule: GCD_DIVISIBILITY_ZERO_guard_before_natural_multiplier · Uses: G001, S023
S025 · calculation
Before
GCD candidate divides b ORIGINAL exact multiplier := div(126, 3)
After
GCD candidate divides b ORIGINAL exact multiplier = 42
Conditions: none
Use ORIGINAL operands and declared order for exact integer/rational arithmetic,not floats.Bounds are family-specific:do not revalidate derived values as RAW inputs or add blanket SAFE/n64 caps to BASE families.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S024
S026 · implies
Before
source roles = [GCD candidate divides b, 3, 126]
After
derived = [Yes, 42]
Conditions: none
Natural divisibility at d=0 holds ONLY for x=0;choose multiplier0 for0∣0 without claiming uniqueness.For nonzero d,show a multiplier ONLY at remainder0.Two divisibility flags alone do not establish greatestness.
Step identifiers and dependencies
Rule: GCD_DIVISIBILITY_ZERO_guard_before_natural_multiplier · Uses: G001, S025
S027 · implies
Before
source roles = [104, 126, 3, 2]
After
derived = [No, Yes, No, 2, No]
Conditions: none
FIRST compute the actual gcd from ORIGINAL a,b independently of candidate d.A common divisor need not be greatest.Keep d∣a,d∣b,d=gcd,and their conjunction SEPARATE.
Step identifiers and dependencies
Rule: GCD_AUDIT_actual_gcd_INDEPENDENT_of_candidate_common_AND_greatest · Uses: G001, S026