Note: For the Agda formalisation of a newer version of AEff (extended with reinstallable stateful interrupt handlers, higher-order payloads for signals and interrupts, and dynamic process creation), see here.
-
The formalisation has been tested with Agda version 2.6.1 and standard library version 1.3.
-
The unicode symbols used in the source code have tested to display correctly with the DejaVu Sans Mono font.
-
EffectAnnotations.agda- effect annotations for signals and interrupt handlers -
Types.agda- value, computation, and process types -
AEff.agda- well-typed values, computations, and processes (we do not consider untyped terms) -
Renamings.agda- renamings for values, computations, and processes -
Substitutions.agda- substitutions for values, computations, and processes -
Preservation.agda- small-step operational semantics for computations (also serves as a preservation proof) -
AwaitingComputations.agda- characterisation of computations that are temporarily blocked awaiting a promise -
Progress.agda- proof of progress for the small-step operational semantics of computations -
ProcessPreservation.agda- small-step operational semantics for processes (also serves as a preservation proof) -
ProcessProgress.agda- proof of progress for the small-step operational semantics of processes -
Finality.agda- proof that the result forms of computations are final, i.e., they do not reduce further -
ProcessFinality.agda- proof that the result forms of processes are final, i.e., they do not reduce further
