Files
vanity/src/audit.mli
T

63 lines
1.5 KiB
OCaml

type failure_mode =
| Preserved
| Representation_exposure
| Strictness_shift
| Effect_shift
| Type_error of string
| Other_failure of string
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;
}
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;
invariants : invariant_result list;
pass_boundaries : pass_boundary list;
}
val audit_case : Corpus.case -> case_audit
val failure_mode_to_string : failure_mode -> string
val obligation_status_to_string : obligation_status -> string
val invariant_kind_to_string : invariant_kind -> string
val emit_pass_boundaries : case_audit -> string
val emit_invariants : case_audit -> string
val emit_case_audit : case_audit -> string
val emit_matrix : case_audit list -> string