extend source and target calculi with observable tick effects + add invariant checks for relation preservation and target arity/shape
This commit is contained in:
+13
-1
@@ -57,6 +57,18 @@ let () =
|
||||
assert_true
|
||||
"expected strictness shift witness"
|
||||
(strict.failure_mode = Audit.Strictness_shift);
|
||||
let effect_audit = Audit.audit_case (find_case "effect-elision-breaks-observation") in
|
||||
assert_true
|
||||
"expected effect shift witness"
|
||||
(effect_audit.failure_mode = Audit.Effect_shift);
|
||||
assert_true
|
||||
"expected unsafe effect rewrite to emit effect observation obligation"
|
||||
(has_obligation Pipeline.Effect_observation effect_audit.compiled.obligations);
|
||||
assert_true
|
||||
"expected effect trace invariant failure"
|
||||
(List.exists
|
||||
(fun result -> result.Audit.kind = Audit.Effect_trace && not result.Audit.passed)
|
||||
effect_audit.Audit.invariants);
|
||||
let generated = Gen.sample_terms ~count:80 ~max_depth:4 () in
|
||||
List.iter
|
||||
(fun specimen ->
|
||||
@@ -84,7 +96,7 @@ let () =
|
||||
"expected unsupported worker-wrapper source shape to be rejected"
|
||||
(fun () ->
|
||||
Pipeline.compile
|
||||
{ Pipeline.default_flags with unsafe_repr_eq = false; unsafe_strict_unroll = false }
|
||||
{ Pipeline.default_flags with unsafe_repr_eq = false; unsafe_strict_unroll = false; unsafe_effect_drop = false }
|
||||
(Types.TArrow (Types.TPair (Types.TInt, Types.TBool), Types.TPair (Types.TInt, Types.TBool)))
|
||||
(Source.Lam
|
||||
( "p",
|
||||
|
||||
Reference in New Issue
Block a user