Sequences of Atomic Steps #
A sequence is a list of operators applied in order, each as one atomic step.
StateModel.SequenceStep M ops s t says that t is reached from s by
applying the operators of ops in order, through some intermediate
configurations.
sequenceFootprintUpperBound ops is the union of the footprints of the
operators in ops. It is the set of dimensions that may be touched somewhere
in the sequence.
It is not the set of dimensions on which the final configuration may differ from the initial one. A later step may restore a dimension that an earlier step changed. The theorems below keep the two notions apart:
- a dimension outside the bound is preserved throughout the sequence, so the initial, every intermediate, and the final configurations agree on it;
- a dimension inside the bound may still agree at the end, as
sequenceFootprintUpperBound_not_net_changeshows.
Net effects, restoration, and inverse behavior are not defined here.
The dimensions that may be touched somewhere in a sequence of operators: the union of the footprints of its operators.
This is an upper bound on where change may occur. It says nothing about which dimensions differ between the initial and final configurations.
Equations
Instances For
A dimension is in the bound exactly when some operator of the sequence has it in its footprint.
The empty sequence touches no dimension.
The bound of a sequence with a first operator is that operator's footprint together with the bound of the rest.
The bound of a concatenation is the concatenation of the bounds.
M.SequenceStep ops s t: t is reached from s by applying the operators of
ops in order, each as one atomic step.
- nil
{M : StateModel}
(s : M.State)
: M.SequenceStep [] s s
The empty sequence leaves the configuration as it is.
- cons
{M : StateModel}
{op : OperatorCode}
{ops : List OperatorCode}
{s t u : M.State}
: M.step op s t → M.SequenceStep ops t u → M.SequenceStep (op :: ops) s u
A first atomic step followed by a sequence.
Instances For
A one-operator sequence is exactly one atomic step.
A sequence of two parts passes through an intermediate configuration.
A dimension outside the sequence bound is preserved: the initial and final configurations agree on it.
Frame-based preservation lifts to sequences: if agreement on D suffices for
P and the sequence bound avoids D, a sequence of steps preserves P.
Preservation throughout a history: if a dimension is outside the bound of a two-part sequence, the initial configuration agrees on it with the intermediate configuration and the intermediate with the final one.
A difference between initial and final configurations lies inside the sequence bound.
Touched is not net change. In the maximal model, the sequence BD, UB may
touch binding, which is in its bound, while the initial and final
configurations still agree on binding.