Given an input, we accumulate state and annotate the focus.
Given an input, we accumulate state and annotate the focus.
The state collects the used indices and indicates if the dereferenced array can be pruned. For example, if we deref an array non-statically, we cannot prune it.
If the focus is an array that can be pruned, the annotatation is set to
the state. Else the annotation is set to None
.
Given an annotated input, we produce an output with state.
Given an annotated input, we produce an output with state.
If the previous state provides indices, we remap array dereferences accordingly.
If an array has an associated environment, we update the state to be the environment and prune the array.