extend source and target calculi with observable tick effects + add invariant checks for relation preservation and target arity/shape
This commit is contained in:
+26
-1
@@ -2,9 +2,30 @@ 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
|
||||
@@ -27,11 +48,15 @@ type case_audit = {
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user