Source: https://guthlabs.ai/docs/instruments/polynomial-root-finder/mechanism/

instrument mechanism / verified-clean

# Polynomial Root Finder mechanism

The inspectable method record for Polynomial Root Finder, kept separate from implementation and qualification.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Model scope

The named numerical methods and the rational-root theorem are fundamentally appropriate, but the specification is incomplete for a reliable root finder. The exact ambiguity requiring review is the coefficient-array ordering, and the implementation also needs explicit convergence, tolerance, multiplicity, and nonconvergence semantics. The four vectors use exact arithmetic and include complex roots, a repeated root, and a zero-root boundary case.

- Durand-Kerner and Aberth are standard numerical methods for simultaneous polynomial-root approximation, but the specification omits initialization, stopping tolerance, maximum iterations, convergence detection, and fallback behavior.

- Repeated or closely clustered roots can cause Durand-Kerner/Aberth to converge slowly, inaccurately, or fail; multiplicity cannot be reliably inferred from merely clustered numerical roots without a stated clustering tolerance or a square-free-factorization step.

- The rational root theorem applies directly only to polynomials with integer coefficients, producing candidates ±p/q where p divides the constant coefficient and q divides the leading coefficient after reduction. It is not applicable to arbitrary real or complex coefficient arrays.

- The factored form is only approximate when generated from numerical roots unless exact factorization is separately available. The specification does not state whether coefficients are exact integers/rationals or floating-point values.

- The claimed degree limit of 6 is an interface constraint, not a guarantee of numerical correctness. Ill-conditioned degree-6 polynomials can already lose substantial precision; the honest label should not imply that degrees 1 through 6 are uniformly reliable.

- Coefficient-array ordering is ambiguous: descending-power order versus ascending-power order is not specified.

## Units and conventions

- Polynomial coefficients are dimensionless, or all coefficients carry compatible units such that every term has the same units; the independent variable is dimensionless unless a unit is explicitly supplied.

- The test vectors below use coefficients in descending-power order: [a_n,...,a_1,a_0].

- Rational-root candidates assume integer coefficients. Candidate testing is exact in the arithmetic examples below; floating-point candidate testing requires an explicit numerical tolerance.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "coefficient_order": "descending powers",
    "coefficients": [
      1,
      -5,
      6
    ],
    "polynomial": "x^2 - 5x + 6"
  },
  "expected_outputs": {
    "roots": [
      "2",
      "3"
    ],
    "multiplicities": {
      "2": 1,
      "3": 1
    },
    "factored_form": "(x - 2)(x - 3)",
    "rational_root_candidates": [
      "1",
      "2",
      "3",
      "6"
    ],
    "residuals": {
      "p(2)": "0",
      "p(3)": "0"
    },
    "spot_checks": [
      {
        "at": 2,
        "input_side": 0,
        "answer_side": 0
      },
      {
        "at": 3,
        "input_side": 0,
        "answer_side": 0
      }
    ]
  },
  "reference_data": {
    "method": "quadratic factorization and rational-root theorem",
    "canonical_result": "x^2 - 5x + 6 = (x - 2)(x - 3)"
  },
  "working": "p(x)=x^2-5x+6. Candidate 2: p(2)=2^2-5(2)+6=4-10+6=0. Candidate 3: p(3)=3^2-5(3)+6=9-15+6=0. Therefore p(x)=(x-2)(x-3), so the roots are 2 and 3, each with multiplicity 1. The integer candidate set is ±1, ±2, ±3, ±6; the positive candidates that test as roots are 2 and 3."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The degree-3 input with a zero leading coefficient exposes an undefined normalization step: a cubic routine can require division by zero. The instrument must reject it or explicitly trim leading zeros and reinterpret the polynomial; silently proceeding is unsafe.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/polynomial-root-finder/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/polynomial-root-finder/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/polynomial-root-finder/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche8/tranche8-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
