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

instrument / verified-clean

# Polynomial Root Finder

The current ledger marks this instrument verified clean within the source-bound verification corpus.

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

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/polynomial-root-finder/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/polynomial-root-finder/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/polynomial-root-finder/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/polynomial-root-finder/qualification/>)

## Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

**Area**: Mathematics — arithmetic through advanced (algebra, matrices, calculus, sequences/series, number theory, combinatorics, graphing, complex numbers, geometry, logic, sets)

**Tranche**: tranche-8

**Evidence ID**: t8-012

**Ledger rows**: 1

No ledger note is attached.

## Review findings

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.

### Formula and scope findings

- 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.

### Unit assumptions

- 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.

## Boundary hardening

**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.

## Errata and corrections

No applied erratum is attached to this unique-name record.

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "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."
}
````

## Related workflows

No source-defined multi-instrument workflow membership is recorded.

## Sources and evidence

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

- `VERIFIED_LEDGER.json · VERIFIED_CLEAN`

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

- `BOUNDARY_HAZARD_CATALOG.json`
