Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument / verified-with-binding-errata

Graph Plotter — 2D Function

The current ledger marks this instrument verified with errata that must be applied at binding time.

Status: VERIFIED_WITH_ERRATALifecycle: verified-with-binding-errata

Inspectable records

Ledger state

The current ledger marks this instrument verified with errata that must be applied at binding time.

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-025
Ledger rows
1

No ledger note is attached.

Review findings

The core idea of evaluating f(x) at sampled x-values is standard for rendering a numerical graph, but the specification is not sufficient to support reliable intercept and asymptote claims. The asymptote description is only a heuristic and must be labeled as such; robust behavior requires domain-error detection, segment breaks, adaptive sampling, explicit root-finding with refinement, and separate vertical/horizontal/oblique asymptote logic. The honest_label field is empty and should disclose numerical sampling, possible missed features, approximate intercepts, and heuristic asymptote detection. The fourth vector's working explicitly corrects the sign error that would otherwise make its expected output invalid.

Formula and scope findings

  • Function sampling is a valid rendering technique, but no sampling density, adaptive refinement rule, interpolation rule, or discontinuity handling is specified; ordinary uniform sampling can miss narrow features, roots, extrema, and poles.
  • The asymptote method described as a heuristic based on large |f(x)| near a discontinuity is not a complete or reliable standard asymptote detector. It can produce false positives near steep but finite functions and miss asymptotes when samples do not approach the singularity.
  • Intercept markers require explicit root-finding and zero-crossing refinement; sampling alone can miss tangential roots such as f(x)=(x-1)^2 or roots between samples.
  • Horizontal and oblique asymptotes are not covered by the stated large-|f(x)| near-discontinuity heuristic.
  • The specification does not define how multiple functions are sampled, colored, labeled, or independently clipped when one function has a pole.
  • The claimed range input is not given a formula or validation rule, including behavior when the function lies outside the requested range.

Unit assumptions

  • x and y are treated as dimensionless Cartesian coordinates unless the caller supplies external units; no physical-unit conversion is performed.
  • Trigonometric functions use radians, consistent with standard math.js behavior, unless the engine explicitly configures another angle mode.
  • The domain endpoints are assumed inclusive for ordinary finite functions; singular points must be excluded or represented as separate domain segments.
  • The requested range is a display window, not a mathematically computed range of f(x).

Boundary hardening

BREAK_CLAIMED · SELF_FLAGGED

The pole input x=1 for 1/(x-1) necessarily produces an undefined result, so any finite plotted value or intercept at that coordinate is a failure. The trigonometric probe also exposes a convention-dependent graph: sin(90) is approximately 0.8939966636 in radians but exactly 1 in degrees.

Errata and corrections

Tranche errata

plot_samples y-values (all 5 finite points) · vector 4

2.0, 10.0, 100.0, -100.0, -10.0, -2.0

-2.0, -10.0, -100.0, 100.0, 10.0, 2.0 (every sign flipped)

own working computes each value correctly (e.g. 'y=1/(-0.5)=-2; correction: ... the mathematical value is -2, not +2') and then ships the wrong sign for literally every non-asymptote sample in the vector

Inspectable example

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

{
  "inputs": {
    "functions": [
      "2*x+1"
    ],
    "domain": [
      -2,
      2
    ],
    "sample_xs": [
      -2,
      -1,
      0,
      1,
      2
    ],
    "range": [
      "auto",
      "auto"
    ]
  },
  "expected_outputs": {
    "plot_samples": [
      {
        "x": -2,
        "y": -3
      },
      {
        "x": -1,
        "y": -1
      },
      {
        "x": 0,
        "y": 1
      },
      {
        "x": 1,
        "y": 3
      },
      {
        "x": 2,
        "y": 5
      }
    ],
    "x_intercepts": [
      -0.5
    ],
    "y_intercepts": [
      1
    ],
    "spot_checks": [
      {
        "at": {
          "x": -1.25
        },
        "input_side": -1.5,
        "answer_side": -1.5
      },
      {
        "at": {
          "x": 0.75
        },
        "input_side": 2.5,
        "answer_side": 2.5
      }
    ]
  },
  "reference_data": {
    "canonical_function": "f(x)=2x+1",
    "x_intercept": "2x+1=0, x=-1/2",
    "y_intercept": "f(0)=1",
    "asymptotes": []
  },
  "working": "For each sample, compute y=2x+1: at x=-2, y=2(-2)+1=-4+1=-3; at x=-1, y=-2+1=-1; at x=0, y=1; at x=1, y=2+1=3; at x=2, y=4+1=5. The x-intercept solves 2x+1=0, so 2x=-1 and x=-1/2=-0.50000000. The y-intercept is f(0)=1. A linear function has no vertical, horizontal, or oblique asymptote."
}

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_WITH_ERRATA
  • evidence-tranche8/tranche8-results.json
  • BOUNDARY_HAZARD_CATALOG.json