Page actions
instrument mechanism / verified-clean
Scientific Calculator mechanism
The inspectable method record for Scientific Calculator, kept separate from implementation and qualification.
Model scope
The arithmetic and precedence approach is broadly standard, but the specification is incomplete for angle-mode implementation, logarithm naming, memory behavior, parser portability, and error semantics. These ambiguities prevent an unconditional PASS.
- Direct evaluation through math.js is a valid expression-evaluation strategy, but it does not by itself define DEG/RAD/GRAD behavior; angle-mode conversion must be explicitly implemented for trigonometric inputs and inverse-trigonometric outputs.
- The specification does not define logarithm semantics. math.js log(x) is the natural logarithm, while a standard scientific-calculator label log commonly means base-10; log10(x) or an explicit base is required to avoid ambiguity.
- Memory-register operations are claimed but are absent from the input contract and formula description; store, recall, add, clear, and register lifetime semantics must be specified.
- Power associativity and calculator-specific precedence for chained exponentiation are not stated; expressions such as 2^3^2 need a defined interpretation.
- The iOS note says NSExpression or a custom parser may replace math.js, but parser compatibility and supported functions/operators are not defined, so results may differ across engines.
Units and conventions
- Angles are interpreted in the selected mode: DEG means degrees, RAD means radians, and GRAD means gradians; the mode must affect trigonometric functions consistently.
- For the test vectors below, exp(1) is the natural exponential e, sqrt is the nonnegative real square root, and ^ denotes exponentiation.
- No physical units are present in these expressions; all numeric values are dimensionless.
- The expected arithmetic assumes ordinary real-number scientific-calculator behavior and sufficient internal precision.
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"expression": "sin(30) + sqrt(81)",
"angle_mode": "DEG"
},
"expected_outputs": {
"result": 9.5
},
"reference_data": {
"identity": "sin(30 degrees)=1/2",
"formula": "sin(30 degrees)+sqrt(81)"
},
"working": "30 degrees = 30*pi/180 = pi/6. sin(pi/6)=1/2=0.5. sqrt(81)=9. Add: 0.5+9=9.5."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
The division-by-zero vector produces Infinity at the numeric evaluator level even though the mathematical result is undefined, and the unspecified logarithm-base convention can produce either 4.605170185988091 or 2 for the same displayed expression.
Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche8/tranche8-results.jsonBOUNDARY_HAZARD_CATALOG.json