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).
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. |
data ProcOperator Source
An operator that can be applied to processes.
ProcNames uniquely identify processes.
prettyPrintAllRequiredProcesses :: Proc -> DocSource
Pretty prints the given process and all processes that it depends upon.