CSPM.Compiler.Processes
Description
This module provides the input data structure to the compiler.
- data Proc
- = PAlphaParallel [(Set Event, Proc)]
- | PException Proc (Set Event) Proc
- | PExternalChoice [Proc]
- | PGenParallel (Set Event) [Proc]
- | PHide Proc (Set Event)
- | PInternalChoice [Proc]
- | PInterrupt Proc Proc
- | PInterleave [Proc]
- | PLinkParallel Proc (Map Event Event) Proc
- | POperator ProcOperator Proc
- | PPrefix Event Proc
- | PRename (Relation Event Event) Proc
- | PSequentialComp Proc Proc
- | PSlidingChoice Proc Proc
- | PProcCall ProcName Proc
- data ProcOperator
- = Chase
- | Diamond
- | Explicate
- | Normalize
- | ModelCompress
- | StrongBisim
- | TauLoopFactor
- | WeakBisim
- data ProcName = ProcName {}
- prettyPrintAllRequiredProcesses :: Proc -> Doc
Documentation
A compiled process. Note this is an infinite data structure (due to PProcCall) as this makes compilation easy (we can easily chase dependencies).
Constructors
| PAlphaParallel [(Set Event, Proc)] | |
| PException Proc (Set Event) Proc | |
| PExternalChoice [Proc] | |
| PGenParallel (Set Event) [Proc] | |
| PHide Proc (Set Event) | |
| PInternalChoice [Proc] | |
| PInterrupt Proc Proc | |
| PInterleave [Proc] | |
| PLinkParallel Proc (Map Event Event) Proc | |
| POperator ProcOperator Proc | |
| PPrefix Event Proc | |
| PRename (Relation Event Event) Proc | |
| PSequentialComp Proc Proc | |
| PSlidingChoice Proc Proc | |
| PProcCall ProcName Proc | Labels the process this contains. This allows infinite loops to be spotted. |
Instances
data ProcOperator Source
An operator that can be applied to processes.
Constructors
| Chase | |
| Diamond | |
| Explicate | |
| Normalize | |
| ModelCompress | |
| StrongBisim | |
| TauLoopFactor | |
| WeakBisim |
ProcNames uniquely identify processes.
Constructors
| ProcName | |
prettyPrintAllRequiredProcesses :: Proc -> DocSource
Pretty prints the given process and all processes that it depends upon.