Page actions
instrument mechanism / verified-clean
Snell's Law Refraction Calculator mechanism
The inspectable method record for Snell's Law Refraction Calculator, kept separate from implementation and qualification.
Status: VERIFIED_CLEANLifecycle: verified-clean
Model scope
The core law is correct, but the specification is incomplete because it does not define angle units, angle reference direction, inverse-solving behavior, physical-domain validation, or total-internal-reflection handling. The verdict is NEEDS_REVIEW until those behaviors are specified.
- The relation n1 sin(theta1) = n2 sin(theta2) is the standard Snell's law formula for a planar interface, assuming isotropic, non-magnetic media and angles measured from the interface normal.
- The calculator must explicitly implement the inverse forms theta2 = asin((n1/n2) sin(theta1)) and theta1 = asin((n2/n1) sin(theta2)); the listed equation alone does not specify which angle is solved for.
- The valid inverse-sine domain must be enforced: if the argument magnitude exceeds 1, no real refracted angle exists because of total internal reflection.
- The physical branch should normally return angles from 0 to 90 degrees for ordinary refraction; this branch convention is not specified.
Units and conventions
- Refractive indices n1 and n2 are dimensionless.
- Angles in the test vectors are in degrees, and inverse-trigonometric results are converted back to degrees. The specification does not state whether the implementation expects degrees or radians.
- Angles are measured from the interface normal, not from the interface surface.
- The media are assumed homogeneous, isotropic, and non-magnetic; refractive index values are wavelength- and condition-dependent.
- For ordinary transparent media, n1 and n2 are assumed positive and nonzero.
Inspectable vector
One of 4 source-bound review vectors:
{
"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."
}Failure boundary
- 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.
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