Page actions
instrument / verified-with-binding-errata
Derivative Calculator (symbolic + numeric)
The current ledger marks this instrument verified with errata that must be applied at binding time.
Status: VERIFIED_WITH_ERRATALifecycle: verified-with-binding-errata
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-020
- Ledger rows
- 1
No ledger note is attached.
Review findings
The standard first-derivative formula is correct only when interpreted as (f(x+h)-f(x-h))/(2*h), with radians for trigonometric examples and a documented nonzero h. The specification is FAIL because h and the nth numeric-derivative algorithm are undefined, and the broad symbolic-support claim lacks domain and capability limits.
Formula and scope findings
- The numeric formula is written as f(x+h)-f(x-h)/2h, which is ambiguous under standard operator precedence; it must be explicitly written as (f(x+h)-f(x-h))/(2*h).
- The step size h is not specified as an input, fixed constant, adaptive value, or error-controlled value.
- Only the first-derivative central-difference formula is specified, but the instrument claims nth numeric derivatives; the algorithm for order greater than 1 is missing.
- The symbolic behavior and supported syntax/domain rules of math.js derivative() are not defined, so the claim of general symbolic differentiation is too broad.
- The numeric central difference is an approximation and should report or document its h-dependent numerical error.
Unit assumptions
- Angles are assumed to be in radians for trigonometric functions.
- The independent variable x and h must use the same units; h must be nonzero and sufficiently small relative to the scale of x.
- For logarithms and other restricted functions, inputs must remain in the function's valid real or complex domain.
- The displayed numeric values below use h=0.00001.
Boundary hardening
BREAK_CLAIMED · SELF_FLAGGED
The numeric path accepts h=0 unless it explicitly validates the step size; the central-difference formula then evaluates 0/0. The branch-switch probe also exposes a semantic hazard: abs(x) at x=0 yields a finite central estimate even though the true derivative is undefined.
Errata and corrections
Tranche errata
spot_checks[0] (at x=0) · vector 1
input_side=-0.9999999999
-1.9999999999 (matches answer_side=-2.0 to 10 decimals)
the numeric finite-difference at x=0 is off by almost exactly a factor of 2 from the correct derivative — consistent with dividing by h instead of 2h in the central-difference formula; the SAME vector's x=1 spot-check is computed correctly, so the error is local to this one point, not the whole method
Inspectable example
4 review vectors are recorded. One source-bound sample is shown below.
{
"inputs": {
"function": "x^3-2*x+1",
"variable": "x",
"point": 2,
"order": 1,
"h": 0.00001
},
"expected_outputs": {
"symbolic_derivative": "3*x^2-2",
"numeric_value": 10.0000000001,
"spot_checks": [
{
"at": 0,
"input_side": -0.9999999999,
"answer_side": -2
},
{
"at": 1,
"input_side": 1.0000000001,
"answer_side": 1
}
]
},
"reference_data": {
"method": "First-order central difference",
"h": 0.00001
},
"working": "Symbolic: d(x^3-2x+1)/dx = 3x^2-2; at x=2, 3(2^2)-2 = 12-2 = 10. Numeric: f(2.00001) = 2.00001^3 - 2(2.00001) + 1; f(1.99999) = 1.99999^3 - 2(1.99999) + 1. Their difference divided by 2(0.00001) simplifies exactly for this cubic to 3(2^2)-2+(0.00001)^2 = 10+0.0000000001 = 10.0000000001. At x=0, central result = -2+0.0000000001 = -1.9999999999? Correction: for f=x^3-2x+1, the central derivative is 3x^2-2+h^2. Thus at x=0 it is -1.9999999999, and at x=1 it is 1.0000000001. At x=2 it is 10.0000000001."
}
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_ERRATAevidence-tranche8/tranche8-results.jsonBOUNDARY_HAZARD_CATALOG.json