Step-by-step derivation
S001 · implies
Before
source roles = [qf-str22-oscillator-polynomial-residual, oscillator-polynomial-residual]
After
derived = [[coefficients, x, position, acceleration, mass, spring, residual, zero_at_x]]
Conditions: none
Use this bank exact ordered tuple and hyphenated operation.Rational outputs reduce with positive denominators and OMIT/1 for integers,unlike the preceding legacy bank.Do not change original bilingual snapshots or meaning.
Step identifiers and dependencies
Rule: STR22_exact_interface_and_source_ORDERED_tuple_roles · Uses: G001
S002 · implies
Before
source roles = [Oscillator mass, [2, 1]]
After
derived = [2, 2, 1]
Conditions: none
A raw rational is a PAIR with each component within±1e6 and nonzero denominator.Normalize denominator sign and gcd.Do not accept a scalar or reduce before checking the RAW input bounds.
Step identifiers and dependencies
Rule: STR22_RAW_rational_PAIR_profile_and_sign_gcd_normalization · Uses: G001, S001
S003 · implies
Before
source roles = [Oscillator spring, [2, 1]]
After
derived = [2, 2, 1]
Conditions: none
A raw rational is a PAIR with each component within±1e6 and nonzero denominator.Normalize denominator sign and gcd.Do not accept a scalar or reduce before checking the RAW input bounds.
Step identifiers and dependencies
Rule: STR22_RAW_rational_PAIR_profile_and_sign_gcd_normalization · Uses: G001, S002
S004 · implies
Before
source roles = [2, 2]
After
derived = [[Yes, Yes], Yes]
Conditions: none
For the undamped linear oscillator m*x_second+k*x=0 require BOTH m,k strictly positive.Qualification may legally contain0/negative candidates;do not repair them with abs or replacement.
Step identifiers and dependencies
Rule: Oscillator_BOTH_strict_model_qualifications_not_repaired · Uses: G001, S003
S005 · calculation
Before
Oscillator ORIGINAL first derivative coefficient0 := mul(-1, 1)
After
Oscillator ORIGINAL first derivative coefficient0 = -1
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S004
S006 · calculation
Before
Oscillator ORIGINAL first derivative coefficient1 := mul(-1, 2)
After
Oscillator ORIGINAL first derivative coefficient1 = -2
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S005
S007 · calculation
Before
Oscillator ORIGINAL second derivative coefficient0 := mul(-2, 1)
After
Oscillator ORIGINAL second derivative coefficient0 = -2
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S006
S008 · implies
Before
source roles = [[-11, -1, -1]]
After
derived = [[-1, -2], [-2]]
Conditions: none
Differentiate EVERY ascending-power monomial twice using d(c_i*x^i)=i*c_i*x^(i-1).Keep the original coefficient vector/trailing zeros;an empty derivative means0.Do not require nonconstancy or impose raw1000 bounds on derived coefficients.
Step identifiers and dependencies
Rule: Oscillator_WHOLE_polynomial_differentiate_TWICE_ALL_coefficients · Uses: G001, S007
S009 · calculation
Before
Oscillator ORIGINAL position Horner multiply degree2 := mul(0, -1)
After
Oscillator ORIGINAL position Horner multiply degree2 = 0
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S008
S010 · calculation
Before
Oscillator ORIGINAL position Horner add degree2 := sum(0, -1)
After
Oscillator ORIGINAL position Horner add degree2 = -1
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S009
S011 · calculation
Before
Oscillator ORIGINAL position Horner multiply degree1 := mul(-1, -1)
After
Oscillator ORIGINAL position Horner multiply degree1 = 1
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S010
S012 · calculation
Before
Oscillator ORIGINAL position Horner add degree1 := sum(1, -1)
After
Oscillator ORIGINAL position Horner add degree1 = 0
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S011
S013 · calculation
Before
Oscillator ORIGINAL position Horner multiply degree0 := mul(0, -1)
After
Oscillator ORIGINAL position Horner multiply degree0 = 0
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S012
S014 · calculation
Before
Oscillator ORIGINAL position Horner add degree0 := sum(0, -11)
After
Oscillator ORIGINAL position Horner add degree0 = -11
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S013
S015 · calculation
Before
Oscillator ORIGINAL acceleration Horner multiply degree0 := mul(0, -1)
After
Oscillator ORIGINAL acceleration Horner multiply degree0 = 0
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S014
S016 · calculation
Before
Oscillator ORIGINAL acceleration Horner add degree0 := sum(0, -2)
After
Oscillator ORIGINAL acceleration Horner add degree0 = -2
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S015
S017 · implies
Before
source roles = [[-11, -1, -1], [-2], -1]
After
derived = [[-11, -2]]
Conditions: none
Evaluate the original polynomial AND its second derivative by complete Horner at the SAME given point.Integer evaluation itself has no1e6 cap;subsequent SOURCE rational products/sums retain their own profile.
Step identifiers and dependencies
Rule: Oscillator_ORIGINAL_Horner_position_AND_acceleration_at_SAMEpoint · Uses: G001, S016
S018 · calculation
Before
Oscillator ORIGINAL mass times acceleration := mul(2, -2)
After
Oscillator ORIGINAL mass times acceleration = -4
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S017
S019 · implies
Before
source roles = [Oscillator ORIGINAL mass times acceleration, mul, [2, -2]]
After
derived = [[1, 1], [-4, 1], -4]
Conditions: none
SOURCE addition first uses denominator gcd;multiplication cross-cancels.Then BOTH raw result components must be within1e6 BEFORE final reduction.Division also checks the nonzero reciprocal.Do not apply an uncancelled-product profile or reduce the final result before the raw gate.
Step identifiers and dependencies
Rule: STR22_EACH_SOURCE_rational_gcd_cross_cancel_THEN_RAW_gate · Uses: G001, S018
S020 · calculation
Before
Oscillator ORIGINAL spring times position := mul(2, -11)
After
Oscillator ORIGINAL spring times position = -22
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S019
S021 · implies
Before
source roles = [Oscillator ORIGINAL spring times position, mul, [2, -11]]
After
derived = [[1, 1], [-22, 1], -22]
Conditions: none
SOURCE addition first uses denominator gcd;multiplication cross-cancels.Then BOTH raw result components must be within1e6 BEFORE final reduction.Division also checks the nonzero reciprocal.Do not apply an uncancelled-product profile or reduce the final result before the raw gate.
Step identifiers and dependencies
Rule: STR22_EACH_SOURCE_rational_gcd_cross_cancel_THEN_RAW_gate · Uses: G001, S020
S022 · calculation
Before
Oscillator ORIGINAL signed ODE residual := sum(-4, -22)
After
Oscillator ORIGINAL signed ODE residual = -26
Conditions: none
Use the ORIGINAL operands exactly,without floating point.Only the declared SOURCE rational operations use their profile;additional integer teaching algebra adds no new input-domain restriction.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S021
S023 · implies
Before
source roles = [Oscillator ORIGINAL signed ODE residual, sum, [-4, -22]]
After
derived = [[1], [-26, 1], -26]
Conditions: none
SOURCE addition first uses denominator gcd;multiplication cross-cancels.Then BOTH raw result components must be within1e6 BEFORE final reduction.Division also checks the nonzero reciprocal.Do not apply an uncancelled-product profile or reduce the final result before the raw gate.
Step identifiers and dependencies
Rule: STR22_EACH_SOURCE_rational_gcd_cross_cancel_THEN_RAW_gate · Uses: G001, S022
S024 · implies
Before
source roles = [[-11, -1, -1], -1, 2, 2]
After
derived = [-11, -2, -26, No]
Conditions: none
Substitute R(x)=m*p_second(x)+k*p(x),retaining the SIGNED residual.R(x)=0 at THIS specified point does not establish an interval-wide ODE solution or stability.
Step identifiers and dependencies
Rule: Oscillator_SINGLE_point_residual_zero_NOT_interval_solution · Uses: G001, S023