Page actions
instrument implementation / implementation-contract
Snell's Law Refraction Calculator implementation
A source-bound implementation contract for Snell's Law Refraction Calculator; deployment and executable qualification remain separate.
Status: VERIFIED_CLEANLifecycle: implementation-contract
Binding contract
This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.
- Record owner
- Guth Instruments
- Lifecycle
- verified-clean
- Evidence ID
- t5-132
- Effect
- Computation or source lookup only
Input and validation requirements
- If n2 is zero, the inverse formula divides by zero.
- If n1 or n2 is negative, the physical interpretation requires handling complex or signed refractive indices; this is not specified.
- For light going from a higher-index medium to a lower-index medium, an input above the critical angle produces an inverse-sine argument greater than 1 and must be reported as total internal reflection rather than NaN or a fabricated angle.
- Passing degree values directly to JavaScript Math.sin or Math.asin, which use radians, causes incorrect results; explicit conversion is required.
- The interface-normal convention is not stated, so complementary angle results are possible if users measure from the surface.
- A refractive-index table requires wavelength, temperature, pressure, and material-state assumptions; a generic air/water/glass/diamond table can be misleading without those qualifiers.
Required corrections
No binding erratum is attached to this unique-name record. Implementers must still preserve the declared units, domain, and failure behavior.
Inspectable interface fixture
The sample below is evidence for interface and validation tests, not a production implementation.
{
"inputs": {
"mode": "solve_theta2",
"n1": 1,
"n2": 1.5,
"theta1_deg": 0
},
"expected_outputs": {
"theta2_deg": 0
},
"working": "sin(theta2) = (n1/n2) sin(theta1) = (1.0/1.5) sin(0 degrees) = (2/3)(0) = 0. Therefore theta2 = asin(0) = 0 degrees."
}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-tranche5/tranche5-results.json