Error Reference¶
Errors are organized by the pipeline stage that produces them.
Extraction Errors¶
These occur when scanning the source file for annotated functions.
Error |
Cause and Fix |
|---|---|
|
There is a blank line or non-comment line between the annotation
comments and the |
|
The |
|
The closing |
Annotation Errors¶
These occur when parsing the # sig:, # pre:, # post: lines.
Error |
Cause and Fix |
|---|---|
|
Every annotated function must have a |
|
Every annotated function must have a |
|
The annotation block has more than one |
|
The annotation block has more than one |
|
The type |
|
The number of types in the |
|
The precondition or postcondition uses a variable that is not a
function parameter and is not |
|
The expression in |
Parse Errors¶
These occur when parsing the function body.
Error |
Cause and Fix |
|---|---|
|
The function body contains Perl syntax that is not part of the supported subset. See Language Reference for what is supported. |
Type Check Errors¶
These occur during static type analysis of the function body.
Error |
Cause and Fix |
|---|---|
|
The variable |
|
The variable |
|
An operator received the wrong type. For example, using |
|
An array access |
|
The |
Symbolic Execution Errors¶
These occur during path exploration and verification.
Error |
Cause and Fix |
|---|---|
|
The function calls itself directly or through a chain of calls. Recursion is not supported. |
|
The function has too many branches. Reduce branching or increase
|
|
A loop iterates more than |
|
A |
|
Every execution path hits an arithmetic error (like division by zero). The function has no valid behavior to verify. |
|
An extern function’s precondition or postcondition expression could not be evaluated (e.g., it references an undefined variable or has a type error). Check that the extern annotations are correct and that all referenced variables are in scope. |
|
An |
SMT Errors¶
These occur during Z3 solver interaction.
Error |
Cause and Fix |
|---|---|
|
The Z3 solver could not determine satisfiability within the timeout.
Try increasing |