2026-02-11 17:24:09 +00:00
|
|
|
type failure_mode =
|
|
|
|
|
| Preserved
|
|
|
|
|
| Representation_exposure
|
|
|
|
|
| Strictness_shift
|
2026-04-27 12:51:47 +00:00
|
|
|
| Effect_shift
|
2026-02-11 17:24:09 +00:00
|
|
|
| Type_error of string
|
|
|
|
|
| Other_failure of string
|
|
|
|
|
|
2026-04-27 12:51:47 +00:00
|
|
|
type invariant_kind =
|
|
|
|
|
| Relation_preservation
|
|
|
|
|
| Target_arity
|
|
|
|
|
| Termination_class
|
|
|
|
|
| Effect_trace
|
|
|
|
|
|
|
|
|
|
type invariant_result = {
|
|
|
|
|
kind : invariant_kind;
|
|
|
|
|
passed : bool;
|
|
|
|
|
detail : string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type pass_boundary = {
|
|
|
|
|
pass : string;
|
|
|
|
|
source_outcome : Source.outcome option;
|
|
|
|
|
target_outcome : Target.outcome option;
|
|
|
|
|
effects : int;
|
|
|
|
|
verdict : string;
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-11 17:24:09 +00:00
|
|
|
type obligation_status =
|
|
|
|
|
| Discharged
|
|
|
|
|
| Assumed
|
|
|
|
|
| Refuted
|
|
|
|
|
|
|
|
|
|
type obligation_result = {
|
|
|
|
|
obligation : Pipeline.obligation;
|
|
|
|
|
status : obligation_status;
|
|
|
|
|
note : string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type case_audit = {
|
|
|
|
|
case : Corpus.case;
|
|
|
|
|
compiled : Pipeline.compiled;
|
|
|
|
|
comparison : Relation.comparison;
|
|
|
|
|
source_trace : Source.trace;
|
|
|
|
|
specialised_trace : Source.trace;
|
|
|
|
|
inlined_trace : Source.trace;
|
|
|
|
|
target_trace : Target.trace;
|
|
|
|
|
typecheck : (unit, string) result;
|
|
|
|
|
failure_mode : failure_mode;
|
|
|
|
|
obligations : obligation_result list;
|
2026-04-27 12:51:47 +00:00
|
|
|
invariants : invariant_result list;
|
|
|
|
|
pass_boundaries : pass_boundary list;
|
2026-02-11 17:24:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
val audit_case : Corpus.case -> case_audit
|
|
|
|
|
val failure_mode_to_string : failure_mode -> string
|
|
|
|
|
val obligation_status_to_string : obligation_status -> string
|
2026-04-27 12:51:47 +00:00
|
|
|
val invariant_kind_to_string : invariant_kind -> string
|
|
|
|
|
val emit_pass_boundaries : case_audit -> string
|
|
|
|
|
val emit_invariants : case_audit -> string
|
2026-02-11 17:24:09 +00:00
|
|
|
val emit_case_audit : case_audit -> string
|
|
|
|
|
val emit_matrix : case_audit list -> string
|