Source status: no status is stated in the source document, so none is assigned here. Do not treat this page as a finalized specification. The normative rules are in the Technical Specification.
Verification System¶
The language will use multiple levels of verification.
Level 1: Static Checks¶
Checks performed without running the program.
Examples: - Type mismatches - Missing required values - Invalid function arguments - Unhandled return types - Unused or invalid declarations
Level 2: Contract Checks¶
Checks that code satisfies explicitly declared requirements.
Examples: - A balance cannot become negative. - A transfer must deduct and deposit equal amounts. - A function must preserve specified conditions. - An operation must satisfy its declared postconditions.
Level 3: Runtime Checks¶
Checks performed while the program is running.
Examples: - Input validation - Array bounds - Resource availability - Runtime invariants - Unexpected external responses
Level 4: Formal Verification¶
Mathematical reasoning used to prove specific properties of a program.
Examples: - Proving that an operation cannot violate a defined invariant. - Proving that certain execution paths cannot occur. - Proving that a function satisfies its postconditions under its stated assumptions.
Verification Reporting¶
Every verification result must distinguish between:
- VERIFIED: The specified property was successfully checked or proven.
- FAILED: The property was checked and violated.
- UNVERIFIED: The property could not be established.
The compiler must never report an unverified property as verified.
Source and authority¶
This page migrates VERIFICATION.md in full. It is an explanatory / implementation document, not the normative specification. Where it simplifies a rule, the Technical Specification governs. The original file is preserved in source-original/LANG/.