.. Autogenerated in conf.py .. _examples-epim: .. _examples-900_epim: EpiM ################################################################################ Process Execution Spaces with Recursive Processes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ We can compute the execution space of processes defined with recursive processes. `Explore in the playground `__. .. literalinclude:: /_static/examples/py/900_epim/5_exec_space_recursive.py :language: python :linenos: :lines: 1-26 :tab-width: 3 A Recursive Encoding ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ We can also specify process calls in an encoding. `Explore in the playground `__. .. literalinclude:: /_static/examples/py/900_epim/2_encoding_recursive.py :language: python :linenos: :lines: 1-15 :tab-width: 3 A Process Encoding with Restrictions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ We can restrict names of a process. `Explore in the playground `__. .. literalinclude:: /_static/examples/py/900_epim/1_encoding_restriction.py :language: python :linenos: :lines: 1-18 :tab-width: 3 A Basic Process Encoding ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ These examples shows the basic usage of EpiM. After each run a PDF summary is compiled. We let in(x) and out(x) denote the input and output operators of a process respectively. `Explore in the playground `__. .. literalinclude:: /_static/examples/py/900_epim/0_encoding_simple.py :language: python :linenos: :lines: 1-18 :tab-width: 3 Compute Execution Spaces ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ We can compute the execution space of a process. `Explore in the playground `__. .. literalinclude:: /_static/examples/py/900_epim/4_exec_space_simple.py :language: python :linenos: :lines: 1-18 :tab-width: 3 Hospital ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The execution space for the process Hospital. From the execution space, we see that Hospital can end up in a deadlock. This happens specifically, when the process P synchronizes with the process H. `Explore in the playground `__. .. literalinclude:: /_static/examples/py/900_epim/6_hospital.py :language: python :linenos: :lines: 1-36 :tab-width: 3 Config for Visualization of Encodings ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The graphs of the encoded processes can be filtered and "prettified" using either the print options used by MØD for graph visualization or the image config provided by EpiM. `Explore in the playground `__. .. literalinclude:: /_static/examples/py/900_epim/3_encoding_config.py :language: python :linenos: :lines: 1-30 :tab-width: 3