In truncate
, we approximate a value as top
if depth > truncateMaxDepth
.
TODO: add option to control this parameter.
Equations
Instances For
Make sure constructors of recursive inductive datatypes can only occur once in each path.
Values at depth > truncateMaxDepth are also approximated at top
.
We use this function this function to implement a simple widening operation for our abstract
interpreter.
Recall the widening functions is used to ensure termination in abstract interpreters.
Equations
Instances For
partial def
Lean.IR.UnreachableBranches.Value.truncate.go
(env : Environment)
(v : Value)
(s : NameSet)
(depth : Nat)
:
Widening operator that guarantees termination in our abstract interpreter.
Equations
Instances For
@[reducible, inline]
Equations
Instances For
Equations
Instances For
Equations
Instances For
@[reducible, inline]
Equations
Instances For
- currFnIdx : Nat
- env : Environment
- lctx : LocalContext
Instances For
- assignments : Array Assignment
- visitedJps : Array (Std.HashSet JoinPointId)
Instances For
@[reducible, inline]
Equations
Instances For
Equations
Instances For
def
Lean.IR.UnreachableBranches.updateJPParamsAssignment
(j : JoinPointId)
(ys : Array Param)
(xs : Array Arg)
:
Return true if the assignment of at least one parameter has been updated.