Просмотр исходного кода

Updated 'render' script + checked in reasonably looking rendered statechart images

Joeri Exelmans 5 лет назад
Родитель
Сommit
f600f56401
55 измененных файлов с 2689 добавлено и 2996 удалено
  1. 4 1
      src/sccd/runtime/debug.py
  2. 17 4
      test/README.md
  3. 8 7
      test/lib/builder.py
  4. 38 8
      test/render.py
  5. 0 14
      test/render.sh
  6. 0 125
      test/run_tests.html
  7. 0 80
      test/sccd_to_smcat.xsl
  8. 16 16
      test/semantics/big_step_maximality/01_take_many.svg
  9. 16 16
      test/semantics/big_step_maximality/00_take_one.svg
  10. 64 52
      test/semantics/big_step_maximality/10_orthogonal_take_one.smcat.svg
  11. 0 125
      test/semantics/big_step_maximality/11_orthogonal_take_many.svg
  12. 64 52
      test/semantics/big_step_maximality/10_orthogonal_take_one.svg
  13. 17 17
      test/semantics/event_lifeline/10_take_many_next_small_step.svg
  14. 17 17
      test/semantics/event_lifeline/00_take_one_next_small_step.svg
  15. 17 17
      test/semantics/event_lifeline/02_take_one_queue.svg
  16. 17 17
      test/semantics/event_lifeline/11_take_many_next_combo_step.svg
  17. 0 60
      test/semantics/event_lifeline/12_take_many_queue.svg
  18. 60 0
      test/semantics/event_lifeline/12_take_many_queue_c.svg
  19. 68 56
      test/semantics/event_lifeline/21_orthogonal_take_one_queue.svg
  20. 68 56
      test/semantics/event_lifeline/30_orthogonal_take_many_next_small_step.svg
  21. 68 56
      test/semantics/event_lifeline/31_orthogonal_take_many_next_combo_step.svg
  22. 68 56
      test/semantics/event_lifeline/20_orthogonal_take_one_next_small_step.svg
  23. 0 118
      test/semantics/event_lifeline/32_orthogonal_take_many_queue.svg
  24. 130 0
      test/semantics/event_lifeline/32_orthogonal_take_many_queue_c.svg
  25. 0 67
      test/semantics/original_semantics/after.svg
  26. 67 0
      test/semantics/original_semantics/after_Class1.svg
  27. 0 61
      test/semantics/original_semantics/correct_duplicate_state_id.svg
  28. 89 0
      test/semantics/original_semantics/correct_duplicate_state_id_Class1.svg
  29. 0 149
      test/semantics/original_semantics/enter_exit_hierarchy.svg
  30. 149 0
      test/semantics/original_semantics/enter_exit_hierarchy_Class1.svg
  31. 0 98
      test/semantics/original_semantics/history.svg
  32. 91 0
      test/semantics/original_semantics/history_Class1.svg
  33. 130 125
      test/semantics/original_semantics/history_deep.svg
  34. 0 229
      test/semantics/original_semantics/history_parallel_deep.svg
  35. 241 0
      test/semantics/original_semantics/history_parallel_deep_Class1.svg
  36. 0 71
      test/semantics/original_semantics/inner_first.svg
  37. 78 0
      test/semantics/original_semantics/inner_first_Class1.svg
  38. 0 150
      test/semantics/original_semantics/instate.svg
  39. 155 0
      test/semantics/original_semantics/instate_Class1.svg
  40. 0 71
      test/semantics/original_semantics/outer_first.svg
  41. 78 0
      test/semantics/original_semantics/outer_first_Class1.svg
  42. 0 111
      test/semantics/original_semantics/parallel.svg
  43. 123 0
      test/semantics/original_semantics/parallel_Class1.svg
  44. 0 196
      test/semantics/original_semantics/parallel_history.svg
  45. 0 194
      test/semantics/original_semantics/parallel_history_2.svg
  46. 200 0
      test/semantics/original_semantics/parallel_history_2_TestClass.svg
  47. 0 194
      test/semantics/original_semantics/parallel_history_3.svg
  48. 200 0
      test/semantics/original_semantics/parallel_history_3_TestClass.svg
  49. 199 0
      test/semantics/original_semantics/parallel_history_TestClass.svg
  50. 24 24
      test/semantics/priority/01_source_child.svg
  51. 24 24
      test/semantics/priority/00_source_parent.svg
  52. 42 30
      test/semantics/priority/10_source_parent_history.svg
  53. 42 30
      test/semantics/priority/11_source_child_history.svg
  54. 0 135
      test/test_framework.js
  55. 0 67
      test/wontfix/original_semantics/guard.svg

+ 4 - 1
src/sccd/runtime/debug.py

@@ -1,6 +1,9 @@
 import os
 
-DEBUG = os.environ['SCCDDEBUG']
+try:
+  DEBUG = os.environ['SCCDDEBUG']
+except KeyError:
+  DEBUG = False
 def print_debug(msg):
     if DEBUG:
         print(msg)

+ 17 - 4
test/README.md

@@ -1,8 +1,21 @@
-The Python file `test.py` replaces the old `run_tests.py`. It takes test input files (in SCCD XML format) as parameter. It compiles tests and runs them.
+## test.py
 
-#### Example
-To run the "semantics" tests:
+The Python program `test.py` replaces the old `run_tests.py`. It takes test input files (in SCCD XML format) as parameter. It compiles tests and runs them.
+
+For example, to run the "semantics" tests:
 ```
-python test.py semantics
+python3 test.py semantics
 ```
+This will create a 'build' directory with compiled statechart models. It is safe to remove this directory after testing, but this directory serves as a 'cache' for build artifacts.
+
+## render.py
 
+The Python program `render.py` renders SVG graphs for test files. Rendered SVG files are checked in to this repository. If you wish to re-render them, you need the NPM (NodeJS) package 'state-machine-cat'. Install NodeJS and NPM, and then install the NPM package 'state-machine-cat':
+```
+npm i -g state-machine-cat
+```
+You can now render all the tests in the 'semantics' dir:
+```
+python3 render.py semantics
+```
+By default, the SVG files are stored next to the test XML files.

+ 8 - 7
test/lib/builder.py

@@ -1,18 +1,19 @@
 import os
 import importlib
-from sccd.compiler.sccdc import generate
+from sccd.compiler.sccdc import generate, Platforms
 
 def dropext(file):
-  return os.path.splitext(src_file)[0]
+  return os.path.splitext(file)[0]
+
+def make_dirs(file):
+  os.makedirs(os.path.dirname(file), exist_ok=True)
 
 class Builder:
   def __init__(self, build_dir: str):
     self.build_dir = build_dir
 
-  def dropext(self, src_file: str) -> str:
-
-  def target_file(self, src_file: str) -> str:
-    return os.path.join(self.build_dir, dropext(src_file)+".py")
+  def target_file(self, src_file: str, ext='.py') -> str:
+    return os.path.join(self.build_dir, dropext(src_file)+ext)
 
   def module_name(self, src_file: str) -> str:
     return os.path.join(self.build_dir, dropext(src_file)).replace(os.path.sep, ".")
@@ -30,7 +31,7 @@ class Builder:
 
     if src_file_mtime > target_file_mtime:
         # (Re-)Compile test
-        os.makedirs(os.path.dirname(target_file), exist_ok=True)
+        make_dirs(target_file)
         generate(src_file, target_file, "python", Platforms.Threads)
 
   def build_and_load(self, src_file: str):

+ 38 - 8
test/render.py

@@ -1,7 +1,8 @@
 import argparse
 import sys
+import subprocess
 from lib.os_tools import *
-from lib.builder import Builder, dropext
+from lib.builder import *
 from sccd.compiler.utils import FormattedWriter
 from sccd.runtime.statecharts_core import *
 
@@ -9,10 +10,18 @@ if __name__ == '__main__':
     parser = argparse.ArgumentParser(
         description="Render statecharts as SVG images.")
     parser.add_argument('path', metavar='PATH', type=str, nargs='*', help="Models to render. Can be a XML file or a directory. If a directory, it will be recursively scanned for XML files.")
-    parser.add_argument('--build-dir', metavar='BUILD_DIR', type=str, default='build', help="Directory for output files. Defaults to 'build'")
+    parser.add_argument('--build-dir', metavar='DIR', type=str, default='build', help="Directory for built tests. Defaults to 'build'")
+    parser.add_argument('--render-dir', metavar='DIR', type=str, default='.', help="Directory for SVG rendered output. Defaults to '.' (putting the SVG files with the XML source files)")
     args = parser.parse_args()
 
+    try:
+      subprocess.run(["state-machine-cat", "-h"], capture_output=True)
+    except:
+        print("Failed to run 'state-machine-cat'. Make sure this application is installed on your system.")
+        exit()
+
     builder = Builder(args.build_dir)
+    render_builder = Builder(args.render_dir)
     srcs = get_files(args.path, filter=xml_filter)
 
     for src in srcs:
@@ -20,7 +29,12 @@ if __name__ == '__main__':
       model = module.Model()
 
       for class_name, _class in model.classes.items():
-        f = open(dropext(src)+'_'+class_name+'.smcat', 'w')
+        target = render_builder.target_file(src, '_'+class_name+'.smcat')
+        svg_target = render_builder.target_file(src, '_'+class_name+'.svg')
+        
+        make_dirs(target)
+
+        f = open(target, 'w')
         w = FormattedWriter(f)
         sc = _class().statechart
 
@@ -71,13 +85,29 @@ if __name__ == '__main__':
           transitions.extend(s.transitions)
 
         write_state(sc.root, hide=True)
+
+        ctr = 0
         for t in transitions:
-          w.write(name_to_name(t.source.name) + ' -> ' + name_to_name(t.targets[0].name))
           label = ""
           if t.trigger and t.trigger.name:
               label = (t.trigger.port + '.' if t.trigger.port else '') + t.trigger.name
-          if label:
-            w.extendWrite(': '+label)
-          w.extendWrite(';')
 
-        f.close()
+          if len(t.targets) == 1:
+            w.write(name_to_name(t.source.name) + ' -> ' + name_to_name(t.targets[0].name))
+            if label:
+              w.extendWrite(': '+label)
+            w.extendWrite(';')
+          else:
+            w.write(name_to_name(t.source.name) + ' -> ' + ']split'+str(ctr))
+            if label:
+                w.extendWrite(': '+label)
+            w.extendWrite(';')
+            for tt in t.targets:
+              w.write(']split'+str(ctr) + ' -> ' + name_to_name(tt.name))
+              w.extendWrite(';')
+            ctr += 1
+
+        f.close()
+        subprocess.run(["state-machine-cat", target, "-o", svg_target])
+        os.remove(target)
+        print("Rendered "+svg_target)

+ 0 - 14
test/render.sh

@@ -1,14 +0,0 @@
-#!/bin/bash
-
-# On ubuntu, you need to install the package 'libsaxonb-java'.
-# And for 'state-machine-cat', install nodejs and npm.
-# Then:
-#   npm i -g state-machine-cat
-
-cd semantics
-
-for SCCDFILE in $(find . -type f -name '*.xml'); do
-  saxonb-xslt -xsl:../sccd_to_smcat.xsl -s:$SCCDFILE -o:${SCCDFILE%.xml}.smcat
-  state-machine-cat ${SCCDFILE%.xml}.smcat -o ${SCCDFILE%.xml}.svg
-  #rm ${SCCDFILE%.xml}.smcat
-done

+ 0 - 125
test/run_tests.html

@@ -1,125 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8" />
-<title>test</title>
-<style>
-.code { font-family: monospace; background-color: #eee }
-</style>
-</head>
-<body>
-<p>Tests must be built first. Missing tests will be skipped. Use the supplied Makefile to build tests.</p>
-
-<p>Test output:</p>
-<p id="test_output" class="code">
-</p>
-
-<script src="../src/javascript_sccd_runtime/statecharts_core.js"></script>
-<script src="../src/javascript_sccd_runtime/libs/HackTimer.js"></script>
-<script src="../src/javascript_sccd_runtime/statecharts_core.js"></script>
-<script src="test_framework.js"></script>
-
-<script src="target_js/big_step_maximality/00_take_one.js"></script>
-<script src="target_js/big_step_maximality/01_take_many.js"></script>
-<script src="target_js/big_step_maximality/10_orthogonal_take_one.js"></script>
-<script src="target_js/big_step_maximality/11_orthogonal_take_many.js"></script>
-
-<script src="target_js/event_lifeline/00_take_one_next_small_step.js"></script>
-<script src="target_js/event_lifeline/02_take_one_queue.js"></script>
-<script src="target_js/event_lifeline/10_take_many_next_small_step.js"></script>
-<script src="target_js/event_lifeline/11_take_many_next_combo_step.js"></script>
-<script src="target_js/event_lifeline/12_take_many_queue.js"></script>
-<script src="target_js/event_lifeline/20_orthogonal_take_one_next_small_step.js"></script>
-<script src="target_js/event_lifeline/21_orthogonal_take_one_queue.js"></script>
-<script src="target_js/event_lifeline/30_orthogonal_take_many_next_small_step.js"></script>
-<script src="target_js/event_lifeline/31_orthogonal_take_many_next_combo_step.js"></script>
-<script src="target_js/event_lifeline/32_orthogonal_take_many_queue.js"></script>
-<script src="target_js/event_lifeline/event_consuming_whole.js"></script>
-
-<script src="target_js/priority/00_source_parent.js"></script>
-<script src="target_js/priority/01_source_child.js"></script>
-
-<script src="target_js/timing/00_rapid_js.js"></script>
-
-<script src="target_js/no_statechart/00_no_statechart_js.js"></script>
-
-<script src="target_js/original_semantics/after.js"></script>
-<script src="target_js/original_semantics/associate_event.js"></script>
-<script src="target_js/original_semantics/disassociate_event.js"></script>
-<script src="target_js/original_semantics/correct_duplicate_state_id.js"></script>
-<script src="target_js/original_semantics/enter_exit_hierarchy.js"></script>
-<script src="target_js/original_semantics/event_consuming.js"></script>
-<script src="target_js/original_semantics/event_consuming_2.js"></script>
-<script src="target_js/original_semantics/guard.js"></script>
-<script src="target_js/original_semantics/history.js"></script>
-<script src="target_js/original_semantics/history_deep.js"></script>
-<script src="target_js/original_semantics/history_parallel_deep.js"></script>
-<script src="target_js/original_semantics/inner_first.js"></script>
-<script src="target_js/original_semantics/instate.js"></script>
-<script src="target_js/original_semantics/multiple_target.js"></script>
-<script src="target_js/original_semantics/object_manager.js"></script>
-<script src="target_js/original_semantics/outer_first.js"></script>
-<script src="target_js/original_semantics/parallel.js"></script>
-<script src="target_js/original_semantics/parallel_history.js"></script>
-<script src="target_js/original_semantics/parallel_history_2.js"></script>
-
-<script>
-var tests = [
-// Big Step Maximality
-"take_one",
-"take_many",
-"orthogonal_take_one",
-"orthogonal_take_many",
-// Event Lifeline
-"take_one_next_small_step",
-"take_one_queue",
-"take_many_next_small_step",
-"take_many_next_combo_step",
-"take_many_queue",
-"orthogonal_take_one_next_small_step",
-"orthogonal_take_one_queue",
-"orthogonal_take_many_next_small_step",
-"orthogonal_take_many_next_combo_step",
-"orthogonal_take_many_queue",
-"TestEventConsumingWhole",
-// Original Semantics
-"TestAfter",
-"TestAssociateEvent",
-"TestCorrectDuplicateStateId",
-"TestEnterExitHierarchy",
-"TestGuard",
-"TestHistory",
-"TestHistoryDeep",
-"TestHistoryParallelDeep",
-"TestInnerFirst",
-"TestInstate",
-"TestMultipleTarget",
-"TestObjectManager",
-"TestOuterFirst",
-"TestParallel",
-"TestParallelHistory",
-"TestParallelHistory2",
-"TestEventConsuming",
-"TestEventConsuming2",
-// Priority
-"source_parent",
-"source_child",
-// Timing
-"rapid",
-// No Statechart
-"no_statechart"];
-
-var element = document.getElementById("test_output");
-
-var log = (function(e) {
-	return function(msg) {
-		//console.log(msg);
-		e.innerHTML += msg + "<br />";
-	};
-})(element);
-
-TestFramework.RunAll(tests, log);
-
-</script>
-</body>
-</html>

+ 0 - 80
test/sccd_to_smcat.xsl

@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- This XSLT transformation transforms SCCD source files to 'SMCAT', a textual format for state-machine-cat, a renderer of state machines -->
-<xsl:stylesheet version="2.0"
-  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:sccd="msdl.uantwerpen.be/sccd">
-
-  <xsl:output method="text"/>
-  <xsl:template match="/">
-    <xsl:for-each select="sccd:diagram/sccd:class">
-      <xsl:apply-templates/>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template match="sccd:scxml">
-    <xsl:if test="@initial">
-      initial_<xsl:value-of select="concat(string(count(ancestor::*)),'_',string(count(preceding-sibling::*)))"/>,
-    </xsl:if>
-    <xsl:apply-templates select="(sccd:state|sccd:parallel|sccd:history)[1]"/>
-    <xsl:if test="@initial">
-      initial_<xsl:value-of select="concat(string(count(ancestor::*)),'_',string(count(preceding-sibling::*)))"/>
-      -> <xsl:value-of select="@initial"/>;
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template match="sccd:state|sccd:parallel|sccd:history">
-    <!-- [BEGIN-TEMPLATE-<xsl:value-of select="@id"/>] -->
-    <xsl:value-of select="@id"/>
-
-    <xsl:if test="self::sccd:parallel">
-      [type=parallel]
-    </xsl:if>
-    <xsl:if test="(self::sccd:history)">
-      <xsl:if test="@type = 'deep'">
-        [type=deephistory]
-      </xsl:if>
-      <xsl:if test="not(@type = 'deep')">
-        [type=history]
-      </xsl:if>
-    </xsl:if>
-
-    <xsl:if test="sccd:state|sccd:parallel|sccd:history">
-      {
-        <xsl:if test="@initial">
-          initial_<xsl:value-of select="concat(string(count(ancestor::*)),'_',string(count(preceding-sibling::*)))"/>,
-        </xsl:if>
-        <xsl:apply-templates select="(sccd:state|sccd:parallel|sccd:history)[1]"/>
-      }
-    </xsl:if>
-
-    <xsl:choose>
-      <xsl:when test="following-sibling::sccd:state | following-sibling::sccd:parallel | following-sibling::sccd:history">
-        ,
-        <!-- [NEXT-SIBLING] -->
-        <xsl:apply-templates select="(following-sibling::sccd:state | following-sibling::sccd:parallel | following-sibling::sccd:history)[1]"/>
-      </xsl:when>
-      <xsl:otherwise>
-        ;
-      </xsl:otherwise>
-    </xsl:choose>
-
-    <xsl:if test="@initial">
-      initial_<xsl:value-of select="concat(string(count(ancestor::*)),'_',string(count(preceding-sibling::*)))"/>
-      -> <xsl:value-of select="@initial"/>;
-    </xsl:if>
-
-    <!-- [BEGIN-TRANSITIONS-<xsl:value-of select="@id"/>] -->
-    <xsl:for-each select="sccd:transition">
-      <xsl:value-of select="../@id"/> -> <xsl:value-of select="tokenize(@target,'/')[last()]"/>
-      <xsl:if test="@event">
-        : <xsl:value-of select="@event"/>
-      </xsl:if>
-      ;
-    </xsl:for-each>
-    <!-- [END-TRANSITIONS-<xsl:value-of select="@id"/>] -->
-
-    <!-- [END-TEMPLATE-<xsl:value-of select="@id"/>] -->
-  </xsl:template>
-
-</xsl:stylesheet>
-

+ 16 - 16
test/semantics/big_step_maximality/01_take_many.svg

@@ -9,49 +9,49 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 207)">
 <title>state transitions</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-207 60,-207 60,4 -4,4"/>
-<!-- initial_200 -->
+<!-- __initial -->
 <g id="node1" class="node">
-<title>initial_200</title>
+<title>__initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="28" cy="-197.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- a -->
+<!-- _a -->
 <g id="node2" class="node">
-<title>a</title>
+<title>_a</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-164 0,-164 0,-128 56,-128 56,-164"/>
 <text text-anchor="start" x="24.6646" y="-142.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-129C12.3333,-129 43.6667,-129 43.6667,-129 49.3333,-129 55,-134.6667 55,-140.3333 55,-140.3333 55,-151.6667 55,-151.6667 55,-157.3333 49.3333,-163 43.6667,-163 43.6667,-163 12.3333,-163 12.3333,-163 6.6667,-163 1,-157.3333 1,-151.6667 1,-151.6667 1,-140.3333 1,-140.3333 1,-134.6667 6.6667,-129 12.3333,-129"/>
 </g>
-<!-- initial_200&#45;&gt;a -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;a</title>
+<!-- __initial&#45;&gt;_a -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_a</title>
 <path fill="none" stroke="#000000" d="M28,-191.9886C28,-187.6293 28,-181.1793 28,-174.4801"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-174.0122 28,-164.0122 24.5001,-174.0122 31.5001,-174.0122"/>
 <text text-anchor="middle" x="29.3895" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- b -->
+<!-- _b -->
 <g id="node3" class="node">
-<title>b</title>
+<title>_b</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-100 0,-100 0,-64 56,-64 56,-100"/>
 <text text-anchor="start" x="24.6646" y="-78.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-65C12.3333,-65 43.6667,-65 43.6667,-65 49.3333,-65 55,-70.6667 55,-76.3333 55,-76.3333 55,-87.6667 55,-87.6667 55,-93.3333 49.3333,-99 43.6667,-99 43.6667,-99 12.3333,-99 12.3333,-99 6.6667,-99 1,-93.3333 1,-87.6667 1,-87.6667 1,-76.3333 1,-76.3333 1,-70.6667 6.6667,-65 12.3333,-65"/>
 </g>
-<!-- a&#45;&gt;b -->
+<!-- _a&#45;&gt;_b -->
 <g id="edge2" class="edge">
-<title>a&#45;&gt;b</title>
+<title>_a&#45;&gt;_b</title>
 <path fill="none" stroke="#000000" d="M28,-127.8314C28,-122.4728 28,-116.4735 28,-110.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-110.4363 28,-100.4363 24.5001,-110.4363 31.5001,-110.4363"/>
 <text text-anchor="middle" x="29.3895" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- c -->
+<!-- _c -->
 <g id="node4" class="node">
-<title>c</title>
+<title>_c</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-36 0,-36 0,0 56,0 56,-36"/>
 <text text-anchor="start" x="25" y="-14.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-1C12.3333,-1 43.6667,-1 43.6667,-1 49.3333,-1 55,-6.6667 55,-12.3333 55,-12.3333 55,-23.6667 55,-23.6667 55,-29.3333 49.3333,-35 43.6667,-35 43.6667,-35 12.3333,-35 12.3333,-35 6.6667,-35 1,-29.3333 1,-23.6667 1,-23.6667 1,-12.3333 1,-12.3333 1,-6.6667 6.6667,-1 12.3333,-1"/>
 </g>
-<!-- b&#45;&gt;c -->
-<g id="edge1" class="edge">
-<title>b&#45;&gt;c</title>
+<!-- _b&#45;&gt;_c -->
+<g id="edge3" class="edge">
+<title>_b&#45;&gt;_c</title>
 <path fill="none" stroke="#000000" d="M28,-63.8314C28,-58.4728 28,-52.4735 28,-46.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-46.4363 28,-36.4363 24.5001,-46.4363 31.5001,-46.4363"/>
 <text text-anchor="middle" x="29.3895" y="-47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>

+ 16 - 16
test/semantics/big_step_maximality/00_take_one.svg

@@ -9,49 +9,49 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 207)">
 <title>state transitions</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-207 60,-207 60,4 -4,4"/>
-<!-- initial_200 -->
+<!-- __initial -->
 <g id="node1" class="node">
-<title>initial_200</title>
+<title>__initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="28" cy="-197.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- a -->
+<!-- _a -->
 <g id="node2" class="node">
-<title>a</title>
+<title>_a</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-164 0,-164 0,-128 56,-128 56,-164"/>
 <text text-anchor="start" x="24.6646" y="-142.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-129C12.3333,-129 43.6667,-129 43.6667,-129 49.3333,-129 55,-134.6667 55,-140.3333 55,-140.3333 55,-151.6667 55,-151.6667 55,-157.3333 49.3333,-163 43.6667,-163 43.6667,-163 12.3333,-163 12.3333,-163 6.6667,-163 1,-157.3333 1,-151.6667 1,-151.6667 1,-140.3333 1,-140.3333 1,-134.6667 6.6667,-129 12.3333,-129"/>
 </g>
-<!-- initial_200&#45;&gt;a -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;a</title>
+<!-- __initial&#45;&gt;_a -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_a</title>
 <path fill="none" stroke="#000000" d="M28,-191.9886C28,-187.6293 28,-181.1793 28,-174.4801"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-174.0122 28,-164.0122 24.5001,-174.0122 31.5001,-174.0122"/>
 <text text-anchor="middle" x="29.3895" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- b -->
+<!-- _b -->
 <g id="node3" class="node">
-<title>b</title>
+<title>_b</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-100 0,-100 0,-64 56,-64 56,-100"/>
 <text text-anchor="start" x="24.6646" y="-78.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-65C12.3333,-65 43.6667,-65 43.6667,-65 49.3333,-65 55,-70.6667 55,-76.3333 55,-76.3333 55,-87.6667 55,-87.6667 55,-93.3333 49.3333,-99 43.6667,-99 43.6667,-99 12.3333,-99 12.3333,-99 6.6667,-99 1,-93.3333 1,-87.6667 1,-87.6667 1,-76.3333 1,-76.3333 1,-70.6667 6.6667,-65 12.3333,-65"/>
 </g>
-<!-- a&#45;&gt;b -->
+<!-- _a&#45;&gt;_b -->
 <g id="edge2" class="edge">
-<title>a&#45;&gt;b</title>
+<title>_a&#45;&gt;_b</title>
 <path fill="none" stroke="#000000" d="M28,-127.8314C28,-122.4728 28,-116.4735 28,-110.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-110.4363 28,-100.4363 24.5001,-110.4363 31.5001,-110.4363"/>
 <text text-anchor="middle" x="29.3895" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- c -->
+<!-- _c -->
 <g id="node4" class="node">
-<title>c</title>
+<title>_c</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-36 0,-36 0,0 56,0 56,-36"/>
 <text text-anchor="start" x="25" y="-14.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-1C12.3333,-1 43.6667,-1 43.6667,-1 49.3333,-1 55,-6.6667 55,-12.3333 55,-12.3333 55,-23.6667 55,-23.6667 55,-29.3333 49.3333,-35 43.6667,-35 43.6667,-35 12.3333,-35 12.3333,-35 6.6667,-35 1,-29.3333 1,-23.6667 1,-23.6667 1,-12.3333 1,-12.3333 1,-6.6667 6.6667,-1 12.3333,-1"/>
 </g>
-<!-- b&#45;&gt;c -->
-<g id="edge1" class="edge">
-<title>b&#45;&gt;c</title>
+<!-- _b&#45;&gt;_c -->
+<g id="edge3" class="edge">
+<title>_b&#45;&gt;_c</title>
 <path fill="none" stroke="#000000" d="M28,-63.8314C28,-58.4728 28,-52.4735 28,-46.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-46.4363 28,-36.4363 24.5001,-46.4363 31.5001,-46.4363"/>
 <text text-anchor="middle" x="29.3895" y="-47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>

+ 64 - 52
test/semantics/big_step_maximality/10_orthogonal_take_one.smcat.svg

@@ -4,119 +4,131 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: state transitions Pages: 1 -->
-<svg width="200pt" height="481pt"
- viewBox="0.00 0.00 200.00 481.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 477)">
+<svg width="200pt" height="512pt"
+ viewBox="0.00 0.00 200.00 512.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 508)">
 <title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-477 196,-477 196,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-508 196,-508 196,4 -4,4"/>
 <g id="clust1" class="cluster">
-<title>cluster_p</title>
+<title>cluster__p</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 172,-8 172,-8 178,-8 184,-14 184,-20 184,-20 184,-453 184,-453 184,-459 178,-465 172,-465 172,-465 20,-465 20,-465 14,-465 8,-459 8,-453 8,-453 8,-20 8,-20 8,-14 14,-8 20,-8"/>
 <text text-anchor="start" x="92.6646" y="-446.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">p</text>
 </g>
 <g id="clust2" class="cluster">
-<title>cluster_o0</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M116,-16C116,-16 164,-16 164,-16 170,-16 176,-22 176,-28 176,-28 176,-415 176,-415 176,-421 170,-427 164,-427 164,-427 116,-427 116,-427 110,-427 104,-421 104,-415 104,-415 104,-28 104,-28 104,-22 110,-16 116,-16"/>
+<title>cluster__p_o0</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="104,-16 104,-427 176,-427 176,-16 104,-16"/>
 <text text-anchor="start" x="133.8292" y="-408.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o0</text>
 </g>
 <g id="clust3" class="cluster">
-<title>cluster_o1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36,-16C36,-16 84,-16 84,-16 90,-16 96,-22 96,-28 96,-28 96,-415 96,-415 96,-421 90,-427 84,-427 84,-427 36,-427 36,-427 30,-427 24,-421 24,-415 24,-415 24,-28 24,-28 24,-22 30,-16 36,-16"/>
+<title>cluster__p_o1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-427 96,-427 96,-16 24,-16"/>
 <text text-anchor="start" x="53.8292" y="-408.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o1</text>
 </g>
-<!-- p -->
-<!-- o0 -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="140" cy="-383.5" rx="5.5" ry="5.5"/>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-498.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p -->
+<!-- __initial&#45;&gt;_p -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_p</title>
+<path fill="none" stroke="#000000" d="M16,-492.9533C16,-488.7779 16,-482.5043 16,-475.0332"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-474.9971 16,-464.9971 12.5001,-474.9972 19.5001,-474.9971"/>
+<text text-anchor="middle" x="17.3895" y="-476" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sa -->
+<!-- _p_o0 -->
+<!-- _p_o0_initial -->
 <g id="node4" class="node">
-<title>sa</title>
+<title>_p_o0_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="140" cy="-383.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p_o0_sa -->
+<g id="node5" class="node">
+<title>_p_o0_sa</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="168,-296 112,-296 112,-260 168,-260 168,-296"/>
 <text text-anchor="start" x="133.6646" y="-274.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sa</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M124.3333,-261C124.3333,-261 155.6667,-261 155.6667,-261 161.3333,-261 167,-266.6667 167,-272.3333 167,-272.3333 167,-283.6667 167,-283.6667 167,-289.3333 161.3333,-295 155.6667,-295 155.6667,-295 124.3333,-295 124.3333,-295 118.6667,-295 113,-289.3333 113,-283.6667 113,-283.6667 113,-272.3333 113,-272.3333 113,-266.6667 118.6667,-261 124.3333,-261"/>
 </g>
-<!-- initial_400&#45;&gt;sa -->
+<!-- _p_o0_initial&#45;&gt;_p_o0_sa -->
 <g id="edge2" class="edge">
-<title>initial_400&#45;&gt;sa</title>
+<title>_p_o0_initial&#45;&gt;_p_o0_sa</title>
 <path fill="none" stroke="#000000" d="M140,-377.8288C140,-373.1736 140,-366.4097 140,-360.5 140,-360.5 140,-360.5 140,-313.5 140,-311.1079 140,-308.6252 140,-306.1342"/>
 <polygon fill="#000000" stroke="#000000" points="143.5001,-306.0597 140,-296.0598 136.5001,-306.0598 143.5001,-306.0597"/>
 <text text-anchor="middle" x="141.3895" y="-334" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sb -->
-<g id="node5" class="node">
-<title>sb</title>
+<!-- _p_o0_sb -->
+<g id="node6" class="node">
+<title>_p_o0_sb</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="168,-178 112,-178 112,-142 168,-142 168,-178"/>
 <text text-anchor="start" x="133.6646" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sb</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M124.3333,-143C124.3333,-143 155.6667,-143 155.6667,-143 161.3333,-143 167,-148.6667 167,-154.3333 167,-154.3333 167,-165.6667 167,-165.6667 167,-171.3333 161.3333,-177 155.6667,-177 155.6667,-177 124.3333,-177 124.3333,-177 118.6667,-177 113,-171.3333 113,-165.6667 113,-165.6667 113,-154.3333 113,-154.3333 113,-148.6667 118.6667,-143 124.3333,-143"/>
 </g>
-<!-- sa&#45;&gt;sb -->
-<g id="edge4" class="edge">
-<title>sa&#45;&gt;sb</title>
+<!-- _p_o0_sa&#45;&gt;_p_o0_sb -->
+<g id="edge3" class="edge">
+<title>_p_o0_sa&#45;&gt;_p_o0_sb</title>
 <path fill="none" stroke="#000000" d="M140,-259.9402C140,-254.3497 140,-248.1701 140,-242.5 140,-242.5 140,-242.5 140,-195.5 140,-193.1079 140,-190.6252 140,-188.1342"/>
 <polygon fill="#000000" stroke="#000000" points="143.5001,-188.0597 140,-178.0598 136.5001,-188.0598 143.5001,-188.0597"/>
 <text text-anchor="middle" x="141.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sc -->
-<g id="node6" class="node">
-<title>sc</title>
+<!-- _p_o0_sc -->
+<g id="node7" class="node">
+<title>_p_o0_sc</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="168,-60 112,-60 112,-24 168,-24 168,-60"/>
 <text text-anchor="start" x="134" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sc</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M124.3333,-25C124.3333,-25 155.6667,-25 155.6667,-25 161.3333,-25 167,-30.6667 167,-36.3333 167,-36.3333 167,-47.6667 167,-47.6667 167,-53.3333 161.3333,-59 155.6667,-59 155.6667,-59 124.3333,-59 124.3333,-59 118.6667,-59 113,-53.3333 113,-47.6667 113,-47.6667 113,-36.3333 113,-36.3333 113,-30.6667 118.6667,-25 124.3333,-25"/>
 </g>
-<!-- sb&#45;&gt;sc -->
-<g id="edge3" class="edge">
-<title>sb&#45;&gt;sc</title>
+<!-- _p_o0_sb&#45;&gt;_p_o0_sc -->
+<g id="edge4" class="edge">
+<title>_p_o0_sb&#45;&gt;_p_o0_sc</title>
 <path fill="none" stroke="#000000" d="M140,-141.9402C140,-136.3497 140,-130.1701 140,-124.5 140,-124.5 140,-124.5 140,-77.5 140,-75.1079 140,-72.6252 140,-70.1342"/>
 <polygon fill="#000000" stroke="#000000" points="143.5001,-70.0597 140,-60.0598 136.5001,-70.0598 143.5001,-70.0597"/>
 <text text-anchor="middle" x="141.3895" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- o1 -->
-<!-- initial_401 -->
-<g id="node8" class="node">
-<title>initial_401</title>
+<!-- _p_o1 -->
+<!-- _p_o1_initial -->
+<g id="node9" class="node">
+<title>_p_o1_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="60" cy="-383.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- sd -->
-<g id="node9" class="node">
-<title>sd</title>
+<!-- _p_o1_sd -->
+<g id="node10" class="node">
+<title>_p_o1_sd</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-296 32,-296 32,-260 88,-260 88,-296"/>
 <text text-anchor="start" x="53.6646" y="-274.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sd</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-261C44.3333,-261 75.6667,-261 75.6667,-261 81.3333,-261 87,-266.6667 87,-272.3333 87,-272.3333 87,-283.6667 87,-283.6667 87,-289.3333 81.3333,-295 75.6667,-295 75.6667,-295 44.3333,-295 44.3333,-295 38.6667,-295 33,-289.3333 33,-283.6667 33,-283.6667 33,-272.3333 33,-272.3333 33,-266.6667 38.6667,-261 44.3333,-261"/>
 </g>
-<!-- initial_401&#45;&gt;sd -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;sd</title>
+<!-- _p_o1_initial&#45;&gt;_p_o1_sd -->
+<g id="edge5" class="edge">
+<title>_p_o1_initial&#45;&gt;_p_o1_sd</title>
 <path fill="none" stroke="#000000" d="M60,-377.8288C60,-373.1736 60,-366.4097 60,-360.5 60,-360.5 60,-360.5 60,-313.5 60,-311.1079 60,-308.6252 60,-306.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-306.0597 60,-296.0598 56.5001,-306.0598 63.5001,-306.0597"/>
 <text text-anchor="middle" x="61.3895" y="-334" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- se -->
-<g id="node10" class="node">
-<title>se</title>
+<!-- _p_o1_se -->
+<g id="node11" class="node">
+<title>_p_o1_se</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-178 32,-178 32,-142 88,-142 88,-178"/>
 <text text-anchor="start" x="53.6646" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">se</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-143C44.3333,-143 75.6667,-143 75.6667,-143 81.3333,-143 87,-148.6667 87,-154.3333 87,-154.3333 87,-165.6667 87,-165.6667 87,-171.3333 81.3333,-177 75.6667,-177 75.6667,-177 44.3333,-177 44.3333,-177 38.6667,-177 33,-171.3333 33,-165.6667 33,-165.6667 33,-154.3333 33,-154.3333 33,-148.6667 38.6667,-143 44.3333,-143"/>
 </g>
-<!-- sd&#45;&gt;se -->
+<!-- _p_o1_sd&#45;&gt;_p_o1_se -->
 <g id="edge6" class="edge">
-<title>sd&#45;&gt;se</title>
+<title>_p_o1_sd&#45;&gt;_p_o1_se</title>
 <path fill="none" stroke="#000000" d="M60,-259.9402C60,-254.3497 60,-248.1701 60,-242.5 60,-242.5 60,-242.5 60,-195.5 60,-193.1079 60,-190.6252 60,-188.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-188.0597 60,-178.0598 56.5001,-188.0598 63.5001,-188.0597"/>
 <text text-anchor="middle" x="61.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sf -->
-<g id="node11" class="node">
-<title>sf</title>
+<!-- _p_o1_sf -->
+<g id="node12" class="node">
+<title>_p_o1_sf</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-60 32,-60 32,-24 88,-24 88,-60"/>
 <text text-anchor="start" x="55.3326" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sf</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-25C44.3333,-25 75.6667,-25 75.6667,-25 81.3333,-25 87,-30.6667 87,-36.3333 87,-36.3333 87,-47.6667 87,-47.6667 87,-53.3333 81.3333,-59 75.6667,-59 75.6667,-59 44.3333,-59 44.3333,-59 38.6667,-59 33,-53.3333 33,-47.6667 33,-47.6667 33,-36.3333 33,-36.3333 33,-30.6667 38.6667,-25 44.3333,-25"/>
 </g>
-<!-- se&#45;&gt;sf -->
-<g id="edge5" class="edge">
-<title>se&#45;&gt;sf</title>
+<!-- _p_o1_se&#45;&gt;_p_o1_sf -->
+<g id="edge7" class="edge">
+<title>_p_o1_se&#45;&gt;_p_o1_sf</title>
 <path fill="none" stroke="#000000" d="M60,-141.9402C60,-136.3497 60,-130.1701 60,-124.5 60,-124.5 60,-124.5 60,-77.5 60,-75.1079 60,-72.6252 60,-70.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-70.0597 60,-60.0598 56.5001,-70.0598 63.5001,-70.0597"/>
 <text text-anchor="middle" x="61.3895" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>

+ 0 - 125
test/semantics/big_step_maximality/11_orthogonal_take_many.svg

@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="200pt" height="481pt"
- viewBox="0.00 0.00 200.00 481.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 477)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-477 196,-477 196,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_p</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 172,-8 172,-8 178,-8 184,-14 184,-20 184,-20 184,-453 184,-453 184,-459 178,-465 172,-465 172,-465 20,-465 20,-465 14,-465 8,-459 8,-453 8,-453 8,-20 8,-20 8,-14 14,-8 20,-8"/>
-<text text-anchor="start" x="92.6646" y="-446.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">p</text>
-</g>
-<g id="clust2" class="cluster">
-<title>cluster_o0</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M116,-16C116,-16 164,-16 164,-16 170,-16 176,-22 176,-28 176,-28 176,-415 176,-415 176,-421 170,-427 164,-427 164,-427 116,-427 116,-427 110,-427 104,-421 104,-415 104,-415 104,-28 104,-28 104,-22 110,-16 116,-16"/>
-<text text-anchor="start" x="133.8292" y="-408.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o0</text>
-</g>
-<g id="clust3" class="cluster">
-<title>cluster_o1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36,-16C36,-16 84,-16 84,-16 90,-16 96,-22 96,-28 96,-28 96,-415 96,-415 96,-421 90,-427 84,-427 84,-427 36,-427 36,-427 30,-427 24,-421 24,-415 24,-415 24,-28 24,-28 24,-22 30,-16 36,-16"/>
-<text text-anchor="start" x="53.8292" y="-408.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o1</text>
-</g>
-<!-- p -->
-<!-- o0 -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="140" cy="-383.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- sa -->
-<g id="node4" class="node">
-<title>sa</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="168,-296 112,-296 112,-260 168,-260 168,-296"/>
-<text text-anchor="start" x="133.6646" y="-274.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sa</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M124.3333,-261C124.3333,-261 155.6667,-261 155.6667,-261 161.3333,-261 167,-266.6667 167,-272.3333 167,-272.3333 167,-283.6667 167,-283.6667 167,-289.3333 161.3333,-295 155.6667,-295 155.6667,-295 124.3333,-295 124.3333,-295 118.6667,-295 113,-289.3333 113,-283.6667 113,-283.6667 113,-272.3333 113,-272.3333 113,-266.6667 118.6667,-261 124.3333,-261"/>
-</g>
-<!-- initial_400&#45;&gt;sa -->
-<g id="edge2" class="edge">
-<title>initial_400&#45;&gt;sa</title>
-<path fill="none" stroke="#000000" d="M140,-377.8288C140,-373.1736 140,-366.4097 140,-360.5 140,-360.5 140,-360.5 140,-313.5 140,-311.1079 140,-308.6252 140,-306.1342"/>
-<polygon fill="#000000" stroke="#000000" points="143.5001,-306.0597 140,-296.0598 136.5001,-306.0598 143.5001,-306.0597"/>
-<text text-anchor="middle" x="141.3895" y="-334" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- sb -->
-<g id="node5" class="node">
-<title>sb</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="168,-178 112,-178 112,-142 168,-142 168,-178"/>
-<text text-anchor="start" x="133.6646" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sb</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M124.3333,-143C124.3333,-143 155.6667,-143 155.6667,-143 161.3333,-143 167,-148.6667 167,-154.3333 167,-154.3333 167,-165.6667 167,-165.6667 167,-171.3333 161.3333,-177 155.6667,-177 155.6667,-177 124.3333,-177 124.3333,-177 118.6667,-177 113,-171.3333 113,-165.6667 113,-165.6667 113,-154.3333 113,-154.3333 113,-148.6667 118.6667,-143 124.3333,-143"/>
-</g>
-<!-- sa&#45;&gt;sb -->
-<g id="edge4" class="edge">
-<title>sa&#45;&gt;sb</title>
-<path fill="none" stroke="#000000" d="M140,-259.9402C140,-254.3497 140,-248.1701 140,-242.5 140,-242.5 140,-242.5 140,-195.5 140,-193.1079 140,-190.6252 140,-188.1342"/>
-<polygon fill="#000000" stroke="#000000" points="143.5001,-188.0597 140,-178.0598 136.5001,-188.0598 143.5001,-188.0597"/>
-<text text-anchor="middle" x="141.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- sc -->
-<g id="node6" class="node">
-<title>sc</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="168,-60 112,-60 112,-24 168,-24 168,-60"/>
-<text text-anchor="start" x="134" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sc</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M124.3333,-25C124.3333,-25 155.6667,-25 155.6667,-25 161.3333,-25 167,-30.6667 167,-36.3333 167,-36.3333 167,-47.6667 167,-47.6667 167,-53.3333 161.3333,-59 155.6667,-59 155.6667,-59 124.3333,-59 124.3333,-59 118.6667,-59 113,-53.3333 113,-47.6667 113,-47.6667 113,-36.3333 113,-36.3333 113,-30.6667 118.6667,-25 124.3333,-25"/>
-</g>
-<!-- sb&#45;&gt;sc -->
-<g id="edge3" class="edge">
-<title>sb&#45;&gt;sc</title>
-<path fill="none" stroke="#000000" d="M140,-141.9402C140,-136.3497 140,-130.1701 140,-124.5 140,-124.5 140,-124.5 140,-77.5 140,-75.1079 140,-72.6252 140,-70.1342"/>
-<polygon fill="#000000" stroke="#000000" points="143.5001,-70.0597 140,-60.0598 136.5001,-70.0598 143.5001,-70.0597"/>
-<text text-anchor="middle" x="141.3895" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- o1 -->
-<!-- initial_401 -->
-<g id="node8" class="node">
-<title>initial_401</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="60" cy="-383.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- sd -->
-<g id="node9" class="node">
-<title>sd</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-296 32,-296 32,-260 88,-260 88,-296"/>
-<text text-anchor="start" x="53.6646" y="-274.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sd</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-261C44.3333,-261 75.6667,-261 75.6667,-261 81.3333,-261 87,-266.6667 87,-272.3333 87,-272.3333 87,-283.6667 87,-283.6667 87,-289.3333 81.3333,-295 75.6667,-295 75.6667,-295 44.3333,-295 44.3333,-295 38.6667,-295 33,-289.3333 33,-283.6667 33,-283.6667 33,-272.3333 33,-272.3333 33,-266.6667 38.6667,-261 44.3333,-261"/>
-</g>
-<!-- initial_401&#45;&gt;sd -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;sd</title>
-<path fill="none" stroke="#000000" d="M60,-377.8288C60,-373.1736 60,-366.4097 60,-360.5 60,-360.5 60,-360.5 60,-313.5 60,-311.1079 60,-308.6252 60,-306.1342"/>
-<polygon fill="#000000" stroke="#000000" points="63.5001,-306.0597 60,-296.0598 56.5001,-306.0598 63.5001,-306.0597"/>
-<text text-anchor="middle" x="61.3895" y="-334" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- se -->
-<g id="node10" class="node">
-<title>se</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-178 32,-178 32,-142 88,-142 88,-178"/>
-<text text-anchor="start" x="53.6646" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">se</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-143C44.3333,-143 75.6667,-143 75.6667,-143 81.3333,-143 87,-148.6667 87,-154.3333 87,-154.3333 87,-165.6667 87,-165.6667 87,-171.3333 81.3333,-177 75.6667,-177 75.6667,-177 44.3333,-177 44.3333,-177 38.6667,-177 33,-171.3333 33,-165.6667 33,-165.6667 33,-154.3333 33,-154.3333 33,-148.6667 38.6667,-143 44.3333,-143"/>
-</g>
-<!-- sd&#45;&gt;se -->
-<g id="edge6" class="edge">
-<title>sd&#45;&gt;se</title>
-<path fill="none" stroke="#000000" d="M60,-259.9402C60,-254.3497 60,-248.1701 60,-242.5 60,-242.5 60,-242.5 60,-195.5 60,-193.1079 60,-190.6252 60,-188.1342"/>
-<polygon fill="#000000" stroke="#000000" points="63.5001,-188.0597 60,-178.0598 56.5001,-188.0598 63.5001,-188.0597"/>
-<text text-anchor="middle" x="61.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- sf -->
-<g id="node11" class="node">
-<title>sf</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-60 32,-60 32,-24 88,-24 88,-60"/>
-<text text-anchor="start" x="55.3326" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sf</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-25C44.3333,-25 75.6667,-25 75.6667,-25 81.3333,-25 87,-30.6667 87,-36.3333 87,-36.3333 87,-47.6667 87,-47.6667 87,-53.3333 81.3333,-59 75.6667,-59 75.6667,-59 44.3333,-59 44.3333,-59 38.6667,-59 33,-53.3333 33,-47.6667 33,-47.6667 33,-36.3333 33,-36.3333 33,-30.6667 38.6667,-25 44.3333,-25"/>
-</g>
-<!-- se&#45;&gt;sf -->
-<g id="edge5" class="edge">
-<title>se&#45;&gt;sf</title>
-<path fill="none" stroke="#000000" d="M60,-141.9402C60,-136.3497 60,-130.1701 60,-124.5 60,-124.5 60,-124.5 60,-77.5 60,-75.1079 60,-72.6252 60,-70.1342"/>
-<polygon fill="#000000" stroke="#000000" points="63.5001,-70.0597 60,-60.0598 56.5001,-70.0598 63.5001,-70.0597"/>
-<text text-anchor="middle" x="61.3895" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-</g>
-</svg>

+ 64 - 52
test/semantics/big_step_maximality/10_orthogonal_take_one.svg

@@ -4,119 +4,131 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: state transitions Pages: 1 -->
-<svg width="200pt" height="481pt"
- viewBox="0.00 0.00 200.00 481.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 477)">
+<svg width="200pt" height="512pt"
+ viewBox="0.00 0.00 200.00 512.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 508)">
 <title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-477 196,-477 196,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-508 196,-508 196,4 -4,4"/>
 <g id="clust1" class="cluster">
-<title>cluster_p</title>
+<title>cluster__p</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 172,-8 172,-8 178,-8 184,-14 184,-20 184,-20 184,-453 184,-453 184,-459 178,-465 172,-465 172,-465 20,-465 20,-465 14,-465 8,-459 8,-453 8,-453 8,-20 8,-20 8,-14 14,-8 20,-8"/>
 <text text-anchor="start" x="92.6646" y="-446.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">p</text>
 </g>
 <g id="clust2" class="cluster">
-<title>cluster_o0</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M116,-16C116,-16 164,-16 164,-16 170,-16 176,-22 176,-28 176,-28 176,-415 176,-415 176,-421 170,-427 164,-427 164,-427 116,-427 116,-427 110,-427 104,-421 104,-415 104,-415 104,-28 104,-28 104,-22 110,-16 116,-16"/>
+<title>cluster__p_o0</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="104,-16 104,-427 176,-427 176,-16 104,-16"/>
 <text text-anchor="start" x="133.8292" y="-408.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o0</text>
 </g>
 <g id="clust3" class="cluster">
-<title>cluster_o1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36,-16C36,-16 84,-16 84,-16 90,-16 96,-22 96,-28 96,-28 96,-415 96,-415 96,-421 90,-427 84,-427 84,-427 36,-427 36,-427 30,-427 24,-421 24,-415 24,-415 24,-28 24,-28 24,-22 30,-16 36,-16"/>
+<title>cluster__p_o1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-427 96,-427 96,-16 24,-16"/>
 <text text-anchor="start" x="53.8292" y="-408.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o1</text>
 </g>
-<!-- p -->
-<!-- o0 -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="140" cy="-383.5" rx="5.5" ry="5.5"/>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-498.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p -->
+<!-- __initial&#45;&gt;_p -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_p</title>
+<path fill="none" stroke="#000000" d="M16,-492.9533C16,-488.7779 16,-482.5043 16,-475.0332"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-474.9971 16,-464.9971 12.5001,-474.9972 19.5001,-474.9971"/>
+<text text-anchor="middle" x="17.3895" y="-476" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sa -->
+<!-- _p_o0 -->
+<!-- _p_o0_initial -->
 <g id="node4" class="node">
-<title>sa</title>
+<title>_p_o0_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="140" cy="-383.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p_o0_sa -->
+<g id="node5" class="node">
+<title>_p_o0_sa</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="168,-296 112,-296 112,-260 168,-260 168,-296"/>
 <text text-anchor="start" x="133.6646" y="-274.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sa</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M124.3333,-261C124.3333,-261 155.6667,-261 155.6667,-261 161.3333,-261 167,-266.6667 167,-272.3333 167,-272.3333 167,-283.6667 167,-283.6667 167,-289.3333 161.3333,-295 155.6667,-295 155.6667,-295 124.3333,-295 124.3333,-295 118.6667,-295 113,-289.3333 113,-283.6667 113,-283.6667 113,-272.3333 113,-272.3333 113,-266.6667 118.6667,-261 124.3333,-261"/>
 </g>
-<!-- initial_400&#45;&gt;sa -->
+<!-- _p_o0_initial&#45;&gt;_p_o0_sa -->
 <g id="edge2" class="edge">
-<title>initial_400&#45;&gt;sa</title>
+<title>_p_o0_initial&#45;&gt;_p_o0_sa</title>
 <path fill="none" stroke="#000000" d="M140,-377.8288C140,-373.1736 140,-366.4097 140,-360.5 140,-360.5 140,-360.5 140,-313.5 140,-311.1079 140,-308.6252 140,-306.1342"/>
 <polygon fill="#000000" stroke="#000000" points="143.5001,-306.0597 140,-296.0598 136.5001,-306.0598 143.5001,-306.0597"/>
 <text text-anchor="middle" x="141.3895" y="-334" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sb -->
-<g id="node5" class="node">
-<title>sb</title>
+<!-- _p_o0_sb -->
+<g id="node6" class="node">
+<title>_p_o0_sb</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="168,-178 112,-178 112,-142 168,-142 168,-178"/>
 <text text-anchor="start" x="133.6646" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sb</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M124.3333,-143C124.3333,-143 155.6667,-143 155.6667,-143 161.3333,-143 167,-148.6667 167,-154.3333 167,-154.3333 167,-165.6667 167,-165.6667 167,-171.3333 161.3333,-177 155.6667,-177 155.6667,-177 124.3333,-177 124.3333,-177 118.6667,-177 113,-171.3333 113,-165.6667 113,-165.6667 113,-154.3333 113,-154.3333 113,-148.6667 118.6667,-143 124.3333,-143"/>
 </g>
-<!-- sa&#45;&gt;sb -->
-<g id="edge4" class="edge">
-<title>sa&#45;&gt;sb</title>
+<!-- _p_o0_sa&#45;&gt;_p_o0_sb -->
+<g id="edge3" class="edge">
+<title>_p_o0_sa&#45;&gt;_p_o0_sb</title>
 <path fill="none" stroke="#000000" d="M140,-259.9402C140,-254.3497 140,-248.1701 140,-242.5 140,-242.5 140,-242.5 140,-195.5 140,-193.1079 140,-190.6252 140,-188.1342"/>
 <polygon fill="#000000" stroke="#000000" points="143.5001,-188.0597 140,-178.0598 136.5001,-188.0598 143.5001,-188.0597"/>
 <text text-anchor="middle" x="141.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sc -->
-<g id="node6" class="node">
-<title>sc</title>
+<!-- _p_o0_sc -->
+<g id="node7" class="node">
+<title>_p_o0_sc</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="168,-60 112,-60 112,-24 168,-24 168,-60"/>
 <text text-anchor="start" x="134" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sc</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M124.3333,-25C124.3333,-25 155.6667,-25 155.6667,-25 161.3333,-25 167,-30.6667 167,-36.3333 167,-36.3333 167,-47.6667 167,-47.6667 167,-53.3333 161.3333,-59 155.6667,-59 155.6667,-59 124.3333,-59 124.3333,-59 118.6667,-59 113,-53.3333 113,-47.6667 113,-47.6667 113,-36.3333 113,-36.3333 113,-30.6667 118.6667,-25 124.3333,-25"/>
 </g>
-<!-- sb&#45;&gt;sc -->
-<g id="edge3" class="edge">
-<title>sb&#45;&gt;sc</title>
+<!-- _p_o0_sb&#45;&gt;_p_o0_sc -->
+<g id="edge4" class="edge">
+<title>_p_o0_sb&#45;&gt;_p_o0_sc</title>
 <path fill="none" stroke="#000000" d="M140,-141.9402C140,-136.3497 140,-130.1701 140,-124.5 140,-124.5 140,-124.5 140,-77.5 140,-75.1079 140,-72.6252 140,-70.1342"/>
 <polygon fill="#000000" stroke="#000000" points="143.5001,-70.0597 140,-60.0598 136.5001,-70.0598 143.5001,-70.0597"/>
 <text text-anchor="middle" x="141.3895" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- o1 -->
-<!-- initial_401 -->
-<g id="node8" class="node">
-<title>initial_401</title>
+<!-- _p_o1 -->
+<!-- _p_o1_initial -->
+<g id="node9" class="node">
+<title>_p_o1_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="60" cy="-383.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- sd -->
-<g id="node9" class="node">
-<title>sd</title>
+<!-- _p_o1_sd -->
+<g id="node10" class="node">
+<title>_p_o1_sd</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-296 32,-296 32,-260 88,-260 88,-296"/>
 <text text-anchor="start" x="53.6646" y="-274.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sd</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-261C44.3333,-261 75.6667,-261 75.6667,-261 81.3333,-261 87,-266.6667 87,-272.3333 87,-272.3333 87,-283.6667 87,-283.6667 87,-289.3333 81.3333,-295 75.6667,-295 75.6667,-295 44.3333,-295 44.3333,-295 38.6667,-295 33,-289.3333 33,-283.6667 33,-283.6667 33,-272.3333 33,-272.3333 33,-266.6667 38.6667,-261 44.3333,-261"/>
 </g>
-<!-- initial_401&#45;&gt;sd -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;sd</title>
+<!-- _p_o1_initial&#45;&gt;_p_o1_sd -->
+<g id="edge5" class="edge">
+<title>_p_o1_initial&#45;&gt;_p_o1_sd</title>
 <path fill="none" stroke="#000000" d="M60,-377.8288C60,-373.1736 60,-366.4097 60,-360.5 60,-360.5 60,-360.5 60,-313.5 60,-311.1079 60,-308.6252 60,-306.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-306.0597 60,-296.0598 56.5001,-306.0598 63.5001,-306.0597"/>
 <text text-anchor="middle" x="61.3895" y="-334" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- se -->
-<g id="node10" class="node">
-<title>se</title>
+<!-- _p_o1_se -->
+<g id="node11" class="node">
+<title>_p_o1_se</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-178 32,-178 32,-142 88,-142 88,-178"/>
 <text text-anchor="start" x="53.6646" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">se</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-143C44.3333,-143 75.6667,-143 75.6667,-143 81.3333,-143 87,-148.6667 87,-154.3333 87,-154.3333 87,-165.6667 87,-165.6667 87,-171.3333 81.3333,-177 75.6667,-177 75.6667,-177 44.3333,-177 44.3333,-177 38.6667,-177 33,-171.3333 33,-165.6667 33,-165.6667 33,-154.3333 33,-154.3333 33,-148.6667 38.6667,-143 44.3333,-143"/>
 </g>
-<!-- sd&#45;&gt;se -->
+<!-- _p_o1_sd&#45;&gt;_p_o1_se -->
 <g id="edge6" class="edge">
-<title>sd&#45;&gt;se</title>
+<title>_p_o1_sd&#45;&gt;_p_o1_se</title>
 <path fill="none" stroke="#000000" d="M60,-259.9402C60,-254.3497 60,-248.1701 60,-242.5 60,-242.5 60,-242.5 60,-195.5 60,-193.1079 60,-190.6252 60,-188.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-188.0597 60,-178.0598 56.5001,-188.0598 63.5001,-188.0597"/>
 <text text-anchor="middle" x="61.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sf -->
-<g id="node11" class="node">
-<title>sf</title>
+<!-- _p_o1_sf -->
+<g id="node12" class="node">
+<title>_p_o1_sf</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-60 32,-60 32,-24 88,-24 88,-60"/>
 <text text-anchor="start" x="55.3326" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sf</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-25C44.3333,-25 75.6667,-25 75.6667,-25 81.3333,-25 87,-30.6667 87,-36.3333 87,-36.3333 87,-47.6667 87,-47.6667 87,-53.3333 81.3333,-59 75.6667,-59 75.6667,-59 44.3333,-59 44.3333,-59 38.6667,-59 33,-53.3333 33,-47.6667 33,-47.6667 33,-36.3333 33,-36.3333 33,-30.6667 38.6667,-25 44.3333,-25"/>
 </g>
-<!-- se&#45;&gt;sf -->
-<g id="edge5" class="edge">
-<title>se&#45;&gt;sf</title>
+<!-- _p_o1_se&#45;&gt;_p_o1_sf -->
+<g id="edge7" class="edge">
+<title>_p_o1_se&#45;&gt;_p_o1_sf</title>
 <path fill="none" stroke="#000000" d="M60,-141.9402C60,-136.3497 60,-130.1701 60,-124.5 60,-124.5 60,-124.5 60,-77.5 60,-75.1079 60,-72.6252 60,-70.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-70.0597 60,-60.0598 56.5001,-70.0598 63.5001,-70.0597"/>
 <text text-anchor="middle" x="61.3895" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>

+ 17 - 17
test/semantics/event_lifeline/10_take_many_next_small_step.svg

@@ -9,49 +9,49 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 207)">
 <title>state transitions</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-207 60,-207 60,4 -4,4"/>
-<!-- initial_200 -->
+<!-- __initial -->
 <g id="node1" class="node">
-<title>initial_200</title>
+<title>__initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="28" cy="-197.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- a -->
+<!-- _a -->
 <g id="node2" class="node">
-<title>a</title>
+<title>_a</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-164 0,-164 0,-128 56,-128 56,-164"/>
 <text text-anchor="start" x="24.6646" y="-142.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-129C12.3333,-129 43.6667,-129 43.6667,-129 49.3333,-129 55,-134.6667 55,-140.3333 55,-140.3333 55,-151.6667 55,-151.6667 55,-157.3333 49.3333,-163 43.6667,-163 43.6667,-163 12.3333,-163 12.3333,-163 6.6667,-163 1,-157.3333 1,-151.6667 1,-151.6667 1,-140.3333 1,-140.3333 1,-134.6667 6.6667,-129 12.3333,-129"/>
 </g>
-<!-- initial_200&#45;&gt;a -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;a</title>
+<!-- __initial&#45;&gt;_a -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_a</title>
 <path fill="none" stroke="#000000" d="M28,-191.9886C28,-187.6293 28,-181.1793 28,-174.4801"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-174.0122 28,-164.0122 24.5001,-174.0122 31.5001,-174.0122"/>
 <text text-anchor="middle" x="29.3895" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- b -->
+<!-- _b -->
 <g id="node3" class="node">
-<title>b</title>
+<title>_b</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-100 0,-100 0,-64 56,-64 56,-100"/>
 <text text-anchor="start" x="24.6646" y="-78.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-65C12.3333,-65 43.6667,-65 43.6667,-65 49.3333,-65 55,-70.6667 55,-76.3333 55,-76.3333 55,-87.6667 55,-87.6667 55,-93.3333 49.3333,-99 43.6667,-99 43.6667,-99 12.3333,-99 12.3333,-99 6.6667,-99 1,-93.3333 1,-87.6667 1,-87.6667 1,-76.3333 1,-76.3333 1,-70.6667 6.6667,-65 12.3333,-65"/>
 </g>
-<!-- a&#45;&gt;b -->
+<!-- _a&#45;&gt;_b -->
 <g id="edge2" class="edge">
-<title>a&#45;&gt;b</title>
+<title>_a&#45;&gt;_b</title>
 <path fill="none" stroke="#000000" d="M28,-127.8314C28,-122.4728 28,-116.4735 28,-110.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-110.4363 28,-100.4363 24.5001,-110.4363 31.5001,-110.4363"/>
-<text text-anchor="start" x="28" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<text text-anchor="start" x="28" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
-<!-- c -->
+<!-- _c -->
 <g id="node4" class="node">
-<title>c</title>
+<title>_c</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-36 0,-36 0,0 56,0 56,-36"/>
 <text text-anchor="start" x="25" y="-14.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-1C12.3333,-1 43.6667,-1 43.6667,-1 49.3333,-1 55,-6.6667 55,-12.3333 55,-12.3333 55,-23.6667 55,-23.6667 55,-29.3333 49.3333,-35 43.6667,-35 43.6667,-35 12.3333,-35 12.3333,-35 6.6667,-35 1,-29.3333 1,-23.6667 1,-23.6667 1,-12.3333 1,-12.3333 1,-6.6667 6.6667,-1 12.3333,-1"/>
 </g>
-<!-- b&#45;&gt;c -->
-<g id="edge1" class="edge">
-<title>b&#45;&gt;c</title>
+<!-- _b&#45;&gt;_c -->
+<g id="edge3" class="edge">
+<title>_b&#45;&gt;_c</title>
 <path fill="none" stroke="#000000" d="M28,-63.8314C28,-58.4728 28,-52.4735 28,-46.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-46.4363 28,-36.4363 24.5001,-46.4363 31.5001,-46.4363"/>
 <text text-anchor="start" x="28" y="-47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>

+ 17 - 17
test/semantics/event_lifeline/00_take_one_next_small_step.svg

@@ -9,49 +9,49 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 207)">
 <title>state transitions</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-207 60,-207 60,4 -4,4"/>
-<!-- initial_200 -->
+<!-- __initial -->
 <g id="node1" class="node">
-<title>initial_200</title>
+<title>__initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="28" cy="-197.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- a -->
+<!-- _a -->
 <g id="node2" class="node">
-<title>a</title>
+<title>_a</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-164 0,-164 0,-128 56,-128 56,-164"/>
 <text text-anchor="start" x="24.6646" y="-142.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-129C12.3333,-129 43.6667,-129 43.6667,-129 49.3333,-129 55,-134.6667 55,-140.3333 55,-140.3333 55,-151.6667 55,-151.6667 55,-157.3333 49.3333,-163 43.6667,-163 43.6667,-163 12.3333,-163 12.3333,-163 6.6667,-163 1,-157.3333 1,-151.6667 1,-151.6667 1,-140.3333 1,-140.3333 1,-134.6667 6.6667,-129 12.3333,-129"/>
 </g>
-<!-- initial_200&#45;&gt;a -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;a</title>
+<!-- __initial&#45;&gt;_a -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_a</title>
 <path fill="none" stroke="#000000" d="M28,-191.9886C28,-187.6293 28,-181.1793 28,-174.4801"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-174.0122 28,-164.0122 24.5001,-174.0122 31.5001,-174.0122"/>
 <text text-anchor="middle" x="29.3895" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- b -->
+<!-- _b -->
 <g id="node3" class="node">
-<title>b</title>
+<title>_b</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-100 0,-100 0,-64 56,-64 56,-100"/>
 <text text-anchor="start" x="24.6646" y="-78.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-65C12.3333,-65 43.6667,-65 43.6667,-65 49.3333,-65 55,-70.6667 55,-76.3333 55,-76.3333 55,-87.6667 55,-87.6667 55,-93.3333 49.3333,-99 43.6667,-99 43.6667,-99 12.3333,-99 12.3333,-99 6.6667,-99 1,-93.3333 1,-87.6667 1,-87.6667 1,-76.3333 1,-76.3333 1,-70.6667 6.6667,-65 12.3333,-65"/>
 </g>
-<!-- a&#45;&gt;b -->
+<!-- _a&#45;&gt;_b -->
 <g id="edge2" class="edge">
-<title>a&#45;&gt;b</title>
+<title>_a&#45;&gt;_b</title>
 <path fill="none" stroke="#000000" d="M28,-127.8314C28,-122.4728 28,-116.4735 28,-110.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-110.4363 28,-100.4363 24.5001,-110.4363 31.5001,-110.4363"/>
-<text text-anchor="start" x="28" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<text text-anchor="start" x="28" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
-<!-- c -->
+<!-- _c -->
 <g id="node4" class="node">
-<title>c</title>
+<title>_c</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-36 0,-36 0,0 56,0 56,-36"/>
 <text text-anchor="start" x="25" y="-14.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-1C12.3333,-1 43.6667,-1 43.6667,-1 49.3333,-1 55,-6.6667 55,-12.3333 55,-12.3333 55,-23.6667 55,-23.6667 55,-29.3333 49.3333,-35 43.6667,-35 43.6667,-35 12.3333,-35 12.3333,-35 6.6667,-35 1,-29.3333 1,-23.6667 1,-23.6667 1,-12.3333 1,-12.3333 1,-6.6667 6.6667,-1 12.3333,-1"/>
 </g>
-<!-- b&#45;&gt;c -->
-<g id="edge1" class="edge">
-<title>b&#45;&gt;c</title>
+<!-- _b&#45;&gt;_c -->
+<g id="edge3" class="edge">
+<title>_b&#45;&gt;_c</title>
 <path fill="none" stroke="#000000" d="M28,-63.8314C28,-58.4728 28,-52.4735 28,-46.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-46.4363 28,-36.4363 24.5001,-46.4363 31.5001,-46.4363"/>
 <text text-anchor="start" x="28" y="-47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>

+ 17 - 17
test/semantics/event_lifeline/02_take_one_queue.svg

@@ -9,49 +9,49 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 207)">
 <title>state transitions</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-207 60,-207 60,4 -4,4"/>
-<!-- initial_200 -->
+<!-- __initial -->
 <g id="node1" class="node">
-<title>initial_200</title>
+<title>__initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="28" cy="-197.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- a -->
+<!-- _a -->
 <g id="node2" class="node">
-<title>a</title>
+<title>_a</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-164 0,-164 0,-128 56,-128 56,-164"/>
 <text text-anchor="start" x="24.6646" y="-142.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-129C12.3333,-129 43.6667,-129 43.6667,-129 49.3333,-129 55,-134.6667 55,-140.3333 55,-140.3333 55,-151.6667 55,-151.6667 55,-157.3333 49.3333,-163 43.6667,-163 43.6667,-163 12.3333,-163 12.3333,-163 6.6667,-163 1,-157.3333 1,-151.6667 1,-151.6667 1,-140.3333 1,-140.3333 1,-134.6667 6.6667,-129 12.3333,-129"/>
 </g>
-<!-- initial_200&#45;&gt;a -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;a</title>
+<!-- __initial&#45;&gt;_a -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_a</title>
 <path fill="none" stroke="#000000" d="M28,-191.9886C28,-187.6293 28,-181.1793 28,-174.4801"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-174.0122 28,-164.0122 24.5001,-174.0122 31.5001,-174.0122"/>
 <text text-anchor="middle" x="29.3895" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- b -->
+<!-- _b -->
 <g id="node3" class="node">
-<title>b</title>
+<title>_b</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-100 0,-100 0,-64 56,-64 56,-100"/>
 <text text-anchor="start" x="24.6646" y="-78.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-65C12.3333,-65 43.6667,-65 43.6667,-65 49.3333,-65 55,-70.6667 55,-76.3333 55,-76.3333 55,-87.6667 55,-87.6667 55,-93.3333 49.3333,-99 43.6667,-99 43.6667,-99 12.3333,-99 12.3333,-99 6.6667,-99 1,-93.3333 1,-87.6667 1,-87.6667 1,-76.3333 1,-76.3333 1,-70.6667 6.6667,-65 12.3333,-65"/>
 </g>
-<!-- a&#45;&gt;b -->
+<!-- _a&#45;&gt;_b -->
 <g id="edge2" class="edge">
-<title>a&#45;&gt;b</title>
+<title>_a&#45;&gt;_b</title>
 <path fill="none" stroke="#000000" d="M28,-127.8314C28,-122.4728 28,-116.4735 28,-110.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-110.4363 28,-100.4363 24.5001,-110.4363 31.5001,-110.4363"/>
-<text text-anchor="start" x="28" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<text text-anchor="start" x="28" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
-<!-- c -->
+<!-- _c -->
 <g id="node4" class="node">
-<title>c</title>
+<title>_c</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-36 0,-36 0,0 56,0 56,-36"/>
 <text text-anchor="start" x="25" y="-14.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-1C12.3333,-1 43.6667,-1 43.6667,-1 49.3333,-1 55,-6.6667 55,-12.3333 55,-12.3333 55,-23.6667 55,-23.6667 55,-29.3333 49.3333,-35 43.6667,-35 43.6667,-35 12.3333,-35 12.3333,-35 6.6667,-35 1,-29.3333 1,-23.6667 1,-23.6667 1,-12.3333 1,-12.3333 1,-6.6667 6.6667,-1 12.3333,-1"/>
 </g>
-<!-- b&#45;&gt;c -->
-<g id="edge1" class="edge">
-<title>b&#45;&gt;c</title>
+<!-- _b&#45;&gt;_c -->
+<g id="edge3" class="edge">
+<title>_b&#45;&gt;_c</title>
 <path fill="none" stroke="#000000" d="M28,-63.8314C28,-58.4728 28,-52.4735 28,-46.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-46.4363 28,-36.4363 24.5001,-46.4363 31.5001,-46.4363"/>
 <text text-anchor="start" x="28" y="-47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>

+ 17 - 17
test/semantics/event_lifeline/11_take_many_next_combo_step.svg

@@ -9,49 +9,49 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 207)">
 <title>state transitions</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-207 60,-207 60,4 -4,4"/>
-<!-- initial_200 -->
+<!-- __initial -->
 <g id="node1" class="node">
-<title>initial_200</title>
+<title>__initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="28" cy="-197.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- a -->
+<!-- _a -->
 <g id="node2" class="node">
-<title>a</title>
+<title>_a</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-164 0,-164 0,-128 56,-128 56,-164"/>
 <text text-anchor="start" x="24.6646" y="-142.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-129C12.3333,-129 43.6667,-129 43.6667,-129 49.3333,-129 55,-134.6667 55,-140.3333 55,-140.3333 55,-151.6667 55,-151.6667 55,-157.3333 49.3333,-163 43.6667,-163 43.6667,-163 12.3333,-163 12.3333,-163 6.6667,-163 1,-157.3333 1,-151.6667 1,-151.6667 1,-140.3333 1,-140.3333 1,-134.6667 6.6667,-129 12.3333,-129"/>
 </g>
-<!-- initial_200&#45;&gt;a -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;a</title>
+<!-- __initial&#45;&gt;_a -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_a</title>
 <path fill="none" stroke="#000000" d="M28,-191.9886C28,-187.6293 28,-181.1793 28,-174.4801"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-174.0122 28,-164.0122 24.5001,-174.0122 31.5001,-174.0122"/>
 <text text-anchor="middle" x="29.3895" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- b -->
+<!-- _b -->
 <g id="node3" class="node">
-<title>b</title>
+<title>_b</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-100 0,-100 0,-64 56,-64 56,-100"/>
 <text text-anchor="start" x="24.6646" y="-78.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-65C12.3333,-65 43.6667,-65 43.6667,-65 49.3333,-65 55,-70.6667 55,-76.3333 55,-76.3333 55,-87.6667 55,-87.6667 55,-93.3333 49.3333,-99 43.6667,-99 43.6667,-99 12.3333,-99 12.3333,-99 6.6667,-99 1,-93.3333 1,-87.6667 1,-87.6667 1,-76.3333 1,-76.3333 1,-70.6667 6.6667,-65 12.3333,-65"/>
 </g>
-<!-- a&#45;&gt;b -->
+<!-- _a&#45;&gt;_b -->
 <g id="edge2" class="edge">
-<title>a&#45;&gt;b</title>
+<title>_a&#45;&gt;_b</title>
 <path fill="none" stroke="#000000" d="M28,-127.8314C28,-122.4728 28,-116.4735 28,-110.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-110.4363 28,-100.4363 24.5001,-110.4363 31.5001,-110.4363"/>
-<text text-anchor="start" x="28" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<text text-anchor="start" x="28" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
-<!-- c -->
+<!-- _c -->
 <g id="node4" class="node">
-<title>c</title>
+<title>_c</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-36 0,-36 0,0 56,0 56,-36"/>
 <text text-anchor="start" x="25" y="-14.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-1C12.3333,-1 43.6667,-1 43.6667,-1 49.3333,-1 55,-6.6667 55,-12.3333 55,-12.3333 55,-23.6667 55,-23.6667 55,-29.3333 49.3333,-35 43.6667,-35 43.6667,-35 12.3333,-35 12.3333,-35 6.6667,-35 1,-29.3333 1,-23.6667 1,-23.6667 1,-12.3333 1,-12.3333 1,-6.6667 6.6667,-1 12.3333,-1"/>
 </g>
-<!-- b&#45;&gt;c -->
-<g id="edge1" class="edge">
-<title>b&#45;&gt;c</title>
+<!-- _b&#45;&gt;_c -->
+<g id="edge3" class="edge">
+<title>_b&#45;&gt;_c</title>
 <path fill="none" stroke="#000000" d="M28,-63.8314C28,-58.4728 28,-52.4735 28,-46.6262"/>
 <polygon fill="#000000" stroke="#000000" points="31.5001,-46.4363 28,-36.4363 24.5001,-46.4363 31.5001,-46.4363"/>
 <text text-anchor="start" x="28" y="-47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>

+ 0 - 60
test/semantics/event_lifeline/12_take_many_queue.svg

@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="64pt" height="211pt"
- viewBox="0.00 0.00 64.00 211.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 207)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-207 60,-207 60,4 -4,4"/>
-<!-- initial_200 -->
-<g id="node1" class="node">
-<title>initial_200</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="28" cy="-197.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- a -->
-<g id="node2" class="node">
-<title>a</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-164 0,-164 0,-128 56,-128 56,-164"/>
-<text text-anchor="start" x="24.6646" y="-142.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-129C12.3333,-129 43.6667,-129 43.6667,-129 49.3333,-129 55,-134.6667 55,-140.3333 55,-140.3333 55,-151.6667 55,-151.6667 55,-157.3333 49.3333,-163 43.6667,-163 43.6667,-163 12.3333,-163 12.3333,-163 6.6667,-163 1,-157.3333 1,-151.6667 1,-151.6667 1,-140.3333 1,-140.3333 1,-134.6667 6.6667,-129 12.3333,-129"/>
-</g>
-<!-- initial_200&#45;&gt;a -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;a</title>
-<path fill="none" stroke="#000000" d="M28,-191.9886C28,-187.6293 28,-181.1793 28,-174.4801"/>
-<polygon fill="#000000" stroke="#000000" points="31.5001,-174.0122 28,-164.0122 24.5001,-174.0122 31.5001,-174.0122"/>
-<text text-anchor="middle" x="29.3895" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- b -->
-<g id="node3" class="node">
-<title>b</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-100 0,-100 0,-64 56,-64 56,-100"/>
-<text text-anchor="start" x="24.6646" y="-78.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-65C12.3333,-65 43.6667,-65 43.6667,-65 49.3333,-65 55,-70.6667 55,-76.3333 55,-76.3333 55,-87.6667 55,-87.6667 55,-93.3333 49.3333,-99 43.6667,-99 43.6667,-99 12.3333,-99 12.3333,-99 6.6667,-99 1,-93.3333 1,-87.6667 1,-87.6667 1,-76.3333 1,-76.3333 1,-70.6667 6.6667,-65 12.3333,-65"/>
-</g>
-<!-- a&#45;&gt;b -->
-<g id="edge2" class="edge">
-<title>a&#45;&gt;b</title>
-<path fill="none" stroke="#000000" d="M28,-127.8314C28,-122.4728 28,-116.4735 28,-110.6262"/>
-<polygon fill="#000000" stroke="#000000" points="31.5001,-110.4363 28,-100.4363 24.5001,-110.4363 31.5001,-110.4363"/>
-<text text-anchor="start" x="28" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
-</g>
-<!-- c -->
-<g id="node4" class="node">
-<title>c</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-36 0,-36 0,0 56,0 56,-36"/>
-<text text-anchor="start" x="25" y="-14.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-1C12.3333,-1 43.6667,-1 43.6667,-1 49.3333,-1 55,-6.6667 55,-12.3333 55,-12.3333 55,-23.6667 55,-23.6667 55,-29.3333 49.3333,-35 43.6667,-35 43.6667,-35 12.3333,-35 12.3333,-35 6.6667,-35 1,-29.3333 1,-23.6667 1,-23.6667 1,-12.3333 1,-12.3333 1,-6.6667 6.6667,-1 12.3333,-1"/>
-</g>
-<!-- b&#45;&gt;c -->
-<g id="edge1" class="edge">
-<title>b&#45;&gt;c</title>
-<path fill="none" stroke="#000000" d="M28,-63.8314C28,-58.4728 28,-52.4735 28,-46.6262"/>
-<polygon fill="#000000" stroke="#000000" points="31.5001,-46.4363 28,-36.4363 24.5001,-46.4363 31.5001,-46.4363"/>
-<text text-anchor="start" x="28" y="-47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
-</g>
-</g>
-</svg>

+ 60 - 0
test/semantics/event_lifeline/12_take_many_queue_c.svg

@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="64pt" height="211pt"
+ viewBox="0.00 0.00 64.00 211.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 207)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-207 60,-207 60,4 -4,4"/>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="28" cy="-197.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _a -->
+<g id="node2" class="node">
+<title>_a</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-164 0,-164 0,-128 56,-128 56,-164"/>
+<text text-anchor="start" x="24.6646" y="-142.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-129C12.3333,-129 43.6667,-129 43.6667,-129 49.3333,-129 55,-134.6667 55,-140.3333 55,-140.3333 55,-151.6667 55,-151.6667 55,-157.3333 49.3333,-163 43.6667,-163 43.6667,-163 12.3333,-163 12.3333,-163 6.6667,-163 1,-157.3333 1,-151.6667 1,-151.6667 1,-140.3333 1,-140.3333 1,-134.6667 6.6667,-129 12.3333,-129"/>
+</g>
+<!-- __initial&#45;&gt;_a -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_a</title>
+<path fill="none" stroke="#000000" d="M28,-191.9886C28,-187.6293 28,-181.1793 28,-174.4801"/>
+<polygon fill="#000000" stroke="#000000" points="31.5001,-174.0122 28,-164.0122 24.5001,-174.0122 31.5001,-174.0122"/>
+<text text-anchor="middle" x="29.3895" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _b -->
+<g id="node3" class="node">
+<title>_b</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-100 0,-100 0,-64 56,-64 56,-100"/>
+<text text-anchor="start" x="24.6646" y="-78.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-65C12.3333,-65 43.6667,-65 43.6667,-65 49.3333,-65 55,-70.6667 55,-76.3333 55,-76.3333 55,-87.6667 55,-87.6667 55,-93.3333 49.3333,-99 43.6667,-99 43.6667,-99 12.3333,-99 12.3333,-99 6.6667,-99 1,-93.3333 1,-87.6667 1,-87.6667 1,-76.3333 1,-76.3333 1,-70.6667 6.6667,-65 12.3333,-65"/>
+</g>
+<!-- _a&#45;&gt;_b -->
+<g id="edge2" class="edge">
+<title>_a&#45;&gt;_b</title>
+<path fill="none" stroke="#000000" d="M28,-127.8314C28,-122.4728 28,-116.4735 28,-110.6262"/>
+<polygon fill="#000000" stroke="#000000" points="31.5001,-110.4363 28,-100.4363 24.5001,-110.4363 31.5001,-110.4363"/>
+<text text-anchor="start" x="28" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
+</g>
+<!-- _c -->
+<g id="node4" class="node">
+<title>_c</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-36 0,-36 0,0 56,0 56,-36"/>
+<text text-anchor="start" x="25" y="-14.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-1C12.3333,-1 43.6667,-1 43.6667,-1 49.3333,-1 55,-6.6667 55,-12.3333 55,-12.3333 55,-23.6667 55,-23.6667 55,-29.3333 49.3333,-35 43.6667,-35 43.6667,-35 12.3333,-35 12.3333,-35 6.6667,-35 1,-29.3333 1,-23.6667 1,-23.6667 1,-12.3333 1,-12.3333 1,-6.6667 6.6667,-1 12.3333,-1"/>
+</g>
+<!-- _b&#45;&gt;_c -->
+<g id="edge3" class="edge">
+<title>_b&#45;&gt;_c</title>
+<path fill="none" stroke="#000000" d="M28,-63.8314C28,-58.4728 28,-52.4735 28,-46.6262"/>
+<polygon fill="#000000" stroke="#000000" points="31.5001,-46.4363 28,-36.4363 24.5001,-46.4363 31.5001,-46.4363"/>
+<text text-anchor="start" x="28" y="-47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 68 - 56
test/semantics/event_lifeline/21_orthogonal_take_one_queue.svg

@@ -4,112 +4,124 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: state transitions Pages: 1 -->
-<svg width="224pt" height="489pt"
- viewBox="0.00 0.00 224.00 489.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 485)">
+<svg width="224pt" height="520pt"
+ viewBox="0.00 0.00 224.00 520.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 516)">
 <title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-485 220,-485 220,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-516 220,-516 220,4 -4,4"/>
 <g id="clust1" class="cluster">
-<title>cluster_p</title>
+<title>cluster__p</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 196,-8 196,-8 202,-8 208,-14 208,-20 208,-20 208,-461 208,-461 208,-467 202,-473 196,-473 196,-473 20,-473 20,-473 14,-473 8,-467 8,-461 8,-461 8,-20 8,-20 8,-14 14,-8 20,-8"/>
 <text text-anchor="start" x="104.6646" y="-454.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">p</text>
 </g>
 <g id="clust2" class="cluster">
-<title>cluster_o0</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M116,-142C116,-142 188,-142 188,-142 194,-142 200,-148 200,-154 200,-154 200,-423 200,-423 200,-429 194,-435 188,-435 188,-435 116,-435 116,-435 110,-435 104,-429 104,-423 104,-423 104,-154 104,-154 104,-148 110,-142 116,-142"/>
+<title>cluster__p_o0</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="104,-142 104,-435 200,-435 200,-142 104,-142"/>
 <text text-anchor="start" x="145.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o0</text>
 </g>
 <g id="clust3" class="cluster">
-<title>cluster_o1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36,-16C36,-16 84,-16 84,-16 90,-16 96,-22 96,-28 96,-28 96,-423 96,-423 96,-429 90,-435 84,-435 84,-435 36,-435 36,-435 30,-435 24,-429 24,-423 24,-423 24,-28 24,-28 24,-22 30,-16 36,-16"/>
+<title>cluster__p_o1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-435 96,-435 96,-16 24,-16"/>
 <text text-anchor="start" x="53.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o1</text>
 </g>
-<!-- p -->
-<!-- o0 -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="146" cy="-391.5" rx="5.5" ry="5.5"/>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-506.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p -->
+<!-- __initial&#45;&gt;_p -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_p</title>
+<path fill="none" stroke="#000000" d="M16,-500.9533C16,-496.7779 16,-490.5043 16,-483.0332"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-482.9971 16,-472.9971 12.5001,-482.9972 19.5001,-482.9971"/>
+<text text-anchor="middle" x="17.3895" y="-484" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sa -->
+<!-- _p_o0 -->
+<!-- _p_o0_initial -->
 <g id="node4" class="node">
-<title>sa</title>
+<title>_p_o0_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="146" cy="-391.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p_o0_sa -->
+<g id="node5" class="node">
+<title>_p_o0_sa</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="174,-304 118,-304 118,-268 174,-268 174,-304"/>
 <text text-anchor="start" x="139.6646" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sa</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M130.3333,-269C130.3333,-269 161.6667,-269 161.6667,-269 167.3333,-269 173,-274.6667 173,-280.3333 173,-280.3333 173,-291.6667 173,-291.6667 173,-297.3333 167.3333,-303 161.6667,-303 161.6667,-303 130.3333,-303 130.3333,-303 124.6667,-303 119,-297.3333 119,-291.6667 119,-291.6667 119,-280.3333 119,-280.3333 119,-274.6667 124.6667,-269 130.3333,-269"/>
 </g>
-<!-- initial_400&#45;&gt;sa -->
+<!-- _p_o0_initial&#45;&gt;_p_o0_sa -->
 <g id="edge2" class="edge">
-<title>initial_400&#45;&gt;sa</title>
+<title>_p_o0_initial&#45;&gt;_p_o0_sa</title>
 <path fill="none" stroke="#000000" d="M146,-385.8288C146,-381.1736 146,-374.4097 146,-368.5 146,-368.5 146,-368.5 146,-321.5 146,-319.1079 146,-316.6252 146,-314.1342"/>
 <polygon fill="#000000" stroke="#000000" points="149.5001,-314.0597 146,-304.0598 142.5001,-314.0598 149.5001,-314.0597"/>
 <text text-anchor="middle" x="147.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sb -->
-<g id="node5" class="node">
-<title>sb</title>
+<!-- _p_o0_sb -->
+<g id="node6" class="node">
+<title>_p_o0_sb</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="180,-186 124,-186 124,-150 180,-150 180,-186"/>
 <text text-anchor="start" x="145.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sb</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M136.3333,-151C136.3333,-151 167.6667,-151 167.6667,-151 173.3333,-151 179,-156.6667 179,-162.3333 179,-162.3333 179,-173.6667 179,-173.6667 179,-179.3333 173.3333,-185 167.6667,-185 167.6667,-185 136.3333,-185 136.3333,-185 130.6667,-185 125,-179.3333 125,-173.6667 125,-173.6667 125,-162.3333 125,-162.3333 125,-156.6667 130.6667,-151 136.3333,-151"/>
 </g>
-<!-- sa&#45;&gt;sb -->
+<!-- _p_o0_sa&#45;&gt;_p_o0_sb -->
+<g id="edge3" class="edge">
+<title>_p_o0_sa&#45;&gt;_p_o0_sb</title>
+<path fill="none" stroke="#000000" d="M137.4066,-267.9638C135.4832,-262.4811 134,-256.3552 134,-250.5 134,-250.5 134,-250.5 134,-203.5 134,-200.9 134.3888,-198.2975 135.0522,-195.7493"/>
+<polygon fill="#000000" stroke="#000000" points="138.3603,-196.8993 138.7293,-186.3109 131.8378,-194.3582 138.3603,-196.8993"/>
+<text text-anchor="start" x="134" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
+</g>
+<!-- _p_o0_sb&#45;&gt;_p_o0_sa -->
 <g id="edge4" class="edge">
-<title>sa&#45;&gt;sb</title>
-<path fill="none" stroke="#000000" d="M173.5774,-267.7844C177.9153,-262.8787 181,-257.0777 181,-250.5 181,-250.5 181,-250.5 181,-203.5 181,-200.5157 180.3777,-197.6439 179.3155,-194.9158"/>
-<polygon fill="#000000" stroke="#000000" points="182.3241,-193.1269 174.2739,-186.2387 176.2715,-196.6436 182.3241,-193.1269"/>
-<text text-anchor="start" x="181" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
+<title>_p_o0_sb&#45;&gt;_p_o0_sa</title>
+<path fill="none" stroke="#000000" d="M180.0433,-184.7895C185.2038,-189.9346 189,-196.2003 189,-203.5 189,-250.5 189,-250.5 189,-250.5 189,-256.7017 186.3072,-262.0226 182.2694,-266.5151"/>
+<polygon fill="#000000" stroke="#000000" points="179.7039,-264.1072 174.4422,-273.3031 184.2901,-269.3956 179.7039,-264.1072"/>
+<text text-anchor="middle" x="190.3895" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sb&#45;&gt;sa -->
-<g id="edge3" class="edge">
-<title>sb&#45;&gt;sa</title>
-<path fill="none" stroke="#000000" d="M138.7293,-186.3109C136.0314,-191.601 134,-197.5572 134,-203.5 134,-250.5 134,-250.5 134,-250.5 134,-253.0617 134.2839,-255.6751 134.7643,-258.2639"/>
-<polygon fill="#000000" stroke="#000000" points="131.4013,-259.2352 137.4066,-267.9638 138.1552,-257.3954 131.4013,-259.2352"/>
-<text text-anchor="middle" x="135.3895" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- o1 -->
-<!-- initial_401 -->
-<g id="node7" class="node">
-<title>initial_401</title>
+<!-- _p_o1 -->
+<!-- _p_o1_initial -->
+<g id="node8" class="node">
+<title>_p_o1_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="60" cy="-391.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- sc -->
-<g id="node8" class="node">
-<title>sc</title>
+<!-- _p_o1_sc -->
+<g id="node9" class="node">
+<title>_p_o1_sc</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-304 32,-304 32,-268 88,-268 88,-304"/>
 <text text-anchor="start" x="54" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sc</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-269C44.3333,-269 75.6667,-269 75.6667,-269 81.3333,-269 87,-274.6667 87,-280.3333 87,-280.3333 87,-291.6667 87,-291.6667 87,-297.3333 81.3333,-303 75.6667,-303 75.6667,-303 44.3333,-303 44.3333,-303 38.6667,-303 33,-297.3333 33,-291.6667 33,-291.6667 33,-280.3333 33,-280.3333 33,-274.6667 38.6667,-269 44.3333,-269"/>
 </g>
-<!-- initial_401&#45;&gt;sc -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;sc</title>
+<!-- _p_o1_initial&#45;&gt;_p_o1_sc -->
+<g id="edge5" class="edge">
+<title>_p_o1_initial&#45;&gt;_p_o1_sc</title>
 <path fill="none" stroke="#000000" d="M60,-385.8288C60,-381.1736 60,-374.4097 60,-368.5 60,-368.5 60,-368.5 60,-321.5 60,-319.1079 60,-316.6252 60,-314.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-314.0597 60,-304.0598 56.5001,-314.0598 63.5001,-314.0597"/>
 <text text-anchor="middle" x="61.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sd -->
-<g id="node9" class="node">
-<title>sd</title>
+<!-- _p_o1_sd -->
+<g id="node10" class="node">
+<title>_p_o1_sd</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-186 32,-186 32,-150 88,-150 88,-186"/>
 <text text-anchor="start" x="53.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sd</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-151C44.3333,-151 75.6667,-151 75.6667,-151 81.3333,-151 87,-156.6667 87,-162.3333 87,-162.3333 87,-173.6667 87,-173.6667 87,-179.3333 81.3333,-185 75.6667,-185 75.6667,-185 44.3333,-185 44.3333,-185 38.6667,-185 33,-179.3333 33,-173.6667 33,-173.6667 33,-162.3333 33,-162.3333 33,-156.6667 38.6667,-151 44.3333,-151"/>
 </g>
-<!-- sc&#45;&gt;sd -->
+<!-- _p_o1_sc&#45;&gt;_p_o1_sd -->
 <g id="edge6" class="edge">
-<title>sc&#45;&gt;sd</title>
+<title>_p_o1_sc&#45;&gt;_p_o1_sd</title>
 <path fill="none" stroke="#000000" d="M60,-267.9402C60,-262.3497 60,-256.1701 60,-250.5 60,-250.5 60,-250.5 60,-203.5 60,-201.1079 60,-198.6252 60,-196.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-196.0597 60,-186.0598 56.5001,-196.0598 63.5001,-196.0597"/>
-<text text-anchor="start" x="60" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<text text-anchor="start" x="60" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
-<!-- se -->
-<g id="node10" class="node">
-<title>se</title>
+<!-- _p_o1_se -->
+<g id="node11" class="node">
+<title>_p_o1_se</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-60 32,-60 32,-24 88,-24 88,-60"/>
 <text text-anchor="start" x="53.6646" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">se</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-25C44.3333,-25 75.6667,-25 75.6667,-25 81.3333,-25 87,-30.6667 87,-36.3333 87,-36.3333 87,-47.6667 87,-47.6667 87,-53.3333 81.3333,-59 75.6667,-59 75.6667,-59 44.3333,-59 44.3333,-59 38.6667,-59 33,-53.3333 33,-47.6667 33,-47.6667 33,-36.3333 33,-36.3333 33,-30.6667 38.6667,-25 44.3333,-25"/>
 </g>
-<!-- sd&#45;&gt;se -->
-<g id="edge5" class="edge">
-<title>sd&#45;&gt;se</title>
+<!-- _p_o1_sd&#45;&gt;_p_o1_se -->
+<g id="edge7" class="edge">
+<title>_p_o1_sd&#45;&gt;_p_o1_se</title>
 <path fill="none" stroke="#000000" d="M60,-149.7983C60,-142.007 60,-132.8073 60,-124.5 60,-124.5 60,-124.5 60,-77.5 60,-75.1079 60,-72.6252 60,-70.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-70.0597 60,-60.0598 56.5001,-70.0598 63.5001,-70.0597"/>
 <text text-anchor="start" x="60" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">g &#160;&#160;</text>

+ 68 - 56
test/semantics/event_lifeline/30_orthogonal_take_many_next_small_step.svg

@@ -4,112 +4,124 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: state transitions Pages: 1 -->
-<svg width="224pt" height="489pt"
- viewBox="0.00 0.00 224.00 489.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 485)">
+<svg width="224pt" height="520pt"
+ viewBox="0.00 0.00 224.00 520.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 516)">
 <title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-485 220,-485 220,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-516 220,-516 220,4 -4,4"/>
 <g id="clust1" class="cluster">
-<title>cluster_p</title>
+<title>cluster__p</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 196,-8 196,-8 202,-8 208,-14 208,-20 208,-20 208,-461 208,-461 208,-467 202,-473 196,-473 196,-473 20,-473 20,-473 14,-473 8,-467 8,-461 8,-461 8,-20 8,-20 8,-14 14,-8 20,-8"/>
 <text text-anchor="start" x="104.6646" y="-454.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">p</text>
 </g>
 <g id="clust2" class="cluster">
-<title>cluster_o0</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M116,-142C116,-142 188,-142 188,-142 194,-142 200,-148 200,-154 200,-154 200,-423 200,-423 200,-429 194,-435 188,-435 188,-435 116,-435 116,-435 110,-435 104,-429 104,-423 104,-423 104,-154 104,-154 104,-148 110,-142 116,-142"/>
+<title>cluster__p_o0</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="104,-142 104,-435 200,-435 200,-142 104,-142"/>
 <text text-anchor="start" x="145.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o0</text>
 </g>
 <g id="clust3" class="cluster">
-<title>cluster_o1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36,-16C36,-16 84,-16 84,-16 90,-16 96,-22 96,-28 96,-28 96,-423 96,-423 96,-429 90,-435 84,-435 84,-435 36,-435 36,-435 30,-435 24,-429 24,-423 24,-423 24,-28 24,-28 24,-22 30,-16 36,-16"/>
+<title>cluster__p_o1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-435 96,-435 96,-16 24,-16"/>
 <text text-anchor="start" x="53.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o1</text>
 </g>
-<!-- p -->
-<!-- o0 -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="146" cy="-391.5" rx="5.5" ry="5.5"/>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-506.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p -->
+<!-- __initial&#45;&gt;_p -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_p</title>
+<path fill="none" stroke="#000000" d="M16,-500.9533C16,-496.7779 16,-490.5043 16,-483.0332"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-482.9971 16,-472.9971 12.5001,-482.9972 19.5001,-482.9971"/>
+<text text-anchor="middle" x="17.3895" y="-484" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sa -->
+<!-- _p_o0 -->
+<!-- _p_o0_initial -->
 <g id="node4" class="node">
-<title>sa</title>
+<title>_p_o0_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="146" cy="-391.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p_o0_sa -->
+<g id="node5" class="node">
+<title>_p_o0_sa</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="174,-304 118,-304 118,-268 174,-268 174,-304"/>
 <text text-anchor="start" x="139.6646" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sa</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M130.3333,-269C130.3333,-269 161.6667,-269 161.6667,-269 167.3333,-269 173,-274.6667 173,-280.3333 173,-280.3333 173,-291.6667 173,-291.6667 173,-297.3333 167.3333,-303 161.6667,-303 161.6667,-303 130.3333,-303 130.3333,-303 124.6667,-303 119,-297.3333 119,-291.6667 119,-291.6667 119,-280.3333 119,-280.3333 119,-274.6667 124.6667,-269 130.3333,-269"/>
 </g>
-<!-- initial_400&#45;&gt;sa -->
+<!-- _p_o0_initial&#45;&gt;_p_o0_sa -->
 <g id="edge2" class="edge">
-<title>initial_400&#45;&gt;sa</title>
+<title>_p_o0_initial&#45;&gt;_p_o0_sa</title>
 <path fill="none" stroke="#000000" d="M146,-385.8288C146,-381.1736 146,-374.4097 146,-368.5 146,-368.5 146,-368.5 146,-321.5 146,-319.1079 146,-316.6252 146,-314.1342"/>
 <polygon fill="#000000" stroke="#000000" points="149.5001,-314.0597 146,-304.0598 142.5001,-314.0598 149.5001,-314.0597"/>
 <text text-anchor="middle" x="147.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sb -->
-<g id="node5" class="node">
-<title>sb</title>
+<!-- _p_o0_sb -->
+<g id="node6" class="node">
+<title>_p_o0_sb</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="180,-186 124,-186 124,-150 180,-150 180,-186"/>
 <text text-anchor="start" x="145.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sb</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M136.3333,-151C136.3333,-151 167.6667,-151 167.6667,-151 173.3333,-151 179,-156.6667 179,-162.3333 179,-162.3333 179,-173.6667 179,-173.6667 179,-179.3333 173.3333,-185 167.6667,-185 167.6667,-185 136.3333,-185 136.3333,-185 130.6667,-185 125,-179.3333 125,-173.6667 125,-173.6667 125,-162.3333 125,-162.3333 125,-156.6667 130.6667,-151 136.3333,-151"/>
 </g>
-<!-- sa&#45;&gt;sb -->
+<!-- _p_o0_sa&#45;&gt;_p_o0_sb -->
+<g id="edge3" class="edge">
+<title>_p_o0_sa&#45;&gt;_p_o0_sb</title>
+<path fill="none" stroke="#000000" d="M137.4066,-267.9638C135.4832,-262.4811 134,-256.3552 134,-250.5 134,-250.5 134,-250.5 134,-203.5 134,-200.9 134.3888,-198.2975 135.0522,-195.7493"/>
+<polygon fill="#000000" stroke="#000000" points="138.3603,-196.8993 138.7293,-186.3109 131.8378,-194.3582 138.3603,-196.8993"/>
+<text text-anchor="start" x="134" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
+</g>
+<!-- _p_o0_sb&#45;&gt;_p_o0_sa -->
 <g id="edge4" class="edge">
-<title>sa&#45;&gt;sb</title>
-<path fill="none" stroke="#000000" d="M173.5774,-267.7844C177.9153,-262.8787 181,-257.0777 181,-250.5 181,-250.5 181,-250.5 181,-203.5 181,-200.5157 180.3777,-197.6439 179.3155,-194.9158"/>
-<polygon fill="#000000" stroke="#000000" points="182.3241,-193.1269 174.2739,-186.2387 176.2715,-196.6436 182.3241,-193.1269"/>
-<text text-anchor="start" x="181" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
+<title>_p_o0_sb&#45;&gt;_p_o0_sa</title>
+<path fill="none" stroke="#000000" d="M180.0433,-184.7895C185.2038,-189.9346 189,-196.2003 189,-203.5 189,-250.5 189,-250.5 189,-250.5 189,-256.7017 186.3072,-262.0226 182.2694,-266.5151"/>
+<polygon fill="#000000" stroke="#000000" points="179.7039,-264.1072 174.4422,-273.3031 184.2901,-269.3956 179.7039,-264.1072"/>
+<text text-anchor="middle" x="190.3895" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sb&#45;&gt;sa -->
-<g id="edge3" class="edge">
-<title>sb&#45;&gt;sa</title>
-<path fill="none" stroke="#000000" d="M138.7293,-186.3109C136.0314,-191.601 134,-197.5572 134,-203.5 134,-250.5 134,-250.5 134,-250.5 134,-253.0617 134.2839,-255.6751 134.7643,-258.2639"/>
-<polygon fill="#000000" stroke="#000000" points="131.4013,-259.2352 137.4066,-267.9638 138.1552,-257.3954 131.4013,-259.2352"/>
-<text text-anchor="middle" x="135.3895" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- o1 -->
-<!-- initial_401 -->
-<g id="node7" class="node">
-<title>initial_401</title>
+<!-- _p_o1 -->
+<!-- _p_o1_initial -->
+<g id="node8" class="node">
+<title>_p_o1_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="60" cy="-391.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- sc -->
-<g id="node8" class="node">
-<title>sc</title>
+<!-- _p_o1_sc -->
+<g id="node9" class="node">
+<title>_p_o1_sc</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-304 32,-304 32,-268 88,-268 88,-304"/>
 <text text-anchor="start" x="54" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sc</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-269C44.3333,-269 75.6667,-269 75.6667,-269 81.3333,-269 87,-274.6667 87,-280.3333 87,-280.3333 87,-291.6667 87,-291.6667 87,-297.3333 81.3333,-303 75.6667,-303 75.6667,-303 44.3333,-303 44.3333,-303 38.6667,-303 33,-297.3333 33,-291.6667 33,-291.6667 33,-280.3333 33,-280.3333 33,-274.6667 38.6667,-269 44.3333,-269"/>
 </g>
-<!-- initial_401&#45;&gt;sc -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;sc</title>
+<!-- _p_o1_initial&#45;&gt;_p_o1_sc -->
+<g id="edge5" class="edge">
+<title>_p_o1_initial&#45;&gt;_p_o1_sc</title>
 <path fill="none" stroke="#000000" d="M60,-385.8288C60,-381.1736 60,-374.4097 60,-368.5 60,-368.5 60,-368.5 60,-321.5 60,-319.1079 60,-316.6252 60,-314.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-314.0597 60,-304.0598 56.5001,-314.0598 63.5001,-314.0597"/>
 <text text-anchor="middle" x="61.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sd -->
-<g id="node9" class="node">
-<title>sd</title>
+<!-- _p_o1_sd -->
+<g id="node10" class="node">
+<title>_p_o1_sd</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-186 32,-186 32,-150 88,-150 88,-186"/>
 <text text-anchor="start" x="53.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sd</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-151C44.3333,-151 75.6667,-151 75.6667,-151 81.3333,-151 87,-156.6667 87,-162.3333 87,-162.3333 87,-173.6667 87,-173.6667 87,-179.3333 81.3333,-185 75.6667,-185 75.6667,-185 44.3333,-185 44.3333,-185 38.6667,-185 33,-179.3333 33,-173.6667 33,-173.6667 33,-162.3333 33,-162.3333 33,-156.6667 38.6667,-151 44.3333,-151"/>
 </g>
-<!-- sc&#45;&gt;sd -->
+<!-- _p_o1_sc&#45;&gt;_p_o1_sd -->
 <g id="edge6" class="edge">
-<title>sc&#45;&gt;sd</title>
+<title>_p_o1_sc&#45;&gt;_p_o1_sd</title>
 <path fill="none" stroke="#000000" d="M60,-267.9402C60,-262.3497 60,-256.1701 60,-250.5 60,-250.5 60,-250.5 60,-203.5 60,-201.1079 60,-198.6252 60,-196.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-196.0597 60,-186.0598 56.5001,-196.0598 63.5001,-196.0597"/>
-<text text-anchor="start" x="60" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<text text-anchor="start" x="60" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
-<!-- se -->
-<g id="node10" class="node">
-<title>se</title>
+<!-- _p_o1_se -->
+<g id="node11" class="node">
+<title>_p_o1_se</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-60 32,-60 32,-24 88,-24 88,-60"/>
 <text text-anchor="start" x="53.6646" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">se</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-25C44.3333,-25 75.6667,-25 75.6667,-25 81.3333,-25 87,-30.6667 87,-36.3333 87,-36.3333 87,-47.6667 87,-47.6667 87,-53.3333 81.3333,-59 75.6667,-59 75.6667,-59 44.3333,-59 44.3333,-59 38.6667,-59 33,-53.3333 33,-47.6667 33,-47.6667 33,-36.3333 33,-36.3333 33,-30.6667 38.6667,-25 44.3333,-25"/>
 </g>
-<!-- sd&#45;&gt;se -->
-<g id="edge5" class="edge">
-<title>sd&#45;&gt;se</title>
+<!-- _p_o1_sd&#45;&gt;_p_o1_se -->
+<g id="edge7" class="edge">
+<title>_p_o1_sd&#45;&gt;_p_o1_se</title>
 <path fill="none" stroke="#000000" d="M60,-149.7983C60,-142.007 60,-132.8073 60,-124.5 60,-124.5 60,-124.5 60,-77.5 60,-75.1079 60,-72.6252 60,-70.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-70.0597 60,-60.0598 56.5001,-70.0598 63.5001,-70.0597"/>
 <text text-anchor="start" x="60" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">g &#160;&#160;</text>

+ 68 - 56
test/semantics/event_lifeline/31_orthogonal_take_many_next_combo_step.svg

@@ -4,112 +4,124 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: state transitions Pages: 1 -->
-<svg width="224pt" height="489pt"
- viewBox="0.00 0.00 224.00 489.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 485)">
+<svg width="224pt" height="520pt"
+ viewBox="0.00 0.00 224.00 520.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 516)">
 <title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-485 220,-485 220,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-516 220,-516 220,4 -4,4"/>
 <g id="clust1" class="cluster">
-<title>cluster_p</title>
+<title>cluster__p</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 196,-8 196,-8 202,-8 208,-14 208,-20 208,-20 208,-461 208,-461 208,-467 202,-473 196,-473 196,-473 20,-473 20,-473 14,-473 8,-467 8,-461 8,-461 8,-20 8,-20 8,-14 14,-8 20,-8"/>
 <text text-anchor="start" x="104.6646" y="-454.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">p</text>
 </g>
 <g id="clust2" class="cluster">
-<title>cluster_o0</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M116,-142C116,-142 188,-142 188,-142 194,-142 200,-148 200,-154 200,-154 200,-423 200,-423 200,-429 194,-435 188,-435 188,-435 116,-435 116,-435 110,-435 104,-429 104,-423 104,-423 104,-154 104,-154 104,-148 110,-142 116,-142"/>
+<title>cluster__p_o0</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="104,-142 104,-435 200,-435 200,-142 104,-142"/>
 <text text-anchor="start" x="145.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o0</text>
 </g>
 <g id="clust3" class="cluster">
-<title>cluster_o1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36,-16C36,-16 84,-16 84,-16 90,-16 96,-22 96,-28 96,-28 96,-423 96,-423 96,-429 90,-435 84,-435 84,-435 36,-435 36,-435 30,-435 24,-429 24,-423 24,-423 24,-28 24,-28 24,-22 30,-16 36,-16"/>
+<title>cluster__p_o1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-435 96,-435 96,-16 24,-16"/>
 <text text-anchor="start" x="53.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o1</text>
 </g>
-<!-- p -->
-<!-- o0 -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="146" cy="-391.5" rx="5.5" ry="5.5"/>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-506.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p -->
+<!-- __initial&#45;&gt;_p -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_p</title>
+<path fill="none" stroke="#000000" d="M16,-500.9533C16,-496.7779 16,-490.5043 16,-483.0332"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-482.9971 16,-472.9971 12.5001,-482.9972 19.5001,-482.9971"/>
+<text text-anchor="middle" x="17.3895" y="-484" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sa -->
+<!-- _p_o0 -->
+<!-- _p_o0_initial -->
 <g id="node4" class="node">
-<title>sa</title>
+<title>_p_o0_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="146" cy="-391.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p_o0_sa -->
+<g id="node5" class="node">
+<title>_p_o0_sa</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="174,-304 118,-304 118,-268 174,-268 174,-304"/>
 <text text-anchor="start" x="139.6646" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sa</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M130.3333,-269C130.3333,-269 161.6667,-269 161.6667,-269 167.3333,-269 173,-274.6667 173,-280.3333 173,-280.3333 173,-291.6667 173,-291.6667 173,-297.3333 167.3333,-303 161.6667,-303 161.6667,-303 130.3333,-303 130.3333,-303 124.6667,-303 119,-297.3333 119,-291.6667 119,-291.6667 119,-280.3333 119,-280.3333 119,-274.6667 124.6667,-269 130.3333,-269"/>
 </g>
-<!-- initial_400&#45;&gt;sa -->
+<!-- _p_o0_initial&#45;&gt;_p_o0_sa -->
 <g id="edge2" class="edge">
-<title>initial_400&#45;&gt;sa</title>
+<title>_p_o0_initial&#45;&gt;_p_o0_sa</title>
 <path fill="none" stroke="#000000" d="M146,-385.8288C146,-381.1736 146,-374.4097 146,-368.5 146,-368.5 146,-368.5 146,-321.5 146,-319.1079 146,-316.6252 146,-314.1342"/>
 <polygon fill="#000000" stroke="#000000" points="149.5001,-314.0597 146,-304.0598 142.5001,-314.0598 149.5001,-314.0597"/>
 <text text-anchor="middle" x="147.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sb -->
-<g id="node5" class="node">
-<title>sb</title>
+<!-- _p_o0_sb -->
+<g id="node6" class="node">
+<title>_p_o0_sb</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="180,-186 124,-186 124,-150 180,-150 180,-186"/>
 <text text-anchor="start" x="145.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sb</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M136.3333,-151C136.3333,-151 167.6667,-151 167.6667,-151 173.3333,-151 179,-156.6667 179,-162.3333 179,-162.3333 179,-173.6667 179,-173.6667 179,-179.3333 173.3333,-185 167.6667,-185 167.6667,-185 136.3333,-185 136.3333,-185 130.6667,-185 125,-179.3333 125,-173.6667 125,-173.6667 125,-162.3333 125,-162.3333 125,-156.6667 130.6667,-151 136.3333,-151"/>
 </g>
-<!-- sa&#45;&gt;sb -->
+<!-- _p_o0_sa&#45;&gt;_p_o0_sb -->
+<g id="edge3" class="edge">
+<title>_p_o0_sa&#45;&gt;_p_o0_sb</title>
+<path fill="none" stroke="#000000" d="M137.4066,-267.9638C135.4832,-262.4811 134,-256.3552 134,-250.5 134,-250.5 134,-250.5 134,-203.5 134,-200.9 134.3888,-198.2975 135.0522,-195.7493"/>
+<polygon fill="#000000" stroke="#000000" points="138.3603,-196.8993 138.7293,-186.3109 131.8378,-194.3582 138.3603,-196.8993"/>
+<text text-anchor="start" x="134" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
+</g>
+<!-- _p_o0_sb&#45;&gt;_p_o0_sa -->
 <g id="edge4" class="edge">
-<title>sa&#45;&gt;sb</title>
-<path fill="none" stroke="#000000" d="M173.5774,-267.7844C177.9153,-262.8787 181,-257.0777 181,-250.5 181,-250.5 181,-250.5 181,-203.5 181,-200.5157 180.3777,-197.6439 179.3155,-194.9158"/>
-<polygon fill="#000000" stroke="#000000" points="182.3241,-193.1269 174.2739,-186.2387 176.2715,-196.6436 182.3241,-193.1269"/>
-<text text-anchor="start" x="181" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
+<title>_p_o0_sb&#45;&gt;_p_o0_sa</title>
+<path fill="none" stroke="#000000" d="M180.0433,-184.7895C185.2038,-189.9346 189,-196.2003 189,-203.5 189,-250.5 189,-250.5 189,-250.5 189,-256.7017 186.3072,-262.0226 182.2694,-266.5151"/>
+<polygon fill="#000000" stroke="#000000" points="179.7039,-264.1072 174.4422,-273.3031 184.2901,-269.3956 179.7039,-264.1072"/>
+<text text-anchor="middle" x="190.3895" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sb&#45;&gt;sa -->
-<g id="edge3" class="edge">
-<title>sb&#45;&gt;sa</title>
-<path fill="none" stroke="#000000" d="M138.7293,-186.3109C136.0314,-191.601 134,-197.5572 134,-203.5 134,-250.5 134,-250.5 134,-250.5 134,-253.0617 134.2839,-255.6751 134.7643,-258.2639"/>
-<polygon fill="#000000" stroke="#000000" points="131.4013,-259.2352 137.4066,-267.9638 138.1552,-257.3954 131.4013,-259.2352"/>
-<text text-anchor="middle" x="135.3895" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- o1 -->
-<!-- initial_401 -->
-<g id="node7" class="node">
-<title>initial_401</title>
+<!-- _p_o1 -->
+<!-- _p_o1_initial -->
+<g id="node8" class="node">
+<title>_p_o1_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="60" cy="-391.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- sc -->
-<g id="node8" class="node">
-<title>sc</title>
+<!-- _p_o1_sc -->
+<g id="node9" class="node">
+<title>_p_o1_sc</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-304 32,-304 32,-268 88,-268 88,-304"/>
 <text text-anchor="start" x="54" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sc</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-269C44.3333,-269 75.6667,-269 75.6667,-269 81.3333,-269 87,-274.6667 87,-280.3333 87,-280.3333 87,-291.6667 87,-291.6667 87,-297.3333 81.3333,-303 75.6667,-303 75.6667,-303 44.3333,-303 44.3333,-303 38.6667,-303 33,-297.3333 33,-291.6667 33,-291.6667 33,-280.3333 33,-280.3333 33,-274.6667 38.6667,-269 44.3333,-269"/>
 </g>
-<!-- initial_401&#45;&gt;sc -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;sc</title>
+<!-- _p_o1_initial&#45;&gt;_p_o1_sc -->
+<g id="edge5" class="edge">
+<title>_p_o1_initial&#45;&gt;_p_o1_sc</title>
 <path fill="none" stroke="#000000" d="M60,-385.8288C60,-381.1736 60,-374.4097 60,-368.5 60,-368.5 60,-368.5 60,-321.5 60,-319.1079 60,-316.6252 60,-314.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-314.0597 60,-304.0598 56.5001,-314.0598 63.5001,-314.0597"/>
 <text text-anchor="middle" x="61.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sd -->
-<g id="node9" class="node">
-<title>sd</title>
+<!-- _p_o1_sd -->
+<g id="node10" class="node">
+<title>_p_o1_sd</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-186 32,-186 32,-150 88,-150 88,-186"/>
 <text text-anchor="start" x="53.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sd</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-151C44.3333,-151 75.6667,-151 75.6667,-151 81.3333,-151 87,-156.6667 87,-162.3333 87,-162.3333 87,-173.6667 87,-173.6667 87,-179.3333 81.3333,-185 75.6667,-185 75.6667,-185 44.3333,-185 44.3333,-185 38.6667,-185 33,-179.3333 33,-173.6667 33,-173.6667 33,-162.3333 33,-162.3333 33,-156.6667 38.6667,-151 44.3333,-151"/>
 </g>
-<!-- sc&#45;&gt;sd -->
+<!-- _p_o1_sc&#45;&gt;_p_o1_sd -->
 <g id="edge6" class="edge">
-<title>sc&#45;&gt;sd</title>
+<title>_p_o1_sc&#45;&gt;_p_o1_sd</title>
 <path fill="none" stroke="#000000" d="M60,-267.9402C60,-262.3497 60,-256.1701 60,-250.5 60,-250.5 60,-250.5 60,-203.5 60,-201.1079 60,-198.6252 60,-196.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-196.0597 60,-186.0598 56.5001,-196.0598 63.5001,-196.0597"/>
-<text text-anchor="start" x="60" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<text text-anchor="start" x="60" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
-<!-- se -->
-<g id="node10" class="node">
-<title>se</title>
+<!-- _p_o1_se -->
+<g id="node11" class="node">
+<title>_p_o1_se</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-60 32,-60 32,-24 88,-24 88,-60"/>
 <text text-anchor="start" x="53.6646" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">se</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-25C44.3333,-25 75.6667,-25 75.6667,-25 81.3333,-25 87,-30.6667 87,-36.3333 87,-36.3333 87,-47.6667 87,-47.6667 87,-53.3333 81.3333,-59 75.6667,-59 75.6667,-59 44.3333,-59 44.3333,-59 38.6667,-59 33,-53.3333 33,-47.6667 33,-47.6667 33,-36.3333 33,-36.3333 33,-30.6667 38.6667,-25 44.3333,-25"/>
 </g>
-<!-- sd&#45;&gt;se -->
-<g id="edge5" class="edge">
-<title>sd&#45;&gt;se</title>
+<!-- _p_o1_sd&#45;&gt;_p_o1_se -->
+<g id="edge7" class="edge">
+<title>_p_o1_sd&#45;&gt;_p_o1_se</title>
 <path fill="none" stroke="#000000" d="M60,-149.7983C60,-142.007 60,-132.8073 60,-124.5 60,-124.5 60,-124.5 60,-77.5 60,-75.1079 60,-72.6252 60,-70.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-70.0597 60,-60.0598 56.5001,-70.0598 63.5001,-70.0597"/>
 <text text-anchor="start" x="60" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">g &#160;&#160;</text>

+ 68 - 56
test/semantics/event_lifeline/20_orthogonal_take_one_next_small_step.svg

@@ -4,112 +4,124 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: state transitions Pages: 1 -->
-<svg width="224pt" height="489pt"
- viewBox="0.00 0.00 224.00 489.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 485)">
+<svg width="224pt" height="520pt"
+ viewBox="0.00 0.00 224.00 520.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 516)">
 <title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-485 220,-485 220,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-516 220,-516 220,4 -4,4"/>
 <g id="clust1" class="cluster">
-<title>cluster_p</title>
+<title>cluster__p</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 196,-8 196,-8 202,-8 208,-14 208,-20 208,-20 208,-461 208,-461 208,-467 202,-473 196,-473 196,-473 20,-473 20,-473 14,-473 8,-467 8,-461 8,-461 8,-20 8,-20 8,-14 14,-8 20,-8"/>
 <text text-anchor="start" x="104.6646" y="-454.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">p</text>
 </g>
 <g id="clust2" class="cluster">
-<title>cluster_o0</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M116,-142C116,-142 188,-142 188,-142 194,-142 200,-148 200,-154 200,-154 200,-423 200,-423 200,-429 194,-435 188,-435 188,-435 116,-435 116,-435 110,-435 104,-429 104,-423 104,-423 104,-154 104,-154 104,-148 110,-142 116,-142"/>
+<title>cluster__p_o0</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="104,-142 104,-435 200,-435 200,-142 104,-142"/>
 <text text-anchor="start" x="145.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o0</text>
 </g>
 <g id="clust3" class="cluster">
-<title>cluster_o1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36,-16C36,-16 84,-16 84,-16 90,-16 96,-22 96,-28 96,-28 96,-423 96,-423 96,-429 90,-435 84,-435 84,-435 36,-435 36,-435 30,-435 24,-429 24,-423 24,-423 24,-28 24,-28 24,-22 30,-16 36,-16"/>
+<title>cluster__p_o1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-435 96,-435 96,-16 24,-16"/>
 <text text-anchor="start" x="53.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o1</text>
 </g>
-<!-- p -->
-<!-- o0 -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="146" cy="-391.5" rx="5.5" ry="5.5"/>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-506.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p -->
+<!-- __initial&#45;&gt;_p -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_p</title>
+<path fill="none" stroke="#000000" d="M16,-500.9533C16,-496.7779 16,-490.5043 16,-483.0332"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-482.9971 16,-472.9971 12.5001,-482.9972 19.5001,-482.9971"/>
+<text text-anchor="middle" x="17.3895" y="-484" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sa -->
+<!-- _p_o0 -->
+<!-- _p_o0_initial -->
 <g id="node4" class="node">
-<title>sa</title>
+<title>_p_o0_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="146" cy="-391.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p_o0_sa -->
+<g id="node5" class="node">
+<title>_p_o0_sa</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="174,-304 118,-304 118,-268 174,-268 174,-304"/>
 <text text-anchor="start" x="139.6646" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sa</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M130.3333,-269C130.3333,-269 161.6667,-269 161.6667,-269 167.3333,-269 173,-274.6667 173,-280.3333 173,-280.3333 173,-291.6667 173,-291.6667 173,-297.3333 167.3333,-303 161.6667,-303 161.6667,-303 130.3333,-303 130.3333,-303 124.6667,-303 119,-297.3333 119,-291.6667 119,-291.6667 119,-280.3333 119,-280.3333 119,-274.6667 124.6667,-269 130.3333,-269"/>
 </g>
-<!-- initial_400&#45;&gt;sa -->
+<!-- _p_o0_initial&#45;&gt;_p_o0_sa -->
 <g id="edge2" class="edge">
-<title>initial_400&#45;&gt;sa</title>
+<title>_p_o0_initial&#45;&gt;_p_o0_sa</title>
 <path fill="none" stroke="#000000" d="M146,-385.8288C146,-381.1736 146,-374.4097 146,-368.5 146,-368.5 146,-368.5 146,-321.5 146,-319.1079 146,-316.6252 146,-314.1342"/>
 <polygon fill="#000000" stroke="#000000" points="149.5001,-314.0597 146,-304.0598 142.5001,-314.0598 149.5001,-314.0597"/>
 <text text-anchor="middle" x="147.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sb -->
-<g id="node5" class="node">
-<title>sb</title>
+<!-- _p_o0_sb -->
+<g id="node6" class="node">
+<title>_p_o0_sb</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="180,-186 124,-186 124,-150 180,-150 180,-186"/>
 <text text-anchor="start" x="145.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sb</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M136.3333,-151C136.3333,-151 167.6667,-151 167.6667,-151 173.3333,-151 179,-156.6667 179,-162.3333 179,-162.3333 179,-173.6667 179,-173.6667 179,-179.3333 173.3333,-185 167.6667,-185 167.6667,-185 136.3333,-185 136.3333,-185 130.6667,-185 125,-179.3333 125,-173.6667 125,-173.6667 125,-162.3333 125,-162.3333 125,-156.6667 130.6667,-151 136.3333,-151"/>
 </g>
-<!-- sa&#45;&gt;sb -->
+<!-- _p_o0_sa&#45;&gt;_p_o0_sb -->
+<g id="edge3" class="edge">
+<title>_p_o0_sa&#45;&gt;_p_o0_sb</title>
+<path fill="none" stroke="#000000" d="M137.4066,-267.9638C135.4832,-262.4811 134,-256.3552 134,-250.5 134,-250.5 134,-250.5 134,-203.5 134,-200.9 134.3888,-198.2975 135.0522,-195.7493"/>
+<polygon fill="#000000" stroke="#000000" points="138.3603,-196.8993 138.7293,-186.3109 131.8378,-194.3582 138.3603,-196.8993"/>
+<text text-anchor="start" x="134" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
+</g>
+<!-- _p_o0_sb&#45;&gt;_p_o0_sa -->
 <g id="edge4" class="edge">
-<title>sa&#45;&gt;sb</title>
-<path fill="none" stroke="#000000" d="M173.5774,-267.7844C177.9153,-262.8787 181,-257.0777 181,-250.5 181,-250.5 181,-250.5 181,-203.5 181,-200.5157 180.3777,-197.6439 179.3155,-194.9158"/>
-<polygon fill="#000000" stroke="#000000" points="182.3241,-193.1269 174.2739,-186.2387 176.2715,-196.6436 182.3241,-193.1269"/>
-<text text-anchor="start" x="181" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
+<title>_p_o0_sb&#45;&gt;_p_o0_sa</title>
+<path fill="none" stroke="#000000" d="M180.0433,-184.7895C185.2038,-189.9346 189,-196.2003 189,-203.5 189,-250.5 189,-250.5 189,-250.5 189,-256.7017 186.3072,-262.0226 182.2694,-266.5151"/>
+<polygon fill="#000000" stroke="#000000" points="179.7039,-264.1072 174.4422,-273.3031 184.2901,-269.3956 179.7039,-264.1072"/>
+<text text-anchor="middle" x="190.3895" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sb&#45;&gt;sa -->
-<g id="edge3" class="edge">
-<title>sb&#45;&gt;sa</title>
-<path fill="none" stroke="#000000" d="M138.7293,-186.3109C136.0314,-191.601 134,-197.5572 134,-203.5 134,-250.5 134,-250.5 134,-250.5 134,-253.0617 134.2839,-255.6751 134.7643,-258.2639"/>
-<polygon fill="#000000" stroke="#000000" points="131.4013,-259.2352 137.4066,-267.9638 138.1552,-257.3954 131.4013,-259.2352"/>
-<text text-anchor="middle" x="135.3895" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- o1 -->
-<!-- initial_401 -->
-<g id="node7" class="node">
-<title>initial_401</title>
+<!-- _p_o1 -->
+<!-- _p_o1_initial -->
+<g id="node8" class="node">
+<title>_p_o1_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="60" cy="-391.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- sc -->
-<g id="node8" class="node">
-<title>sc</title>
+<!-- _p_o1_sc -->
+<g id="node9" class="node">
+<title>_p_o1_sc</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-304 32,-304 32,-268 88,-268 88,-304"/>
 <text text-anchor="start" x="54" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sc</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-269C44.3333,-269 75.6667,-269 75.6667,-269 81.3333,-269 87,-274.6667 87,-280.3333 87,-280.3333 87,-291.6667 87,-291.6667 87,-297.3333 81.3333,-303 75.6667,-303 75.6667,-303 44.3333,-303 44.3333,-303 38.6667,-303 33,-297.3333 33,-291.6667 33,-291.6667 33,-280.3333 33,-280.3333 33,-274.6667 38.6667,-269 44.3333,-269"/>
 </g>
-<!-- initial_401&#45;&gt;sc -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;sc</title>
+<!-- _p_o1_initial&#45;&gt;_p_o1_sc -->
+<g id="edge5" class="edge">
+<title>_p_o1_initial&#45;&gt;_p_o1_sc</title>
 <path fill="none" stroke="#000000" d="M60,-385.8288C60,-381.1736 60,-374.4097 60,-368.5 60,-368.5 60,-368.5 60,-321.5 60,-319.1079 60,-316.6252 60,-314.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-314.0597 60,-304.0598 56.5001,-314.0598 63.5001,-314.0597"/>
 <text text-anchor="middle" x="61.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- sd -->
-<g id="node9" class="node">
-<title>sd</title>
+<!-- _p_o1_sd -->
+<g id="node10" class="node">
+<title>_p_o1_sd</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-186 32,-186 32,-150 88,-150 88,-186"/>
 <text text-anchor="start" x="53.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sd</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-151C44.3333,-151 75.6667,-151 75.6667,-151 81.3333,-151 87,-156.6667 87,-162.3333 87,-162.3333 87,-173.6667 87,-173.6667 87,-179.3333 81.3333,-185 75.6667,-185 75.6667,-185 44.3333,-185 44.3333,-185 38.6667,-185 33,-179.3333 33,-173.6667 33,-173.6667 33,-162.3333 33,-162.3333 33,-156.6667 38.6667,-151 44.3333,-151"/>
 </g>
-<!-- sc&#45;&gt;sd -->
+<!-- _p_o1_sc&#45;&gt;_p_o1_sd -->
 <g id="edge6" class="edge">
-<title>sc&#45;&gt;sd</title>
+<title>_p_o1_sc&#45;&gt;_p_o1_sd</title>
 <path fill="none" stroke="#000000" d="M60,-267.9402C60,-262.3497 60,-256.1701 60,-250.5 60,-250.5 60,-250.5 60,-203.5 60,-201.1079 60,-198.6252 60,-196.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-196.0597 60,-186.0598 56.5001,-196.0598 63.5001,-196.0597"/>
-<text text-anchor="start" x="60" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<text text-anchor="start" x="60" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
-<!-- se -->
-<g id="node10" class="node">
-<title>se</title>
+<!-- _p_o1_se -->
+<g id="node11" class="node">
+<title>_p_o1_se</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-60 32,-60 32,-24 88,-24 88,-60"/>
 <text text-anchor="start" x="53.6646" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">se</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-25C44.3333,-25 75.6667,-25 75.6667,-25 81.3333,-25 87,-30.6667 87,-36.3333 87,-36.3333 87,-47.6667 87,-47.6667 87,-53.3333 81.3333,-59 75.6667,-59 75.6667,-59 44.3333,-59 44.3333,-59 38.6667,-59 33,-53.3333 33,-47.6667 33,-47.6667 33,-36.3333 33,-36.3333 33,-30.6667 38.6667,-25 44.3333,-25"/>
 </g>
-<!-- sd&#45;&gt;se -->
-<g id="edge5" class="edge">
-<title>sd&#45;&gt;se</title>
+<!-- _p_o1_sd&#45;&gt;_p_o1_se -->
+<g id="edge7" class="edge">
+<title>_p_o1_sd&#45;&gt;_p_o1_se</title>
 <path fill="none" stroke="#000000" d="M60,-149.7983C60,-142.007 60,-132.8073 60,-124.5 60,-124.5 60,-124.5 60,-77.5 60,-75.1079 60,-72.6252 60,-70.1342"/>
 <polygon fill="#000000" stroke="#000000" points="63.5001,-70.0597 60,-60.0598 56.5001,-70.0598 63.5001,-70.0597"/>
 <text text-anchor="start" x="60" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">g &#160;&#160;</text>

+ 0 - 118
test/semantics/event_lifeline/32_orthogonal_take_many_queue.svg

@@ -1,118 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="224pt" height="489pt"
- viewBox="0.00 0.00 224.00 489.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 485)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-485 220,-485 220,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_p</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 196,-8 196,-8 202,-8 208,-14 208,-20 208,-20 208,-461 208,-461 208,-467 202,-473 196,-473 196,-473 20,-473 20,-473 14,-473 8,-467 8,-461 8,-461 8,-20 8,-20 8,-14 14,-8 20,-8"/>
-<text text-anchor="start" x="104.6646" y="-454.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">p</text>
-</g>
-<g id="clust2" class="cluster">
-<title>cluster_o0</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M116,-142C116,-142 188,-142 188,-142 194,-142 200,-148 200,-154 200,-154 200,-423 200,-423 200,-429 194,-435 188,-435 188,-435 116,-435 116,-435 110,-435 104,-429 104,-423 104,-423 104,-154 104,-154 104,-148 110,-142 116,-142"/>
-<text text-anchor="start" x="145.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o0</text>
-</g>
-<g id="clust3" class="cluster">
-<title>cluster_o1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36,-16C36,-16 84,-16 84,-16 90,-16 96,-22 96,-28 96,-28 96,-423 96,-423 96,-429 90,-435 84,-435 84,-435 36,-435 36,-435 30,-435 24,-429 24,-423 24,-423 24,-28 24,-28 24,-22 30,-16 36,-16"/>
-<text text-anchor="start" x="53.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o1</text>
-</g>
-<!-- p -->
-<!-- o0 -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="146" cy="-391.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- sa -->
-<g id="node4" class="node">
-<title>sa</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="174,-304 118,-304 118,-268 174,-268 174,-304"/>
-<text text-anchor="start" x="139.6646" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sa</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M130.3333,-269C130.3333,-269 161.6667,-269 161.6667,-269 167.3333,-269 173,-274.6667 173,-280.3333 173,-280.3333 173,-291.6667 173,-291.6667 173,-297.3333 167.3333,-303 161.6667,-303 161.6667,-303 130.3333,-303 130.3333,-303 124.6667,-303 119,-297.3333 119,-291.6667 119,-291.6667 119,-280.3333 119,-280.3333 119,-274.6667 124.6667,-269 130.3333,-269"/>
-</g>
-<!-- initial_400&#45;&gt;sa -->
-<g id="edge2" class="edge">
-<title>initial_400&#45;&gt;sa</title>
-<path fill="none" stroke="#000000" d="M146,-385.8288C146,-381.1736 146,-374.4097 146,-368.5 146,-368.5 146,-368.5 146,-321.5 146,-319.1079 146,-316.6252 146,-314.1342"/>
-<polygon fill="#000000" stroke="#000000" points="149.5001,-314.0597 146,-304.0598 142.5001,-314.0598 149.5001,-314.0597"/>
-<text text-anchor="middle" x="147.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- sb -->
-<g id="node5" class="node">
-<title>sb</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="180,-186 124,-186 124,-150 180,-150 180,-186"/>
-<text text-anchor="start" x="145.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sb</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M136.3333,-151C136.3333,-151 167.6667,-151 167.6667,-151 173.3333,-151 179,-156.6667 179,-162.3333 179,-162.3333 179,-173.6667 179,-173.6667 179,-179.3333 173.3333,-185 167.6667,-185 167.6667,-185 136.3333,-185 136.3333,-185 130.6667,-185 125,-179.3333 125,-173.6667 125,-173.6667 125,-162.3333 125,-162.3333 125,-156.6667 130.6667,-151 136.3333,-151"/>
-</g>
-<!-- sa&#45;&gt;sb -->
-<g id="edge4" class="edge">
-<title>sa&#45;&gt;sb</title>
-<path fill="none" stroke="#000000" d="M173.5774,-267.7844C177.9153,-262.8787 181,-257.0777 181,-250.5 181,-250.5 181,-250.5 181,-203.5 181,-200.5157 180.3777,-197.6439 179.3155,-194.9158"/>
-<polygon fill="#000000" stroke="#000000" points="182.3241,-193.1269 174.2739,-186.2387 176.2715,-196.6436 182.3241,-193.1269"/>
-<text text-anchor="start" x="181" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
-</g>
-<!-- sb&#45;&gt;sa -->
-<g id="edge3" class="edge">
-<title>sb&#45;&gt;sa</title>
-<path fill="none" stroke="#000000" d="M138.7293,-186.3109C136.0314,-191.601 134,-197.5572 134,-203.5 134,-250.5 134,-250.5 134,-250.5 134,-253.0617 134.2839,-255.6751 134.7643,-258.2639"/>
-<polygon fill="#000000" stroke="#000000" points="131.4013,-259.2352 137.4066,-267.9638 138.1552,-257.3954 131.4013,-259.2352"/>
-<text text-anchor="middle" x="135.3895" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- o1 -->
-<!-- initial_401 -->
-<g id="node7" class="node">
-<title>initial_401</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="60" cy="-391.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- sc -->
-<g id="node8" class="node">
-<title>sc</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-304 32,-304 32,-268 88,-268 88,-304"/>
-<text text-anchor="start" x="54" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sc</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-269C44.3333,-269 75.6667,-269 75.6667,-269 81.3333,-269 87,-274.6667 87,-280.3333 87,-280.3333 87,-291.6667 87,-291.6667 87,-297.3333 81.3333,-303 75.6667,-303 75.6667,-303 44.3333,-303 44.3333,-303 38.6667,-303 33,-297.3333 33,-291.6667 33,-291.6667 33,-280.3333 33,-280.3333 33,-274.6667 38.6667,-269 44.3333,-269"/>
-</g>
-<!-- initial_401&#45;&gt;sc -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;sc</title>
-<path fill="none" stroke="#000000" d="M60,-385.8288C60,-381.1736 60,-374.4097 60,-368.5 60,-368.5 60,-368.5 60,-321.5 60,-319.1079 60,-316.6252 60,-314.1342"/>
-<polygon fill="#000000" stroke="#000000" points="63.5001,-314.0597 60,-304.0598 56.5001,-314.0598 63.5001,-314.0597"/>
-<text text-anchor="middle" x="61.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- sd -->
-<g id="node9" class="node">
-<title>sd</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-186 32,-186 32,-150 88,-150 88,-186"/>
-<text text-anchor="start" x="53.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sd</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-151C44.3333,-151 75.6667,-151 75.6667,-151 81.3333,-151 87,-156.6667 87,-162.3333 87,-162.3333 87,-173.6667 87,-173.6667 87,-179.3333 81.3333,-185 75.6667,-185 75.6667,-185 44.3333,-185 44.3333,-185 38.6667,-185 33,-179.3333 33,-173.6667 33,-173.6667 33,-162.3333 33,-162.3333 33,-156.6667 38.6667,-151 44.3333,-151"/>
-</g>
-<!-- sc&#45;&gt;sd -->
-<g id="edge6" class="edge">
-<title>sc&#45;&gt;sd</title>
-<path fill="none" stroke="#000000" d="M60,-267.9402C60,-262.3497 60,-256.1701 60,-250.5 60,-250.5 60,-250.5 60,-203.5 60,-201.1079 60,-198.6252 60,-196.1342"/>
-<polygon fill="#000000" stroke="#000000" points="63.5001,-196.0597 60,-186.0598 56.5001,-196.0598 63.5001,-196.0597"/>
-<text text-anchor="start" x="60" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
-</g>
-<!-- se -->
-<g id="node10" class="node">
-<title>se</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-60 32,-60 32,-24 88,-24 88,-60"/>
-<text text-anchor="start" x="53.6646" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">se</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-25C44.3333,-25 75.6667,-25 75.6667,-25 81.3333,-25 87,-30.6667 87,-36.3333 87,-36.3333 87,-47.6667 87,-47.6667 87,-53.3333 81.3333,-59 75.6667,-59 75.6667,-59 44.3333,-59 44.3333,-59 38.6667,-59 33,-53.3333 33,-47.6667 33,-47.6667 33,-36.3333 33,-36.3333 33,-30.6667 38.6667,-25 44.3333,-25"/>
-</g>
-<!-- sd&#45;&gt;se -->
-<g id="edge5" class="edge">
-<title>sd&#45;&gt;se</title>
-<path fill="none" stroke="#000000" d="M60,-149.7983C60,-142.007 60,-132.8073 60,-124.5 60,-124.5 60,-124.5 60,-77.5 60,-75.1079 60,-72.6252 60,-70.1342"/>
-<polygon fill="#000000" stroke="#000000" points="63.5001,-70.0597 60,-60.0598 56.5001,-70.0598 63.5001,-70.0597"/>
-<text text-anchor="start" x="60" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">g &#160;&#160;</text>
-</g>
-</g>
-</svg>

+ 130 - 0
test/semantics/event_lifeline/32_orthogonal_take_many_queue_c.svg

@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="224pt" height="520pt"
+ viewBox="0.00 0.00 224.00 520.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 516)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-516 220,-516 220,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__p</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 196,-8 196,-8 202,-8 208,-14 208,-20 208,-20 208,-461 208,-461 208,-467 202,-473 196,-473 196,-473 20,-473 20,-473 14,-473 8,-467 8,-461 8,-461 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="104.6646" y="-454.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">p</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster__p_o0</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="104,-142 104,-435 200,-435 200,-142 104,-142"/>
+<text text-anchor="start" x="145.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o0</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster__p_o1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-435 96,-435 96,-16 24,-16"/>
+<text text-anchor="start" x="53.8292" y="-416.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">o1</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-506.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p -->
+<!-- __initial&#45;&gt;_p -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_p</title>
+<path fill="none" stroke="#000000" d="M16,-500.9533C16,-496.7779 16,-490.5043 16,-483.0332"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-482.9971 16,-472.9971 12.5001,-482.9972 19.5001,-482.9971"/>
+<text text-anchor="middle" x="17.3895" y="-484" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _p_o0 -->
+<!-- _p_o0_initial -->
+<g id="node4" class="node">
+<title>_p_o0_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="146" cy="-391.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p_o0_sa -->
+<g id="node5" class="node">
+<title>_p_o0_sa</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="174,-304 118,-304 118,-268 174,-268 174,-304"/>
+<text text-anchor="start" x="139.6646" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sa</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M130.3333,-269C130.3333,-269 161.6667,-269 161.6667,-269 167.3333,-269 173,-274.6667 173,-280.3333 173,-280.3333 173,-291.6667 173,-291.6667 173,-297.3333 167.3333,-303 161.6667,-303 161.6667,-303 130.3333,-303 130.3333,-303 124.6667,-303 119,-297.3333 119,-291.6667 119,-291.6667 119,-280.3333 119,-280.3333 119,-274.6667 124.6667,-269 130.3333,-269"/>
+</g>
+<!-- _p_o0_initial&#45;&gt;_p_o0_sa -->
+<g id="edge2" class="edge">
+<title>_p_o0_initial&#45;&gt;_p_o0_sa</title>
+<path fill="none" stroke="#000000" d="M146,-385.8288C146,-381.1736 146,-374.4097 146,-368.5 146,-368.5 146,-368.5 146,-321.5 146,-319.1079 146,-316.6252 146,-314.1342"/>
+<polygon fill="#000000" stroke="#000000" points="149.5001,-314.0597 146,-304.0598 142.5001,-314.0598 149.5001,-314.0597"/>
+<text text-anchor="middle" x="147.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _p_o0_sb -->
+<g id="node6" class="node">
+<title>_p_o0_sb</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="180,-186 124,-186 124,-150 180,-150 180,-186"/>
+<text text-anchor="start" x="145.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sb</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M136.3333,-151C136.3333,-151 167.6667,-151 167.6667,-151 173.3333,-151 179,-156.6667 179,-162.3333 179,-162.3333 179,-173.6667 179,-173.6667 179,-179.3333 173.3333,-185 167.6667,-185 167.6667,-185 136.3333,-185 136.3333,-185 130.6667,-185 125,-179.3333 125,-173.6667 125,-173.6667 125,-162.3333 125,-162.3333 125,-156.6667 130.6667,-151 136.3333,-151"/>
+</g>
+<!-- _p_o0_sa&#45;&gt;_p_o0_sb -->
+<g id="edge3" class="edge">
+<title>_p_o0_sa&#45;&gt;_p_o0_sb</title>
+<path fill="none" stroke="#000000" d="M137.4066,-267.9638C135.4832,-262.4811 134,-256.3552 134,-250.5 134,-250.5 134,-250.5 134,-203.5 134,-200.9 134.3888,-198.2975 135.0522,-195.7493"/>
+<polygon fill="#000000" stroke="#000000" points="138.3603,-196.8993 138.7293,-186.3109 131.8378,-194.3582 138.3603,-196.8993"/>
+<text text-anchor="start" x="134" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">f &#160;&#160;</text>
+</g>
+<!-- _p_o0_sb&#45;&gt;_p_o0_sa -->
+<g id="edge4" class="edge">
+<title>_p_o0_sb&#45;&gt;_p_o0_sa</title>
+<path fill="none" stroke="#000000" d="M180.0433,-184.7895C185.2038,-189.9346 189,-196.2003 189,-203.5 189,-250.5 189,-250.5 189,-250.5 189,-256.7017 186.3072,-262.0226 182.2694,-266.5151"/>
+<polygon fill="#000000" stroke="#000000" points="179.7039,-264.1072 174.4422,-273.3031 184.2901,-269.3956 179.7039,-264.1072"/>
+<text text-anchor="middle" x="190.3895" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _p_o1 -->
+<!-- _p_o1_initial -->
+<g id="node8" class="node">
+<title>_p_o1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="60" cy="-391.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _p_o1_sc -->
+<g id="node9" class="node">
+<title>_p_o1_sc</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-304 32,-304 32,-268 88,-268 88,-304"/>
+<text text-anchor="start" x="54" y="-282.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sc</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-269C44.3333,-269 75.6667,-269 75.6667,-269 81.3333,-269 87,-274.6667 87,-280.3333 87,-280.3333 87,-291.6667 87,-291.6667 87,-297.3333 81.3333,-303 75.6667,-303 75.6667,-303 44.3333,-303 44.3333,-303 38.6667,-303 33,-297.3333 33,-291.6667 33,-291.6667 33,-280.3333 33,-280.3333 33,-274.6667 38.6667,-269 44.3333,-269"/>
+</g>
+<!-- _p_o1_initial&#45;&gt;_p_o1_sc -->
+<g id="edge5" class="edge">
+<title>_p_o1_initial&#45;&gt;_p_o1_sc</title>
+<path fill="none" stroke="#000000" d="M60,-385.8288C60,-381.1736 60,-374.4097 60,-368.5 60,-368.5 60,-368.5 60,-321.5 60,-319.1079 60,-316.6252 60,-314.1342"/>
+<polygon fill="#000000" stroke="#000000" points="63.5001,-314.0597 60,-304.0598 56.5001,-314.0598 63.5001,-314.0597"/>
+<text text-anchor="middle" x="61.3895" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _p_o1_sd -->
+<g id="node10" class="node">
+<title>_p_o1_sd</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-186 32,-186 32,-150 88,-150 88,-186"/>
+<text text-anchor="start" x="53.6646" y="-164.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">sd</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-151C44.3333,-151 75.6667,-151 75.6667,-151 81.3333,-151 87,-156.6667 87,-162.3333 87,-162.3333 87,-173.6667 87,-173.6667 87,-179.3333 81.3333,-185 75.6667,-185 75.6667,-185 44.3333,-185 44.3333,-185 38.6667,-185 33,-179.3333 33,-173.6667 33,-173.6667 33,-162.3333 33,-162.3333 33,-156.6667 38.6667,-151 44.3333,-151"/>
+</g>
+<!-- _p_o1_sc&#45;&gt;_p_o1_sd -->
+<g id="edge6" class="edge">
+<title>_p_o1_sc&#45;&gt;_p_o1_sd</title>
+<path fill="none" stroke="#000000" d="M60,-267.9402C60,-262.3497 60,-256.1701 60,-250.5 60,-250.5 60,-250.5 60,-203.5 60,-201.1079 60,-198.6252 60,-196.1342"/>
+<polygon fill="#000000" stroke="#000000" points="63.5001,-196.0597 60,-186.0598 56.5001,-196.0598 63.5001,-196.0597"/>
+<text text-anchor="start" x="60" y="-224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
+</g>
+<!-- _p_o1_se -->
+<g id="node11" class="node">
+<title>_p_o1_se</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-60 32,-60 32,-24 88,-24 88,-60"/>
+<text text-anchor="start" x="53.6646" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">se</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-25C44.3333,-25 75.6667,-25 75.6667,-25 81.3333,-25 87,-30.6667 87,-36.3333 87,-36.3333 87,-47.6667 87,-47.6667 87,-53.3333 81.3333,-59 75.6667,-59 75.6667,-59 44.3333,-59 44.3333,-59 38.6667,-59 33,-53.3333 33,-47.6667 33,-47.6667 33,-36.3333 33,-36.3333 33,-30.6667 38.6667,-25 44.3333,-25"/>
+</g>
+<!-- _p_o1_sd&#45;&gt;_p_o1_se -->
+<g id="edge7" class="edge">
+<title>_p_o1_sd&#45;&gt;_p_o1_se</title>
+<path fill="none" stroke="#000000" d="M60,-149.7983C60,-142.007 60,-132.8073 60,-124.5 60,-124.5 60,-124.5 60,-77.5 60,-75.1079 60,-72.6252 60,-70.1342"/>
+<polygon fill="#000000" stroke="#000000" points="63.5001,-70.0597 60,-60.0598 56.5001,-70.0598 63.5001,-70.0597"/>
+<text text-anchor="start" x="60" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">g &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 0 - 67
test/semantics/original_semantics/after.svg

@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="100pt" height="211pt"
- viewBox="0.00 0.00 100.00 211.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 207)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-207 96,-207 96,4 -4,4"/>
-<!-- initial_200 -->
-<g id="node1" class="node">
-<title>initial_200</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="64" cy="-197.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- s1 -->
-<g id="node2" class="node">
-<title>s1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="92,-164 36,-164 36,-128 92,-128 92,-164"/>
-<text text-anchor="start" x="57.6646" y="-142.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">s1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M48.3333,-129C48.3333,-129 79.6667,-129 79.6667,-129 85.3333,-129 91,-134.6667 91,-140.3333 91,-140.3333 91,-151.6667 91,-151.6667 91,-157.3333 85.3333,-163 79.6667,-163 79.6667,-163 48.3333,-163 48.3333,-163 42.6667,-163 37,-157.3333 37,-151.6667 37,-151.6667 37,-140.3333 37,-140.3333 37,-134.6667 42.6667,-129 48.3333,-129"/>
-</g>
-<!-- initial_200&#45;&gt;s1 -->
-<g id="edge4" class="edge">
-<title>initial_200&#45;&gt;s1</title>
-<path fill="none" stroke="#000000" d="M64,-191.9886C64,-187.6293 64,-181.1793 64,-174.4801"/>
-<polygon fill="#000000" stroke="#000000" points="67.5001,-174.0122 64,-164.0122 60.5001,-174.0122 67.5001,-174.0122"/>
-<text text-anchor="middle" x="65.3895" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- s2 -->
-<g id="node3" class="node">
-<title>s2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-100 0,-100 0,-64 56,-64 56,-100"/>
-<text text-anchor="start" x="21.6646" y="-78.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">s2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-65C12.3333,-65 43.6667,-65 43.6667,-65 49.3333,-65 55,-70.6667 55,-76.3333 55,-76.3333 55,-87.6667 55,-87.6667 55,-93.3333 49.3333,-99 43.6667,-99 43.6667,-99 12.3333,-99 12.3333,-99 6.6667,-99 1,-93.3333 1,-87.6667 1,-87.6667 1,-76.3333 1,-76.3333 1,-70.6667 6.6667,-65 12.3333,-65"/>
-</g>
-<!-- s1&#45;&gt;s2 -->
-<g id="edge2" class="edge">
-<title>s1&#45;&gt;s2</title>
-<path fill="none" stroke="#000000" d="M53.7801,-127.8314C50.5399,-122.0709 46.8831,-115.57 43.3638,-109.3134"/>
-<polygon fill="#000000" stroke="#000000" points="46.3236,-107.4362 38.3704,-100.4363 40.2226,-110.868 46.3236,-107.4362"/>
-<text text-anchor="middle" x="51.3895" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- s3 -->
-<g id="node4" class="node">
-<title>s3</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="92,-36 36,-36 36,0 92,0 92,-36"/>
-<text text-anchor="start" x="57.6646" y="-14.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">s3</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M48.3333,-1C48.3333,-1 79.6667,-1 79.6667,-1 85.3333,-1 91,-6.6667 91,-12.3333 91,-12.3333 91,-23.6667 91,-23.6667 91,-29.3333 85.3333,-35 79.6667,-35 79.6667,-35 48.3333,-35 48.3333,-35 42.6667,-35 37,-29.3333 37,-23.6667 37,-23.6667 37,-12.3333 37,-12.3333 37,-6.6667 42.6667,-1 48.3333,-1"/>
-</g>
-<!-- s1&#45;&gt;s3 -->
-<g id="edge3" class="edge">
-<title>s1&#45;&gt;s3</title>
-<path fill="none" stroke="#000000" d="M65.4709,-127.6585C66.0756,-119.238 66.703,-109.1187 67,-100 67.5209,-84.0085 67.5209,-79.9915 67,-64 66.8144,-58.3008 66.4997,-52.2108 66.1421,-46.3889"/>
-<polygon fill="#000000" stroke="#000000" points="69.6298,-46.086 65.4709,-36.3415 62.6454,-46.5526 69.6298,-46.086"/>
-<text text-anchor="middle" x="69.3895" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- s2&#45;&gt;s3 -->
-<g id="edge1" class="edge">
-<title>s2&#45;&gt;s3</title>
-<path fill="none" stroke="#000000" d="M38.2199,-63.8314C41.4601,-58.0709 45.1169,-51.57 48.6362,-45.3134"/>
-<polygon fill="#000000" stroke="#000000" points="51.7774,-46.868 53.6296,-36.4363 45.6764,-43.4362 51.7774,-46.868"/>
-<text text-anchor="middle" x="51.3895" y="-47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-</g>
-</svg>

+ 67 - 0
test/semantics/original_semantics/after_Class1.svg

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="144pt" height="211pt"
+ viewBox="0.00 0.00 144.02 211.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 207)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-207 140.019,-207 140.019,4 -4,4"/>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="69" cy="-197.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _s1 -->
+<g id="node2" class="node">
+<title>_s1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="97,-164 41,-164 41,-128 97,-128 97,-164"/>
+<text text-anchor="start" x="62.6646" y="-142.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">s1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M53.3333,-129C53.3333,-129 84.6667,-129 84.6667,-129 90.3333,-129 96,-134.6667 96,-140.3333 96,-140.3333 96,-151.6667 96,-151.6667 96,-157.3333 90.3333,-163 84.6667,-163 84.6667,-163 53.3333,-163 53.3333,-163 47.6667,-163 42,-157.3333 42,-151.6667 42,-151.6667 42,-140.3333 42,-140.3333 42,-134.6667 47.6667,-129 53.3333,-129"/>
+</g>
+<!-- __initial&#45;&gt;_s1 -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_s1</title>
+<path fill="none" stroke="#000000" d="M69,-191.9886C69,-187.6293 69,-181.1793 69,-174.4801"/>
+<polygon fill="#000000" stroke="#000000" points="72.5001,-174.0122 69,-164.0122 65.5001,-174.0122 72.5001,-174.0122"/>
+<text text-anchor="middle" x="70.3895" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _s2 -->
+<g id="node3" class="node">
+<title>_s2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="56,-100 0,-100 0,-64 56,-64 56,-100"/>
+<text text-anchor="start" x="21.6646" y="-78.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">s2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-65C12.3333,-65 43.6667,-65 43.6667,-65 49.3333,-65 55,-70.6667 55,-76.3333 55,-76.3333 55,-87.6667 55,-87.6667 55,-93.3333 49.3333,-99 43.6667,-99 43.6667,-99 12.3333,-99 12.3333,-99 6.6667,-99 1,-93.3333 1,-87.6667 1,-87.6667 1,-76.3333 1,-76.3333 1,-70.6667 6.6667,-65 12.3333,-65"/>
+</g>
+<!-- _s1&#45;&gt;_s2 -->
+<g id="edge2" class="edge">
+<title>_s1&#45;&gt;_s2</title>
+<path fill="none" stroke="#000000" d="M44.1195,-127.7278C41.822,-125.3183 39.7117,-122.7299 37.981,-120 36.0602,-116.9702 34.5073,-113.5814 33.2523,-110.109"/>
+<polygon fill="#000000" stroke="#000000" points="36.5687,-108.9767 30.4459,-100.3302 29.8403,-110.9077 36.5687,-108.9767"/>
+<text text-anchor="start" x="38" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_after_0 &#160;&#160;</text>
+</g>
+<!-- _s3 -->
+<g id="node4" class="node">
+<title>_s3</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="92,-36 36,-36 36,0 92,0 92,-36"/>
+<text text-anchor="start" x="57.6646" y="-14.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">s3</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M48.3333,-1C48.3333,-1 79.6667,-1 79.6667,-1 85.3333,-1 91,-6.6667 91,-12.3333 91,-12.3333 91,-23.6667 91,-23.6667 91,-29.3333 85.3333,-35 79.6667,-35 79.6667,-35 48.3333,-35 48.3333,-35 42.6667,-35 37,-29.3333 37,-23.6667 37,-23.6667 37,-12.3333 37,-12.3333 37,-6.6667 42.6667,-1 48.3333,-1"/>
+</g>
+<!-- _s1&#45;&gt;_s3 -->
+<g id="edge3" class="edge">
+<title>_s1&#45;&gt;_s3</title>
+<path fill="none" stroke="#000000" d="M81.0594,-127.7691C82.264,-125.2446 83.2991,-122.6176 84,-120 91.9863,-90.1758 94.4602,-78.0937 83.6392,-45.8391"/>
+<polygon fill="#000000" stroke="#000000" points="86.8571,-44.4401 80.2281,-36.1753 80.2562,-46.7701 86.8571,-44.4401"/>
+<text text-anchor="start" x="91" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_after_1 &#160;&#160;</text>
+</g>
+<!-- _s2&#45;&gt;_s3 -->
+<g id="edge4" class="edge">
+<title>_s2&#45;&gt;_s3</title>
+<path fill="none" stroke="#000000" d="M30.7285,-63.8404C31.8881,-58.7751 33.5197,-53.2857 38.4301,-44.5809"/>
+<polygon fill="#000000" stroke="#000000" points="41.4263,-46.39 43.6599,-36.0333 35.4553,-42.7367 41.4263,-46.39"/>
+<text text-anchor="start" x="38" y="-47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_after_2 &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 0 - 61
test/semantics/original_semantics/correct_duplicate_state_id.svg

@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="159pt" height="183pt"
- viewBox="0.00 0.00 158.50 183.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 179)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-179 154.5,-179 154.5,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_state0</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M34.5,-8C34.5,-8 66.5,-8 66.5,-8 72.5,-8 78.5,-14 78.5,-20 78.5,-20 78.5,-155 78.5,-155 78.5,-161 72.5,-167 66.5,-167 66.5,-167 34.5,-167 34.5,-167 28.5,-167 22.5,-161 22.5,-155 22.5,-155 22.5,-20 22.5,-20 22.5,-14 28.5,-8 34.5,-8"/>
-<text text-anchor="start" x="34.159" y="-148.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state0</text>
-</g>
-<g id="clust2" class="cluster">
-<title>cluster_state1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M98.5,-44C98.5,-44 130.5,-44 130.5,-44 136.5,-44 142.5,-50 142.5,-56 142.5,-56 142.5,-89 142.5,-89 142.5,-95 136.5,-101 130.5,-101 130.5,-101 98.5,-101 98.5,-101 92.5,-101 86.5,-95 86.5,-89 86.5,-89 86.5,-56 86.5,-56 86.5,-50 92.5,-44 98.5,-44"/>
-<text text-anchor="start" x="98.159" y="-82.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
-</g>
-<!-- initial_200 -->
-<g id="node1" class="node">
-<title>initial_200</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="5.5" cy="-57.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- state1 -->
-<!-- initial_200&#45;&gt;state1 -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;state1</title>
-<path fill="none" stroke="#000000" d="M9.2761,-52.779C11.5348,-50.0803 14.5348,-46.7053 17.5,-44 26.8834,-35.4391 38.8346,-26.9804 46.8043,-21.6384"/>
-<polygon fill="#000000" stroke="#000000" points="48.95,-24.4185 55.435,-16.0402 45.1406,-18.5457 48.95,-24.4185"/>
-<text text-anchor="middle" x="42.8895" y="-27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state0 -->
-<!-- initial_300 -->
-<g id="node3" class="node">
-<title>initial_300</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="42.5" cy="-123.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- initial_300&#45;&gt;state1 -->
-<g id="edge2" class="edge">
-<title>initial_300&#45;&gt;state1</title>
-<path fill="none" stroke="#000000" d="M43.1625,-118.0213C45.2304,-100.9216 51.5873,-48.3553 54.2774,-26.1103"/>
-<polygon fill="#000000" stroke="#000000" points="57.767,-26.406 55.493,-16.0582 50.8176,-25.5656 57.767,-26.406"/>
-<text text-anchor="middle" x="52.8895" y="-54.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- initial_301 -->
-<g id="node5" class="node">
-<title>initial_301</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="100.5" cy="-57.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- initial_301&#45;&gt;state1 -->
-<g id="edge1" class="edge">
-<title>initial_301&#45;&gt;state1</title>
-<path fill="none" stroke="#000000" d="M96.3472,-53.6702C88.759,-46.6722 72.5565,-31.7298 62.9956,-22.9126"/>
-<polygon fill="#000000" stroke="#000000" points="65.3096,-20.2854 55.5856,-16.0789 60.5639,-25.4313 65.3096,-20.2854"/>
-<text text-anchor="middle" x="76.8895" y="-27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-</g>
-</svg>

+ 89 - 0
test/semantics/original_semantics/correct_duplicate_state_id_Class1.svg

@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="292pt" height="322pt"
+ viewBox="0.00 0.00 292.00 322.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 318)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-318 288,-318 288,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__state0</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M160,-69C160,-69 264,-69 264,-69 270,-69 276,-75 276,-81 276,-81 276,-294 276,-294 276,-300 270,-306 264,-306 264,-306 160,-306 160,-306 154,-306 148,-300 148,-294 148,-294 148,-81 148,-81 148,-75 154,-69 160,-69"/>
+<text text-anchor="start" x="195.659" y="-287.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state0</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster__state1</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 124,-8 124,-8 130,-8 136,-14 136,-20 136,-20 136,-192 136,-192 136,-198 130,-204 124,-204 124,-204 20,-204 20,-204 14,-204 8,-198 8,-192 8,-192 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="55.659" y="-185.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="128" cy="-250" rx="5.5" ry="5.5"/>
+</g>
+<!-- _state1 -->
+<!-- __initial&#45;&gt;_state1 -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_state1</title>
+<path fill="none" stroke="#000000" d="M128,-244.2238C128,-237.8 128,-226.6728 128,-214.2119"/>
+<polygon fill="#000000" stroke="#000000" points="131.5001,-213.997 128,-203.997 124.5001,-213.997 131.5001,-213.997"/>
+<text text-anchor="middle" x="129.3895" y="-215" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _state0 -->
+<!-- _state0_initial -->
+<g id="node3" class="node">
+<title>_state0_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="240" cy="-250" rx="5.5" ry="5.5"/>
+</g>
+<!-- _state0_state1 -->
+<g id="node4" class="node">
+<title>_state0_state1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="268,-113 212,-113 212,-77 268,-77 268,-113"/>
+<text text-anchor="start" x="223.659" y="-91.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M224.3333,-78C224.3333,-78 255.6667,-78 255.6667,-78 261.3333,-78 267,-83.6667 267,-89.3333 267,-89.3333 267,-100.6667 267,-100.6667 267,-106.3333 261.3333,-112 255.6667,-112 255.6667,-112 224.3333,-112 224.3333,-112 218.6667,-112 213,-106.3333 213,-100.6667 213,-100.6667 213,-89.3333 213,-89.3333 213,-83.6667 218.6667,-78 224.3333,-78"/>
+</g>
+<!-- _state0_initial&#45;&gt;_state0_state1 -->
+<g id="edge2" class="edge">
+<title>_state0_initial&#45;&gt;_state0_state1</title>
+<path fill="none" stroke="#000000" d="M240,-244.4835C240,-225.3899 240,-161.223 240,-123.4498"/>
+<polygon fill="#000000" stroke="#000000" points="243.5001,-123.104 240,-113.104 236.5001,-123.1041 243.5001,-123.104"/>
+<text text-anchor="middle" x="241.3895" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _state0_state0 -->
+<g id="node5" class="node">
+<title>_state0_state0</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="212,-268 156,-268 156,-232 212,-232 212,-268"/>
+<text text-anchor="start" x="167.659" y="-246.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state0</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M168.3333,-233C168.3333,-233 199.6667,-233 199.6667,-233 205.3333,-233 211,-238.6667 211,-244.3333 211,-244.3333 211,-255.6667 211,-255.6667 211,-261.3333 205.3333,-267 199.6667,-267 199.6667,-267 168.3333,-267 168.3333,-267 162.6667,-267 157,-261.3333 157,-255.6667 157,-255.6667 157,-244.3333 157,-244.3333 157,-238.6667 162.6667,-233 168.3333,-233"/>
+</g>
+<!-- _state1_initial -->
+<g id="node7" class="node">
+<title>_state1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="100" cy="-148" rx="5.5" ry="5.5"/>
+</g>
+<!-- _state1_state1 -->
+<g id="node8" class="node">
+<title>_state1_state1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="128,-52 72,-52 72,-16 128,-16 128,-52"/>
+<text text-anchor="start" x="83.659" y="-30.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M84.3333,-17C84.3333,-17 115.6667,-17 115.6667,-17 121.3333,-17 127,-22.6667 127,-28.3333 127,-28.3333 127,-39.6667 127,-39.6667 127,-45.3333 121.3333,-51 115.6667,-51 115.6667,-51 84.3333,-51 84.3333,-51 78.6667,-51 73,-45.3333 73,-39.6667 73,-39.6667 73,-28.3333 73,-28.3333 73,-22.6667 78.6667,-17 84.3333,-17"/>
+</g>
+<!-- _state1_initial&#45;&gt;_state1_state1 -->
+<g id="edge3" class="edge">
+<title>_state1_initial&#45;&gt;_state1_state1</title>
+<path fill="none" stroke="#000000" d="M100,-142.19C100,-127.6898 100,-89.1406 100,-62.2132"/>
+<polygon fill="#000000" stroke="#000000" points="103.5001,-62.1877 100,-52.1877 96.5001,-62.1878 103.5001,-62.1877"/>
+<text text-anchor="middle" x="101.3895" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _state1_state0 -->
+<g id="node9" class="node">
+<title>_state1_state0</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-166 16,-166 16,-130 72,-130 72,-166"/>
+<text text-anchor="start" x="27.659" y="-144.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state0</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-131C28.3333,-131 59.6667,-131 59.6667,-131 65.3333,-131 71,-136.6667 71,-142.3333 71,-142.3333 71,-153.6667 71,-153.6667 71,-159.3333 65.3333,-165 59.6667,-165 59.6667,-165 28.3333,-165 28.3333,-165 22.6667,-165 17,-159.3333 17,-153.6667 17,-153.6667 17,-142.3333 17,-142.3333 17,-136.6667 22.6667,-131 28.3333,-131"/>
+</g>
+</g>
+</svg>

+ 0 - 149
test/semantics/original_semantics/enter_exit_hierarchy.svg

@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="324pt" height="622pt"
- viewBox="0.00 0.00 324.02 621.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 617.5)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-617.5 320.018,-617.5 320.018,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_composite</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 236,-8 236,-8 242,-8 248,-14 248,-20 248,-20 248,-498.5 248,-498.5 248,-504.5 242,-510.5 236,-510.5 236,-510.5 20,-510.5 20,-510.5 14,-510.5 8,-504.5 8,-498.5 8,-498.5 8,-20 8,-20 8,-14 14,-8 20,-8"/>
-<text text-anchor="start" x="100.6622" y="-491.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">composite</text>
-</g>
-<g id="clust2" class="cluster">
-<title>cluster_state1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M28,-16C28,-16 92,-16 92,-16 98,-16 104,-22 104,-28 104,-28 104,-329.5 104,-329.5 104,-335.5 98,-341.5 92,-341.5 92,-341.5 28,-341.5 28,-341.5 22,-341.5 16,-335.5 16,-329.5 16,-329.5 16,-28 16,-28 16,-22 22,-16 28,-16"/>
-<text text-anchor="start" x="43.659" y="-322.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
-</g>
-<g id="clust3" class="cluster">
-<title>cluster_state2</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M124,-213C124,-213 228,-213 228,-213 234,-213 240,-219 240,-225 240,-225 240,-460.5 240,-460.5 240,-466.5 234,-472.5 228,-472.5 228,-472.5 124,-472.5 124,-472.5 118,-472.5 112,-466.5 112,-460.5 112,-460.5 112,-225 112,-225 112,-219 118,-213 124,-213"/>
-<text text-anchor="start" x="159.659" y="-453.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state2</text>
-</g>
-<!-- initial_200 -->
-<g id="node1" class="node">
-<title>initial_200</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="148" cy="-608" rx="5.5" ry="5.5"/>
-</g>
-<!-- outside -->
-<g id="node2" class="node">
-<title>outside</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="178,-574.5 118,-574.5 118,-538.5 178,-538.5 178,-574.5"/>
-<text text-anchor="start" x="128.6596" y="-552.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outside</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M130.3333,-539.5C130.3333,-539.5 165.6667,-539.5 165.6667,-539.5 171.3333,-539.5 177,-545.1667 177,-550.8333 177,-550.8333 177,-562.1667 177,-562.1667 177,-567.8333 171.3333,-573.5 165.6667,-573.5 165.6667,-573.5 130.3333,-573.5 130.3333,-573.5 124.6667,-573.5 119,-567.8333 119,-562.1667 119,-562.1667 119,-550.8333 119,-550.8333 119,-545.1667 124.6667,-539.5 130.3333,-539.5"/>
-</g>
-<!-- initial_200&#45;&gt;outside -->
-<g id="edge6" class="edge">
-<title>initial_200&#45;&gt;outside</title>
-<path fill="none" stroke="#000000" d="M148,-602.4886C148,-598.1293 148,-591.6793 148,-584.9801"/>
-<polygon fill="#000000" stroke="#000000" points="151.5001,-584.5122 148,-574.5122 144.5001,-584.5122 151.5001,-584.5122"/>
-<text text-anchor="middle" x="149.3895" y="-585.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- composite -->
-<!-- outside&#45;&gt;composite -->
-<g id="edge3" class="edge">
-<title>outside&#45;&gt;composite</title>
-<path fill="none" stroke="#000000" d="M117.9483,-554.3833C85.4255,-551.3936 36.6597,-544.6364 25.203,-530.5 21.845,-526.3565 21.6822,-522.506 25.203,-518.5 40.9147,-500.6232 60.8869,-522.1148 78.5457,-516.0082"/>
-<polygon fill="#000000" stroke="#000000" points="80.532,-518.8914 87,-510.5 76.7108,-513.0264 80.532,-518.8914"/>
-<text text-anchor="start" x="26" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_composite &#160;&#160;</text>
-</g>
-<!-- inner3 -->
-<g id="node11" class="node">
-<title>inner3</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="232,-257 176,-257 176,-221 232,-221 232,-257"/>
-<text text-anchor="start" x="187.3296" y="-235.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner3</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M188.3333,-222C188.3333,-222 219.6667,-222 219.6667,-222 225.3333,-222 231,-227.6667 231,-233.3333 231,-233.3333 231,-244.6667 231,-244.6667 231,-250.3333 225.3333,-256 219.6667,-256 219.6667,-256 188.3333,-256 188.3333,-256 182.6667,-256 177,-250.3333 177,-244.6667 177,-244.6667 177,-233.3333 177,-233.3333 177,-227.6667 182.6667,-222 188.3333,-222"/>
-</g>
-<!-- outside&#45;&gt;inner3 -->
-<g id="edge4" class="edge">
-<title>outside&#45;&gt;inner3</title>
-<path fill="none" stroke="#000000" d="M178.1575,-550.7681C200.3217,-544.8043 228.9306,-533.0404 243,-510.5 265.7739,-474.0141 266,-459.5102 266,-416.5 266,-416.5 266,-416.5 266,-274.5 266,-260.9259 254.6696,-252.4699 241.6961,-247.2367"/>
-<polygon fill="#000000" stroke="#000000" points="242.692,-243.8785 232.0975,-243.9686 240.4358,-250.5049 242.692,-243.8785"/>
-<text text-anchor="start" x="266" y="-352.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_inner3 &#160;&#160;</text>
-</g>
-<!-- inner4 -->
-<g id="node12" class="node">
-<title>inner4</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="176,-434.5 120,-434.5 120,-398.5 176,-398.5 176,-434.5"/>
-<text text-anchor="start" x="131.3296" y="-412.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner4</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M132.3333,-399.5C132.3333,-399.5 163.6667,-399.5 163.6667,-399.5 169.3333,-399.5 175,-405.1667 175,-410.8333 175,-410.8333 175,-422.1667 175,-422.1667 175,-427.8333 169.3333,-433.5 163.6667,-433.5 163.6667,-433.5 132.3333,-433.5 132.3333,-433.5 126.6667,-433.5 121,-427.8333 121,-422.1667 121,-422.1667 121,-410.8333 121,-410.8333 121,-405.1667 126.6667,-399.5 132.3333,-399.5"/>
-</g>
-<!-- outside&#45;&gt;inner4 -->
-<g id="edge5" class="edge">
-<title>outside&#45;&gt;inner4</title>
-<path fill="none" stroke="#000000" d="M160.0594,-538.2691C161.264,-535.7446 162.2991,-533.1176 163,-530.5 170.7364,-501.6088 164.2791,-467.4865 157.5922,-444.1526"/>
-<polygon fill="#000000" stroke="#000000" points="160.9278,-443.0917 154.6538,-434.5543 154.2344,-445.1408 160.9278,-443.0917"/>
-<text text-anchor="start" x="164" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_inner4 &#160;&#160;</text>
-</g>
-<!-- composite&#45;&gt;outside -->
-<g id="edge2" class="edge">
-<title>composite&#45;&gt;outside</title>
-<path fill="none" stroke="#000000" d="M94.9356,-510.4987C96.9702,-517.5325 99.7694,-524.2951 103.532,-530.5 105.2477,-533.3293 107.3963,-535.8839 109.8169,-538.1841"/>
-<polygon fill="#000000" stroke="#000000" points="107.6914,-540.9649 117.7337,-544.3417 111.989,-535.4395 107.6914,-540.9649"/>
-<text text-anchor="start" x="103" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_outside &#160;&#160;</text>
-</g>
-<!-- initial_301 -->
-<g id="node4" class="node">
-<title>initial_301</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="70" cy="-416.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- state1 -->
-<!-- initial_301&#45;&gt;state1 -->
-<g id="edge1" class="edge">
-<title>initial_301&#45;&gt;state1</title>
-<path fill="none" stroke="#000000" d="M70.1929,-410.7845C70.5595,-399.9234 71.3912,-375.2844 72.184,-351.7979"/>
-<polygon fill="#000000" stroke="#000000" points="75.6924,-351.6076 72.5318,-341.4952 68.6963,-351.3714 75.6924,-351.6076"/>
-<text text-anchor="middle" x="72.3895" y="-372.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- initial_400 -->
-<g id="node6" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="46" cy="-298" rx="5.5" ry="5.5"/>
-</g>
-<!-- inner1 -->
-<g id="node7" class="node">
-<title>inner1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="80,-178 24,-178 24,-142 80,-142 80,-178"/>
-<text text-anchor="start" x="35.3296" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36.3333,-143C36.3333,-143 67.6667,-143 67.6667,-143 73.3333,-143 79,-148.6667 79,-154.3333 79,-154.3333 79,-165.6667 79,-165.6667 79,-171.3333 73.3333,-177 67.6667,-177 67.6667,-177 36.3333,-177 36.3333,-177 30.6667,-177 25,-171.3333 25,-165.6667 25,-165.6667 25,-154.3333 25,-154.3333 25,-148.6667 30.6667,-143 36.3333,-143"/>
-</g>
-<!-- initial_400&#45;&gt;inner1 -->
-<g id="edge8" class="edge">
-<title>initial_400&#45;&gt;inner1</title>
-<path fill="none" stroke="#000000" d="M47.1513,-292.2317C47.9973,-287.4904 49,-280.5872 49,-274.5 49,-274.5 49,-274.5 49,-195.5 49,-193.0994 49.069,-190.6107 49.186,-188.1158"/>
-<polygon fill="#000000" stroke="#000000" points="52.6848,-188.2528 49.8839,-178.0349 45.7015,-187.7692 52.6848,-188.2528"/>
-<text text-anchor="middle" x="50.3895" y="-236" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- inner2 -->
-<g id="node8" class="node">
-<title>inner2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="80,-60 24,-60 24,-24 80,-24 80,-60"/>
-<text text-anchor="start" x="35.3296" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36.3333,-25C36.3333,-25 67.6667,-25 67.6667,-25 73.3333,-25 79,-30.6667 79,-36.3333 79,-36.3333 79,-47.6667 79,-47.6667 79,-53.3333 73.3333,-59 67.6667,-59 67.6667,-59 36.3333,-59 36.3333,-59 30.6667,-59 25,-53.3333 25,-47.6667 25,-47.6667 25,-36.3333 25,-36.3333 25,-30.6667 30.6667,-25 36.3333,-25"/>
-</g>
-<!-- inner1&#45;&gt;inner2 -->
-<g id="edge9" class="edge">
-<title>inner1&#45;&gt;inner2</title>
-<path fill="none" stroke="#000000" d="M47.7033,-141.6741C46.7416,-136.1833 46,-130.1255 46,-124.5 46,-124.5 46,-124.5 46,-77.5 46,-75.2146 46.1224,-72.8579 46.3322,-70.4969"/>
-<polygon fill="#000000" stroke="#000000" points="49.8359,-70.7039 47.7033,-60.3259 42.8986,-69.7687 49.8359,-70.7039"/>
-<text text-anchor="start" x="46" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_inner2 &#160;&#160;</text>
-</g>
-<!-- state2 -->
-<!-- initial_401 -->
-<g id="node10" class="node">
-<title>initial_401</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="204" cy="-416.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- initial_401&#45;&gt;inner3 -->
-<g id="edge7" class="edge">
-<title>initial_401&#45;&gt;inner3</title>
-<path fill="none" stroke="#000000" d="M204,-410.9294C204,-403.0427 204,-388.1701 204,-375.5 204,-375.5 204,-375.5 204,-274.5 204,-272.1079 204,-269.6252 204,-267.1342"/>
-<polygon fill="#000000" stroke="#000000" points="207.5001,-267.0597 204,-257.0598 200.5001,-267.0598 207.5001,-267.0597"/>
-<text text-anchor="middle" x="205.3895" y="-295" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-</g>
-</svg>

+ 149 - 0
test/semantics/original_semantics/enter_exit_hierarchy_Class1.svg

@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="347pt" height="622pt"
+ viewBox="0.00 0.00 346.59 621.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 617.5)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-617.5 342.5925,-617.5 342.5925,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__composite</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M21.0175,-8C21.0175,-8 248.0175,-8 248.0175,-8 254.0175,-8 260.0175,-14 260.0175,-20 260.0175,-20 260.0175,-498.5 260.0175,-498.5 260.0175,-504.5 254.0175,-510.5 248.0175,-510.5 248.0175,-510.5 21.0175,-510.5 21.0175,-510.5 15.0175,-510.5 9.0175,-504.5 9.0175,-498.5 9.0175,-498.5 9.0175,-20 9.0175,-20 9.0175,-14 15.0175,-8 21.0175,-8"/>
+<text text-anchor="start" x="107.1797" y="-491.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">composite</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster__composite_state1</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M29.0175,-16C29.0175,-16 104.0175,-16 104.0175,-16 110.0175,-16 116.0175,-22 116.0175,-28 116.0175,-28 116.0175,-329.5 116.0175,-329.5 116.0175,-335.5 110.0175,-341.5 104.0175,-341.5 104.0175,-341.5 29.0175,-341.5 29.0175,-341.5 23.0175,-341.5 17.0175,-335.5 17.0175,-329.5 17.0175,-329.5 17.0175,-28 17.0175,-28 17.0175,-22 23.0175,-16 29.0175,-16"/>
+<text text-anchor="start" x="50.1765" y="-322.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster__composite_state2</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M136.0175,-213C136.0175,-213 240.0175,-213 240.0175,-213 246.0175,-213 252.0175,-219 252.0175,-225 252.0175,-225 252.0175,-460.5 252.0175,-460.5 252.0175,-466.5 246.0175,-472.5 240.0175,-472.5 240.0175,-472.5 136.0175,-472.5 136.0175,-472.5 130.0175,-472.5 124.0175,-466.5 124.0175,-460.5 124.0175,-460.5 124.0175,-225 124.0175,-225 124.0175,-219 130.0175,-213 136.0175,-213"/>
+<text text-anchor="start" x="171.6765" y="-453.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state2</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="154.0175" cy="-608" rx="5.5" ry="5.5"/>
+</g>
+<!-- _outside -->
+<g id="node2" class="node">
+<title>_outside</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="184.0175,-574.5 124.0175,-574.5 124.0175,-538.5 184.0175,-538.5 184.0175,-574.5"/>
+<text text-anchor="start" x="134.6771" y="-552.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outside</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M136.3508,-539.5C136.3508,-539.5 171.6842,-539.5 171.6842,-539.5 177.3508,-539.5 183.0175,-545.1667 183.0175,-550.8333 183.0175,-550.8333 183.0175,-562.1667 183.0175,-562.1667 183.0175,-567.8333 177.3508,-573.5 171.6842,-573.5 171.6842,-573.5 136.3508,-573.5 136.3508,-573.5 130.6842,-573.5 125.0175,-567.8333 125.0175,-562.1667 125.0175,-562.1667 125.0175,-550.8333 125.0175,-550.8333 125.0175,-545.1667 130.6842,-539.5 136.3508,-539.5"/>
+</g>
+<!-- __initial&#45;&gt;_outside -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_outside</title>
+<path fill="none" stroke="#000000" d="M154.0175,-602.4886C154.0175,-598.1293 154.0175,-591.6793 154.0175,-584.9801"/>
+<polygon fill="#000000" stroke="#000000" points="157.5176,-584.5122 154.0175,-574.5122 150.5176,-584.5122 157.5176,-584.5122"/>
+<text text-anchor="middle" x="155.407" y="-585.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _composite -->
+<!-- _outside&#45;&gt;_composite -->
+<g id="edge2" class="edge">
+<title>_outside&#45;&gt;_composite</title>
+<path fill="none" stroke="#000000" d="M123.9637,-553.4117C82.0816,-548.8009 10.3958,-539.6738 2.6635,-530.5 -.7737,-526.422 -.9449,-522.4273 2.6635,-518.5 14.8429,-505.2443 64.1734,-519.5278 87.6413,-514.7679"/>
+<polygon fill="#000000" stroke="#000000" points="89.3661,-517.8284 97.0175,-510.5 86.466,-511.4574 89.3661,-517.8284"/>
+<text text-anchor="start" x="3.0175" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.to_composite &#160;&#160;</text>
+</g>
+<!-- _composite_state2_inner3 -->
+<g id="node11" class="node">
+<title>_composite_state2_inner3</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="244.0175,-257 188.0175,-257 188.0175,-221 244.0175,-221 244.0175,-257"/>
+<text text-anchor="start" x="199.3471" y="-235.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner3</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M200.3508,-222C200.3508,-222 231.6842,-222 231.6842,-222 237.3508,-222 243.0175,-227.6667 243.0175,-233.3333 243.0175,-233.3333 243.0175,-244.6667 243.0175,-244.6667 243.0175,-250.3333 237.3508,-256 231.6842,-256 231.6842,-256 200.3508,-256 200.3508,-256 194.6842,-256 189.0175,-250.3333 189.0175,-244.6667 189.0175,-244.6667 189.0175,-233.3333 189.0175,-233.3333 189.0175,-227.6667 194.6842,-222 200.3508,-222"/>
+</g>
+<!-- _outside&#45;&gt;_composite_state2_inner3 -->
+<g id="edge3" class="edge">
+<title>_outside&#45;&gt;_composite_state2_inner3</title>
+<path fill="none" stroke="#000000" d="M184.1737,-553.3204C202.7088,-550.0875 226.069,-543.5807 243.0175,-530.5 273.1611,-507.2355 278.0175,-448.2363 278.0175,-416.5 278.0175,-416.5 278.0175,-416.5 278.0175,-274.5 278.0175,-260.9259 266.6871,-252.4699 253.7136,-247.2367"/>
+<polygon fill="#000000" stroke="#000000" points="254.7095,-243.8785 244.115,-243.9686 252.4533,-250.5049 254.7095,-243.8785"/>
+<text text-anchor="start" x="278.0175" y="-352.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.to_inner3 &#160;&#160;</text>
+</g>
+<!-- _composite_state2_inner4 -->
+<g id="node12" class="node">
+<title>_composite_state2_inner4</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="188.0175,-434.5 132.0175,-434.5 132.0175,-398.5 188.0175,-398.5 188.0175,-434.5"/>
+<text text-anchor="start" x="143.3471" y="-412.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner4</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M144.3508,-399.5C144.3508,-399.5 175.6842,-399.5 175.6842,-399.5 181.3508,-399.5 187.0175,-405.1667 187.0175,-410.8333 187.0175,-410.8333 187.0175,-422.1667 187.0175,-422.1667 187.0175,-427.8333 181.3508,-433.5 175.6842,-433.5 175.6842,-433.5 144.3508,-433.5 144.3508,-433.5 138.6842,-433.5 133.0175,-427.8333 133.0175,-422.1667 133.0175,-422.1667 133.0175,-410.8333 133.0175,-410.8333 133.0175,-405.1667 138.6842,-399.5 144.3508,-399.5"/>
+</g>
+<!-- _outside&#45;&gt;_composite_state2_inner4 -->
+<g id="edge4" class="edge">
+<title>_outside&#45;&gt;_composite_state2_inner4</title>
+<path fill="none" stroke="#000000" d="M170.2456,-538.3247C171.7789,-535.8303 173.1006,-533.1958 174.0175,-530.5 183.6378,-502.215 177.2018,-467.9894 170.2085,-444.4654"/>
+<polygon fill="#000000" stroke="#000000" points="173.492,-443.2417 167.1175,-434.7791 166.8233,-445.3698 173.492,-443.2417"/>
+<text text-anchor="start" x="177.0175" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.to_inner4 &#160;&#160;</text>
+</g>
+<!-- _composite&#45;&gt;_outside -->
+<g id="edge9" class="edge">
+<title>_composite&#45;&gt;_outside</title>
+<path fill="none" stroke="#000000" d="M99.3705,-510.4983C99.9622,-519.1024 101.3786,-526.1956 103.9925,-530.5 106.7788,-535.0883 110.6672,-538.904 115.0576,-542.0674"/>
+<polygon fill="#000000" stroke="#000000" points="113.5804,-545.2616 123.9615,-547.3788 117.1665,-539.25 113.5804,-545.2616"/>
+<text text-anchor="start" x="103.0175" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.to_outside &#160;&#160;</text>
+</g>
+<!-- _composite_initial -->
+<g id="node4" class="node">
+<title>_composite_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="80.0175" cy="-416.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _composite_state1 -->
+<!-- _composite_initial&#45;&gt;_composite_state1 -->
+<g id="edge5" class="edge">
+<title>_composite_initial&#45;&gt;_composite_state1</title>
+<path fill="none" stroke="#000000" d="M80.0175,-410.7845C80.0175,-399.9234 80.0175,-375.2844 80.0175,-351.7979"/>
+<polygon fill="#000000" stroke="#000000" points="83.5176,-351.4951 80.0175,-341.4952 76.5176,-351.4952 83.5176,-351.4951"/>
+<text text-anchor="middle" x="81.407" y="-372.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _composite_state1_initial -->
+<g id="node6" class="node">
+<title>_composite_state1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="52.0175" cy="-298" rx="5.5" ry="5.5"/>
+</g>
+<!-- _composite_state1_inner1 -->
+<g id="node7" class="node">
+<title>_composite_state1_inner1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="81.0175,-178 25.0175,-178 25.0175,-142 81.0175,-142 81.0175,-178"/>
+<text text-anchor="start" x="36.3471" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M37.3508,-143C37.3508,-143 68.6842,-143 68.6842,-143 74.3508,-143 80.0175,-148.6667 80.0175,-154.3333 80.0175,-154.3333 80.0175,-165.6667 80.0175,-165.6667 80.0175,-171.3333 74.3508,-177 68.6842,-177 68.6842,-177 37.3508,-177 37.3508,-177 31.6842,-177 26.0175,-171.3333 26.0175,-165.6667 26.0175,-165.6667 26.0175,-154.3333 26.0175,-154.3333 26.0175,-148.6667 31.6842,-143 37.3508,-143"/>
+</g>
+<!-- _composite_state1_initial&#45;&gt;_composite_state1_inner1 -->
+<g id="edge6" class="edge">
+<title>_composite_state1_initial&#45;&gt;_composite_state1_inner1</title>
+<path fill="none" stroke="#000000" d="M52.0175,-292.2055C52.0175,-287.4491 52.0175,-280.5382 52.0175,-274.5 52.0175,-274.5 52.0175,-274.5 52.0175,-195.5 52.0175,-193.107 52.0405,-190.6235 52.0795,-188.1322"/>
+<polygon fill="#000000" stroke="#000000" points="55.5803,-188.1351 52.3121,-178.057 48.5821,-187.9735 55.5803,-188.1351"/>
+<text text-anchor="middle" x="53.407" y="-236" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _composite_state1_inner2 -->
+<g id="node8" class="node">
+<title>_composite_state1_inner2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="81.0175,-60 25.0175,-60 25.0175,-24 81.0175,-24 81.0175,-60"/>
+<text text-anchor="start" x="36.3471" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M37.3508,-25C37.3508,-25 68.6842,-25 68.6842,-25 74.3508,-25 80.0175,-30.6667 80.0175,-36.3333 80.0175,-36.3333 80.0175,-47.6667 80.0175,-47.6667 80.0175,-53.3333 74.3508,-59 68.6842,-59 68.6842,-59 37.3508,-59 37.3508,-59 31.6842,-59 26.0175,-53.3333 26.0175,-47.6667 26.0175,-47.6667 26.0175,-36.3333 26.0175,-36.3333 26.0175,-30.6667 31.6842,-25 37.3508,-25"/>
+</g>
+<!-- _composite_state1_inner1&#45;&gt;_composite_state1_inner2 -->
+<g id="edge7" class="edge">
+<title>_composite_state1_inner1&#45;&gt;_composite_state1_inner2</title>
+<path fill="none" stroke="#000000" d="M48.7208,-141.6741C47.7591,-136.1833 47.0175,-130.1255 47.0175,-124.5 47.0175,-124.5 47.0175,-124.5 47.0175,-77.5 47.0175,-75.2146 47.1399,-72.8579 47.3497,-70.4969"/>
+<polygon fill="#000000" stroke="#000000" points="50.8534,-70.7039 48.7208,-60.3259 43.9161,-69.7687 50.8534,-70.7039"/>
+<text text-anchor="start" x="47.0175" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.to_inner2 &#160;&#160;</text>
+</g>
+<!-- _composite_state2 -->
+<!-- _composite_state2_initial -->
+<g id="node10" class="node">
+<title>_composite_state2_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="216.0175" cy="-416.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _composite_state2_initial&#45;&gt;_composite_state2_inner3 -->
+<g id="edge8" class="edge">
+<title>_composite_state2_initial&#45;&gt;_composite_state2_inner3</title>
+<path fill="none" stroke="#000000" d="M216.0175,-410.9294C216.0175,-403.0427 216.0175,-388.1701 216.0175,-375.5 216.0175,-375.5 216.0175,-375.5 216.0175,-274.5 216.0175,-272.1079 216.0175,-269.6252 216.0175,-267.1342"/>
+<polygon fill="#000000" stroke="#000000" points="219.5176,-267.0597 216.0175,-257.0598 212.5176,-267.0598 219.5176,-267.0597"/>
+<text text-anchor="middle" x="217.407" y="-295" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+</g>
+</svg>

+ 0 - 98
test/semantics/original_semantics/history.svg

@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="160pt" height="326pt"
- viewBox="0.00 0.00 159.50 326.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 322)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-322 155.5,-322 155.5,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_composite_1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 104,-8 104,-8 110,-8 116,-14 116,-20 116,-20 116,-242 116,-242 116,-248 110,-254 104,-254 104,-254 20,-254 20,-254 14,-254 8,-248 8,-242 8,-242 8,-20 8,-20 8,-14 14,-8 20,-8"/>
-<text text-anchor="start" x="27.9914" y="-235.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">composite_1</text>
-</g>
-<!-- initial_200 -->
-<g id="node1" class="node">
-<title>initial_200</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="146" cy="-300" rx="5.5" ry="5.5"/>
-</g>
-<!-- composite_1 -->
-<!-- initial_200&#45;&gt;composite_1 -->
-<g id="edge4" class="edge">
-<title>initial_200&#45;&gt;composite_1</title>
-<path fill="none" stroke="#000000" d="M144.0633,-294.8016C139.6072,-282.8404 128.3374,-252.59 119.5715,-229.0604"/>
-<polygon fill="#000000" stroke="#000000" points="122.7661,-227.6096 115.9952,-219.4607 116.2065,-230.0534 122.7661,-227.6096"/>
-<text text-anchor="middle" x="136.3895" y="-265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_3 -->
-<g id="node2" class="node">
-<title>state_3</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="79.5,-318 18.5,-318 18.5,-282 79.5,-282 79.5,-318"/>
-<text text-anchor="start" x="29.8236" y="-296.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_3</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M30.8333,-283C30.8333,-283 67.1667,-283 67.1667,-283 72.8333,-283 78.5,-288.6667 78.5,-294.3333 78.5,-294.3333 78.5,-305.6667 78.5,-305.6667 78.5,-311.3333 72.8333,-317 67.1667,-317 67.1667,-317 30.8333,-317 30.8333,-317 25.1667,-317 19.5,-311.3333 19.5,-305.6667 19.5,-305.6667 19.5,-294.3333 19.5,-294.3333 19.5,-288.6667 25.1667,-283 30.8333,-283"/>
-</g>
-<!-- composite_history -->
-<g id="node7" class="node">
-<title>composite_history</title>
-<ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="34" cy="-198" rx="18" ry="18"/>
-<text text-anchor="middle" x="34" y="-194.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
-</g>
-<!-- state_3&#45;&gt;composite_history -->
-<g id="edge1" class="edge">
-<title>state_3&#45;&gt;composite_history</title>
-<path fill="none" stroke="#000000" d="M43.1002,-281.9299C42.3829,-279.2905 41.7264,-276.5896 41.221,-274 38.1867,-258.4508 36.4116,-240.853 35.3814,-226.5096"/>
-<polygon fill="#000000" stroke="#000000" points="38.8576,-226.0212 34.7303,-216.2634 31.8716,-226.4652 38.8576,-226.0212"/>
-<text text-anchor="middle" x="43.3895" y="-265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- composite_1&#45;&gt;state_3 -->
-<g id="edge3" class="edge">
-<title>composite_1&#45;&gt;state_3</title>
-<path fill="none" stroke="#000000" d="M97,-254C89.2324,-262.7201 81.1384,-254.7645 71.972,-262 68.0918,-265.0629 64.7141,-268.9756 61.8306,-273.1203"/>
-<polygon fill="#000000" stroke="#000000" points="58.7878,-271.3883 56.6035,-281.7555 64.7761,-275.0132 58.7878,-271.3883"/>
-<text text-anchor="start" x="71" y="-265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_3 &#160;&#160;</text>
-</g>
-<!-- initial_300 -->
-<g id="node4" class="node">
-<title>initial_300</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="80" cy="-198" rx="5.5" ry="5.5"/>
-</g>
-<!-- state_1 -->
-<g id="node5" class="node">
-<title>state_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="80.5,-134 19.5,-134 19.5,-98 80.5,-98 80.5,-134"/>
-<text text-anchor="start" x="30.8236" y="-112.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M31.8333,-99C31.8333,-99 68.1667,-99 68.1667,-99 73.8333,-99 79.5,-104.6667 79.5,-110.3333 79.5,-110.3333 79.5,-121.6667 79.5,-121.6667 79.5,-127.3333 73.8333,-133 68.1667,-133 68.1667,-133 31.8333,-133 31.8333,-133 26.1667,-133 20.5,-127.3333 20.5,-121.6667 20.5,-121.6667 20.5,-110.3333 20.5,-110.3333 20.5,-104.6667 26.1667,-99 31.8333,-99"/>
-</g>
-<!-- initial_300&#45;&gt;state_1 -->
-<g id="edge2" class="edge">
-<title>initial_300&#45;&gt;state_1</title>
-<path fill="none" stroke="#000000" d="M78.0316,-192.6198C74.4574,-182.8503 66.6723,-161.571 60.2114,-143.9112"/>
-<polygon fill="#000000" stroke="#000000" points="63.325,-142.2347 56.6022,-134.046 56.7511,-144.6398 63.325,-142.2347"/>
-<text text-anchor="middle" x="67.3895" y="-154" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_2 -->
-<g id="node6" class="node">
-<title>state_2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="80.5,-52 19.5,-52 19.5,-16 80.5,-16 80.5,-52"/>
-<text text-anchor="start" x="30.8236" y="-30.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M31.8333,-17C31.8333,-17 68.1667,-17 68.1667,-17 73.8333,-17 79.5,-22.6667 79.5,-28.3333 79.5,-28.3333 79.5,-39.6667 79.5,-39.6667 79.5,-45.3333 73.8333,-51 68.1667,-51 68.1667,-51 31.8333,-51 31.8333,-51 26.1667,-51 20.5,-45.3333 20.5,-39.6667 20.5,-39.6667 20.5,-28.3333 20.5,-28.3333 20.5,-22.6667 26.1667,-17 31.8333,-17"/>
-</g>
-<!-- state_1&#45;&gt;state_2 -->
-<g id="edge6" class="edge">
-<title>state_1&#45;&gt;state_2</title>
-<path fill="none" stroke="#000000" d="M50,-97.8015C50,-87.3976 50,-74.1215 50,-62.3768"/>
-<polygon fill="#000000" stroke="#000000" points="53.5001,-62.1476 50,-52.1476 46.5001,-62.1476 53.5001,-62.1476"/>
-<text text-anchor="start" x="50" y="-72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_2 &#160;&#160;</text>
-</g>
-<!-- composite_history&#45;&gt;state_1 -->
-<g id="edge5" class="edge">
-<title>composite_history&#45;&gt;state_1</title>
-<path fill="none" stroke="#000000" d="M37.4718,-180.2072C39.5332,-169.6421 42.1929,-156.0115 44.531,-144.0288"/>
-<polygon fill="#000000" stroke="#000000" points="47.9998,-144.5264 46.4798,-134.0412 41.1294,-143.1858 47.9998,-144.5264"/>
-<text text-anchor="middle" x="45.3895" y="-154" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-</g>
-</svg>

+ 91 - 0
test/semantics/original_semantics/history_Class1.svg

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="171pt" height="326pt"
+ viewBox="0.00 0.00 170.50 326.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 322)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-322 166.5,-322 166.5,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__composite_1</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 104,-8 104,-8 110,-8 116,-14 116,-20 116,-20 116,-242 116,-242 116,-248 110,-254 104,-254 104,-254 20,-254 20,-254 14,-254 8,-248 8,-242 8,-242 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="27.9914" y="-235.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">composite_1</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="157" cy="-300" rx="5.5" ry="5.5"/>
+</g>
+<!-- _composite_1 -->
+<!-- __initial&#45;&gt;_composite_1 -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_composite_1</title>
+<path fill="none" stroke="#000000" d="M154.5027,-294.8016C148.3303,-281.9529 132.0196,-248.0001 120.4632,-223.9439"/>
+<polygon fill="#000000" stroke="#000000" points="123.4814,-222.1436 115.9963,-214.6453 117.1717,-225.1748 123.4814,-222.1436"/>
+<text text-anchor="middle" x="144.3895" y="-265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _state_3 -->
+<g id="node2" class="node">
+<title>_state_3</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="79.5,-318 18.5,-318 18.5,-282 79.5,-282 79.5,-318"/>
+<text text-anchor="start" x="29.8236" y="-296.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_3</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M30.8333,-283C30.8333,-283 67.1667,-283 67.1667,-283 72.8333,-283 78.5,-288.6667 78.5,-294.3333 78.5,-294.3333 78.5,-305.6667 78.5,-305.6667 78.5,-311.3333 72.8333,-317 67.1667,-317 67.1667,-317 30.8333,-317 30.8333,-317 25.1667,-317 19.5,-311.3333 19.5,-305.6667 19.5,-305.6667 19.5,-294.3333 19.5,-294.3333 19.5,-288.6667 25.1667,-283 30.8333,-283"/>
+</g>
+<!-- _composite_1_composite_history -->
+<g id="node7" class="node">
+<title>_composite_1_composite_history</title>
+<ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="34" cy="-198" rx="18" ry="18"/>
+<text text-anchor="middle" x="34" y="-194.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
+</g>
+<!-- _state_3&#45;&gt;_composite_1_composite_history -->
+<g id="edge5" class="edge">
+<title>_state_3&#45;&gt;_composite_1_composite_history</title>
+<path fill="none" stroke="#000000" d="M43.1002,-281.9299C42.3829,-279.2905 41.7264,-276.5896 41.221,-274 38.1867,-258.4508 36.4116,-240.853 35.3814,-226.5096"/>
+<polygon fill="#000000" stroke="#000000" points="38.8576,-226.0212 34.7303,-216.2634 31.8716,-226.4652 38.8576,-226.0212"/>
+<text text-anchor="middle" x="43.3895" y="-265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _composite_1&#45;&gt;_state_3 -->
+<g id="edge4" class="edge">
+<title>_composite_1&#45;&gt;_state_3</title>
+<path fill="none" stroke="#000000" d="M97,-254C88.0467,-263.6894 78.626,-253.6466 68.415,-262 64.8348,-264.9289 61.8461,-268.6896 59.3733,-272.702"/>
+<polygon fill="#000000" stroke="#000000" points="56.2251,-271.1706 54.7547,-281.6629 62.4472,-274.3776 56.2251,-271.1706"/>
+<text text-anchor="start" x="68" y="-265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.to_state_3 &#160;&#160;</text>
+</g>
+<!-- _composite_1_initial -->
+<g id="node4" class="node">
+<title>_composite_1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="80" cy="-198" rx="5.5" ry="5.5"/>
+</g>
+<!-- _composite_1_state_1 -->
+<g id="node5" class="node">
+<title>_composite_1_state_1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="92.5,-134 31.5,-134 31.5,-98 92.5,-98 92.5,-134"/>
+<text text-anchor="start" x="42.8236" y="-112.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M43.8333,-99C43.8333,-99 80.1667,-99 80.1667,-99 85.8333,-99 91.5,-104.6667 91.5,-110.3333 91.5,-110.3333 91.5,-121.6667 91.5,-121.6667 91.5,-127.3333 85.8333,-133 80.1667,-133 80.1667,-133 43.8333,-133 43.8333,-133 38.1667,-133 32.5,-127.3333 32.5,-121.6667 32.5,-121.6667 32.5,-110.3333 32.5,-110.3333 32.5,-104.6667 38.1667,-99 43.8333,-99"/>
+</g>
+<!-- _composite_1_initial&#45;&gt;_composite_1_state_1 -->
+<g id="edge2" class="edge">
+<title>_composite_1_initial&#45;&gt;_composite_1_state_1</title>
+<path fill="none" stroke="#000000" d="M78.819,-192.6198C76.6745,-182.8503 72.0034,-161.571 68.1269,-143.9112"/>
+<polygon fill="#000000" stroke="#000000" points="71.5241,-143.063 65.9613,-134.046 64.6869,-144.5639 71.5241,-143.063"/>
+<text text-anchor="middle" x="73.3895" y="-154" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _composite_1_state_2 -->
+<g id="node6" class="node">
+<title>_composite_1_state_2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="77.5,-52 16.5,-52 16.5,-16 77.5,-16 77.5,-52"/>
+<text text-anchor="start" x="27.8236" y="-30.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M28.8333,-17C28.8333,-17 65.1667,-17 65.1667,-17 70.8333,-17 76.5,-22.6667 76.5,-28.3333 76.5,-28.3333 76.5,-39.6667 76.5,-39.6667 76.5,-45.3333 70.8333,-51 65.1667,-51 65.1667,-51 28.8333,-51 28.8333,-51 23.1667,-51 17.5,-45.3333 17.5,-39.6667 17.5,-39.6667 17.5,-28.3333 17.5,-28.3333 17.5,-22.6667 23.1667,-17 28.8333,-17"/>
+</g>
+<!-- _composite_1_state_1&#45;&gt;_composite_1_state_2 -->
+<g id="edge3" class="edge">
+<title>_composite_1_state_1&#45;&gt;_composite_1_state_2</title>
+<path fill="none" stroke="#000000" d="M58.671,-97.8015C56.7484,-87.2915 54.2897,-73.8503 52.1252,-62.0177"/>
+<polygon fill="#000000" stroke="#000000" points="55.562,-61.3545 50.3197,-52.1476 48.6763,-62.6142 55.562,-61.3545"/>
+<text text-anchor="start" x="56" y="-72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.to_state_2 &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 130 - 125
test/semantics/original_semantics/history_deep.svg

@@ -4,242 +4,247 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: state transitions Pages: 1 -->
-<svg width="441pt" height="1568pt"
- viewBox="0.00 0.00 441.00 1567.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1563.5)">
+<svg width="441pt" height="1599pt"
+ viewBox="0.00 0.00 441.00 1598.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1594.5)">
 <title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1563.5 437,-1563.5 437,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1594.5 437,-1594.5 437,4 -4,4"/>
 <g id="clust1" class="cluster">
-<title>cluster_parallel</title>
+<title>cluster__parallel</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 413,-8 413,-8 419,-8 425,-14 425,-20 425,-20 425,-1539.5 425,-1539.5 425,-1545.5 419,-1551.5 413,-1551.5 413,-1551.5 20,-1551.5 20,-1551.5 14,-1551.5 8,-1545.5 8,-1539.5 8,-1539.5 8,-20 8,-20 8,-14 14,-8 20,-8"/>
 <text text-anchor="start" x="197.1668" y="-1532.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel</text>
 </g>
 <g id="clust2" class="cluster">
-<title>cluster_orthogonal</title>
+<title>cluster__parallel_orthogonal</title>
 <polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="149,-16 149,-1513.5 417,-1513.5 417,-16 149,-16"/>
 <text text-anchor="start" x="254.656" y="-1494.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal</text>
 </g>
 <g id="clust3" class="cluster">
-<title>cluster_wrapper</title>
+<title>cluster__parallel_orthogonal_wrapper</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M169,-24C169,-24 397,-24 397,-24 403,-24 409,-30 409,-36 409,-36 409,-1345.5 409,-1345.5 409,-1351.5 403,-1357.5 397,-1357.5 397,-1357.5 169,-1357.5 169,-1357.5 163,-1357.5 157,-1351.5 157,-1345.5 157,-1345.5 157,-36 157,-36 157,-30 163,-24 169,-24"/>
 <text text-anchor="start" x="261.8322" y="-1338.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">wrapper</text>
 </g>
 <g id="clust4" class="cluster">
-<title>cluster_state_1</title>
+<title>cluster__parallel_orthogonal_wrapper_state_1</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M177,-553C177,-553 287,-553 287,-553 293,-553 299,-559 299,-565 299,-565 299,-1071.5 299,-1071.5 299,-1077.5 293,-1083.5 287,-1083.5 287,-1083.5 177,-1083.5 177,-1083.5 171,-1083.5 165,-1077.5 165,-1071.5 165,-1071.5 165,-565 165,-565 165,-559 171,-553 177,-553"/>
 <text text-anchor="start" x="212.8236" y="-1064.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
 </g>
 <g id="clust5" class="cluster">
-<title>cluster_state_2</title>
+<title>cluster__parallel_orthogonal_wrapper_state_2</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M319,-32C319,-32 389,-32 389,-32 395,-32 401,-38 401,-44 401,-44 401,-797.5 401,-797.5 401,-803.5 395,-809.5 389,-809.5 389,-809.5 319,-809.5 319,-809.5 313,-809.5 307,-803.5 307,-797.5 307,-797.5 307,-44 307,-44 307,-38 313,-32 319,-32"/>
 <text text-anchor="start" x="334.8236" y="-790.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
 </g>
 <g id="clust6" class="cluster">
-<title>cluster_orthogonal_tester</title>
+<title>cluster__parallel_orthogonal_tester</title>
 <polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-740 24,-1501 141,-1501 141,-740 24,-740"/>
 <text text-anchor="start" x="36.3176" y="-1482.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_tester</text>
 </g>
-<!-- parallel -->
-<!-- orthogonal -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="381" cy="-1457.5" rx="5.5" ry="5.5"/>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-1585" rx="5.5" ry="5.5"/>
 </g>
-<!-- wrapper -->
-<!-- initial_400&#45;&gt;wrapper -->
-<g id="edge2" class="edge">
-<title>initial_400&#45;&gt;wrapper</title>
-<path fill="none" stroke="#000000" d="M382.5141,-1452.0144C384.2915,-1445.0806 387,-1432.751 387,-1422 387,-1422 387,-1422 387,-1375 387,-1372.4287 386.8171,-1369.8556 386.477,-1367.2938"/>
-<polygon fill="#000000" stroke="#000000" points="389.9023,-1366.5739 384.4405,-1357.4954 383.0488,-1367.9984 389.9023,-1366.5739"/>
-<text text-anchor="middle" x="388.3895" y="-1395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<!-- _parallel -->
+<!-- __initial&#45;&gt;_parallel -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_parallel</title>
+<path fill="none" stroke="#000000" d="M16,-1579.1903C16,-1575.1144 16,-1569.1212 16,-1561.946"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-1561.4982 16,-1551.4982 12.5001,-1561.4982 19.5001,-1561.4982"/>
+<text text-anchor="middle" x="17.3895" y="-1562.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- outer -->
+<!-- _parallel_orthogonal -->
+<!-- _parallel_orthogonal_initial -->
 <g id="node4" class="node">
-<title>outer</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="278,-1475.5 222,-1475.5 222,-1439.5 278,-1439.5 278,-1475.5"/>
-<text text-anchor="start" x="236.329" y="-1453.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M234.3333,-1440.5C234.3333,-1440.5 265.6667,-1440.5 265.6667,-1440.5 271.3333,-1440.5 277,-1446.1667 277,-1451.8333 277,-1451.8333 277,-1463.1667 277,-1463.1667 277,-1468.8333 271.3333,-1474.5 265.6667,-1474.5 265.6667,-1474.5 234.3333,-1474.5 234.3333,-1474.5 228.6667,-1474.5 223,-1468.8333 223,-1463.1667 223,-1463.1667 223,-1451.8333 223,-1451.8333 223,-1446.1667 228.6667,-1440.5 234.3333,-1440.5"/>
+<title>_parallel_orthogonal_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="372" cy="-1457.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- history -->
-<g id="node7" class="node">
-<title>history</title>
-<ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="226" cy="-1301.5" rx="18" ry="18"/>
-<text text-anchor="middle" x="226" y="-1297.9" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
+<!-- _parallel_orthogonal_wrapper -->
+<!-- _parallel_orthogonal_initial&#45;&gt;_parallel_orthogonal_wrapper -->
+<g id="edge2" class="edge">
+<title>_parallel_orthogonal_initial&#45;&gt;_parallel_orthogonal_wrapper</title>
+<path fill="none" stroke="#000000" d="M372,-1451.9659C372,-1444.982 372,-1432.6007 372,-1422 372,-1422 372,-1422 372,-1375 372,-1372.5596 371.871,-1370.0984 371.6313,-1367.6314"/>
+<polygon fill="#000000" stroke="#000000" points="375.0515,-1366.845 370.0681,-1357.4953 368.1332,-1367.912 375.0515,-1366.845"/>
+<text text-anchor="middle" x="373.3895" y="-1395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_outer -->
+<g id="node5" class="node">
+<title>_parallel_orthogonal_outer</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="263,-1475.5 207,-1475.5 207,-1439.5 263,-1439.5 263,-1475.5"/>
+<text text-anchor="start" x="221.329" y="-1453.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M219.3333,-1440.5C219.3333,-1440.5 250.6667,-1440.5 250.6667,-1440.5 256.3333,-1440.5 262,-1446.1667 262,-1451.8333 262,-1451.8333 262,-1463.1667 262,-1463.1667 262,-1468.8333 256.3333,-1474.5 250.6667,-1474.5 250.6667,-1474.5 219.3333,-1474.5 219.3333,-1474.5 213.6667,-1474.5 208,-1468.8333 208,-1463.1667 208,-1463.1667 208,-1451.8333 208,-1451.8333 208,-1446.1667 213.6667,-1440.5 219.3333,-1440.5"/>
+</g>
+<!-- _parallel_orthogonal_wrapper_history -->
+<g id="node8" class="node">
+<title>_parallel_orthogonal_wrapper_history</title>
+<ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="187" cy="-1301.5" rx="18" ry="18"/>
+<text text-anchor="middle" x="187" y="-1297.9" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
+</g>
+<!-- _parallel_orthogonal_outer&#45;&gt;_parallel_orthogonal_wrapper_history -->
+<g id="edge9" class="edge">
+<title>_parallel_orthogonal_outer&#45;&gt;_parallel_orthogonal_wrapper_history</title>
+<path fill="none" stroke="#000000" d="M206.8006,-1447.6078C196.3523,-1442.0016 187,-1433.7122 187,-1422 187,-1422 187,-1422 187,-1375 187,-1360.0982 187,-1343.497 187,-1329.8478"/>
+<polygon fill="#000000" stroke="#000000" points="190.5001,-1329.6232 187,-1319.6232 183.5001,-1329.6233 190.5001,-1329.6232"/>
+<text text-anchor="start" x="187" y="-1395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_history &#160;&#160;</text>
 </g>
-<!-- outer&#45;&gt;history -->
-<g id="edge3" class="edge">
-<title>outer&#45;&gt;history</title>
-<path fill="none" stroke="#000000" d="M221.8006,-1447.6078C211.3523,-1442.0016 202,-1433.7122 202,-1422 202,-1422 202,-1422 202,-1375 202,-1358.4734 207.551,-1340.8431 213.3137,-1326.9932"/>
-<polygon fill="#000000" stroke="#000000" points="216.605,-1328.2056 217.4709,-1317.6462 210.209,-1325.3609 216.605,-1328.2056"/>
-<text text-anchor="start" x="202" y="-1395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_history &#160;&#160;</text>
+<!-- _parallel_orthogonal_wrapper&#45;&gt;_parallel_orthogonal_outer -->
+<g id="edge8" class="edge">
+<title>_parallel_orthogonal_wrapper&#45;&gt;_parallel_orthogonal_outer</title>
+<path fill="none" stroke="#000000" d="M308,-1357.5C298.4795,-1367.1598 283,-1361.4372 283,-1375 283,-1422 283,-1422 283,-1422 283,-1430.2352 278.3764,-1436.7781 271.9991,-1441.886"/>
+<polygon fill="#000000" stroke="#000000" points="269.6751,-1439.2222 263.1994,-1447.6078 273.491,-1445.0907 269.6751,-1439.2222"/>
+<text text-anchor="start" x="283" y="-1395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_outer &#160;&#160;</text>
 </g>
-<!-- wrapper&#45;&gt;outer -->
-<g id="edge5" class="edge">
-<title>wrapper&#45;&gt;outer</title>
-<path fill="none" stroke="#000000" d="M308.8281,-1357.4962C302.4885,-1366.5801 298,-1373.5304 298,-1375 298,-1422 298,-1422 298,-1422 298,-1430.2352 293.3764,-1436.7781 286.9991,-1441.886"/>
-<polygon fill="#000000" stroke="#000000" points="284.6751,-1439.2222 278.1994,-1447.6078 288.491,-1445.0907 284.6751,-1439.2222"/>
-<text text-anchor="start" x="298" y="-1395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_outer &#160;&#160;</text>
-</g>
-<!-- initial_500 -->
-<g id="node6" class="node">
-<title>initial_500</title>
+<!-- _parallel_orthogonal_wrapper_initial -->
+<g id="node7" class="node">
+<title>_parallel_orthogonal_wrapper_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="291" cy="-1301.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- state_1 -->
-<!-- initial_500&#45;&gt;state_1 -->
-<g id="edge4" class="edge">
-<title>initial_500&#45;&gt;state_1</title>
+<!-- _parallel_orthogonal_wrapper_state_1 -->
+<!-- _parallel_orthogonal_wrapper_initial&#45;&gt;_parallel_orthogonal_wrapper_state_1 -->
+<g id="edge3" class="edge">
+<title>_parallel_orthogonal_wrapper_initial&#45;&gt;_parallel_orthogonal_wrapper_state_1</title>
 <path fill="none" stroke="#000000" d="M291,-1295.9659C291,-1288.982 291,-1276.6007 291,-1266 291,-1266 291,-1266 291,-1101 291,-1098.6063 291,-1096.1687 291,-1093.7066"/>
 <polygon fill="#000000" stroke="#000000" points="294.5001,-1093.4956 291,-1083.4957 287.5001,-1093.4957 294.5001,-1093.4956"/>
 <text text-anchor="middle" x="292.3895" y="-1180.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- history&#45;&gt;state_1 -->
-<g id="edge6" class="edge">
-<title>history&#45;&gt;state_1</title>
-<path fill="none" stroke="#000000" d="M230.1672,-1283.9027C231.191,-1278.2226 232,-1271.8756 232,-1266 232,-1266 232,-1266 232,-1101 232,-1082.0184 255.2283,-1094.6011 271.4717,-1089.1607"/>
-<polygon fill="#000000" stroke="#000000" points="273.6039,-1091.9464 280,-1083.5 269.7327,-1086.1142 273.6039,-1091.9464"/>
-<text text-anchor="middle" x="233.3895" y="-1180.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_2 -->
-<!-- state_1&#45;&gt;state_2 -->
-<g id="edge9" class="edge">
-<title>state_1&#45;&gt;state_2</title>
+<!-- _parallel_orthogonal_wrapper_state_2 -->
+<!-- _parallel_orthogonal_wrapper_state_1&#45;&gt;_parallel_orthogonal_wrapper_state_2 -->
+<g id="edge5" class="edge">
+<title>_parallel_orthogonal_wrapper_state_1&#45;&gt;_parallel_orthogonal_wrapper_state_2</title>
 <path fill="none" stroke="#000000" d="M298.9989,-1023.7913C309.3297,-1018.3846 326,-1007.2911 326,-992 326,-992 326,-992 326,-827 326,-818.4104 333.1955,-818.3213 339.8948,-815.6936"/>
 <polygon fill="#000000" stroke="#000000" points="342.1794,-818.3527 348,-809.5 337.9291,-812.7907 342.1794,-818.3527"/>
 <text text-anchor="start" x="326" y="-906.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_2 &#160;&#160;</text>
 </g>
-<!-- initial_600 -->
-<g id="node9" class="node">
-<title>initial_600</title>
+<!-- _parallel_orthogonal_wrapper_state_1_initial -->
+<g id="node10" class="node">
+<title>_parallel_orthogonal_wrapper_state_1_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="263" cy="-1027.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- inner_1 -->
-<g id="node10" class="node">
-<title>inner_1</title>
+<!-- _parallel_orthogonal_wrapper_state_1_inner_1 -->
+<g id="node11" class="node">
+<title>_parallel_orthogonal_wrapper_state_1_inner_1</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="291,-597 229,-597 229,-561 291,-561 291,-597"/>
 <text text-anchor="start" x="239.9942" y="-575.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_1</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M241.3333,-562C241.3333,-562 278.6667,-562 278.6667,-562 284.3333,-562 290,-567.6667 290,-573.3333 290,-573.3333 290,-584.6667 290,-584.6667 290,-590.3333 284.3333,-596 278.6667,-596 278.6667,-596 241.3333,-596 241.3333,-596 235.6667,-596 230,-590.3333 230,-584.6667 230,-584.6667 230,-573.3333 230,-573.3333 230,-567.6667 235.6667,-562 241.3333,-562"/>
 </g>
-<!-- initial_600&#45;&gt;inner_1 -->
-<g id="edge8" class="edge">
-<title>initial_600&#45;&gt;inner_1</title>
+<!-- _parallel_orthogonal_wrapper_state_1_initial&#45;&gt;_parallel_orthogonal_wrapper_state_1_inner_1 -->
+<g id="edge4" class="edge">
+<title>_parallel_orthogonal_wrapper_state_1_initial&#45;&gt;_parallel_orthogonal_wrapper_state_1_inner_1</title>
 <path fill="none" stroke="#000000" d="M262.4953,-1021.9713C261.9028,-1014.993 261,-1002.6175 261,-992 261,-992 261,-992 261,-614.5 261,-612.107 260.977,-609.6235 260.938,-607.1322"/>
 <polygon fill="#000000" stroke="#000000" points="264.4354,-606.9735 260.7054,-597.057 257.4372,-607.1351 264.4354,-606.9735"/>
 <text text-anchor="middle" x="262.3895" y="-763" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- inner_2 -->
-<g id="node11" class="node">
-<title>inner_2</title>
+<!-- _parallel_orthogonal_wrapper_state_1_inner_2 -->
+<g id="node12" class="node">
+<title>_parallel_orthogonal_wrapper_state_1_inner_2</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="235,-1045.5 173,-1045.5 173,-1009.5 235,-1009.5 235,-1045.5"/>
 <text text-anchor="start" x="183.9942" y="-1023.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_2</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M185.3333,-1010.5C185.3333,-1010.5 222.6667,-1010.5 222.6667,-1010.5 228.3333,-1010.5 234,-1016.1667 234,-1021.8333 234,-1021.8333 234,-1033.1667 234,-1033.1667 234,-1038.8333 228.3333,-1044.5 222.6667,-1044.5 222.6667,-1044.5 185.3333,-1044.5 185.3333,-1044.5 179.6667,-1044.5 174,-1038.8333 174,-1033.1667 174,-1033.1667 174,-1021.8333 174,-1021.8333 174,-1016.1667 179.6667,-1010.5 185.3333,-1010.5"/>
 </g>
-<!-- initial_601 -->
-<g id="node13" class="node">
-<title>initial_601</title>
+<!-- _parallel_orthogonal_wrapper_state_2_initial -->
+<g id="node14" class="node">
+<title>_parallel_orthogonal_wrapper_state_2_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="331" cy="-766" rx="5.5" ry="5.5"/>
 </g>
-<!-- inner_3 -->
-<g id="node14" class="node">
-<title>inner_3</title>
+<!-- _parallel_orthogonal_wrapper_state_2_inner_3 -->
+<g id="node15" class="node">
+<title>_parallel_orthogonal_wrapper_state_2_inner_3</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="377,-410 315,-410 315,-374 377,-374 377,-410"/>
 <text text-anchor="start" x="325.9942" y="-388.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_3</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M327.3333,-375C327.3333,-375 364.6667,-375 364.6667,-375 370.3333,-375 376,-380.6667 376,-386.3333 376,-386.3333 376,-397.6667 376,-397.6667 376,-403.3333 370.3333,-409 364.6667,-409 364.6667,-409 327.3333,-409 327.3333,-409 321.6667,-409 316,-403.3333 316,-397.6667 316,-397.6667 316,-386.3333 316,-386.3333 316,-380.6667 321.6667,-375 327.3333,-375"/>
 </g>
-<!-- initial_601&#45;&gt;inner_3 -->
-<g id="edge7" class="edge">
-<title>initial_601&#45;&gt;inner_3</title>
+<!-- _parallel_orthogonal_wrapper_state_2_initial&#45;&gt;_parallel_orthogonal_wrapper_state_2_inner_3 -->
+<g id="edge6" class="edge">
+<title>_parallel_orthogonal_wrapper_state_2_initial&#45;&gt;_parallel_orthogonal_wrapper_state_2_inner_3</title>
 <path fill="none" stroke="#000000" d="M333.0236,-760.7324C335.9457,-752.6398 341,-736.6033 341,-722.5 341,-722.5 341,-722.5 341,-427.5 341,-425.2243 341.102,-422.8746 341.2768,-420.5183"/>
 <polygon fill="#000000" stroke="#000000" points="344.7801,-420.6846 342.4194,-410.3561 337.8239,-419.9024 344.7801,-420.6846"/>
 <text text-anchor="middle" x="342.3895" y="-576" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- inner_4 -->
-<g id="node15" class="node">
-<title>inner_4</title>
+<!-- _parallel_orthogonal_wrapper_state_2_inner_4 -->
+<g id="node16" class="node">
+<title>_parallel_orthogonal_wrapper_state_2_inner_4</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="377,-76 315,-76 315,-40 377,-40 377,-76"/>
 <text text-anchor="start" x="325.9942" y="-54.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_4</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M327.3333,-41C327.3333,-41 364.6667,-41 364.6667,-41 370.3333,-41 376,-46.6667 376,-52.3333 376,-52.3333 376,-63.6667 376,-63.6667 376,-69.3333 370.3333,-75 364.6667,-75 364.6667,-75 327.3333,-75 327.3333,-75 321.6667,-75 316,-69.3333 316,-63.6667 316,-63.6667 316,-52.3333 316,-52.3333 316,-46.6667 321.6667,-41 327.3333,-41"/>
 </g>
-<!-- inner_3&#45;&gt;inner_4 -->
-<g id="edge10" class="edge">
-<title>inner_3&#45;&gt;inner_4</title>
+<!-- _parallel_orthogonal_wrapper_state_2_inner_3&#45;&gt;_parallel_orthogonal_wrapper_state_2_inner_4 -->
+<g id="edge7" class="edge">
+<title>_parallel_orthogonal_wrapper_state_2_inner_3&#45;&gt;_parallel_orthogonal_wrapper_state_2_inner_4</title>
 <path fill="none" stroke="#000000" d="M339.555,-373.7962C338.1124,-368.3088 337,-362.2224 337,-356.5 337,-356.5 337,-356.5 337,-93.5 337,-91.0859 337.198,-88.607 337.5352,-86.1355"/>
 <polygon fill="#000000" stroke="#000000" points="340.9918,-86.7008 339.555,-76.2038 334.1322,-85.3057 340.9918,-86.7008"/>
 <text text-anchor="start" x="337" y="-222" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_inner_4 &#160;&#160;</text>
 </g>
-<!-- orthogonal_tester -->
-<!-- initial_401 -->
-<g id="node17" class="node">
-<title>initial_401</title>
+<!-- _parallel_orthogonal_tester -->
+<!-- _parallel_orthogonal_tester_initial -->
+<g id="node18" class="node">
+<title>_parallel_orthogonal_tester_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="71" cy="-1457.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- start -->
-<g id="node18" class="node">
-<title>start</title>
+<!-- _parallel_orthogonal_tester_start -->
+<g id="node19" class="node">
+<title>_parallel_orthogonal_tester_start</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-1319.5 43,-1319.5 43,-1283.5 99,-1283.5 99,-1319.5"/>
 <text text-anchor="start" x="59.3324" y="-1297.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">start</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-1284.5C55.3333,-1284.5 86.6667,-1284.5 86.6667,-1284.5 92.3333,-1284.5 98,-1290.1667 98,-1295.8333 98,-1295.8333 98,-1307.1667 98,-1307.1667 98,-1312.8333 92.3333,-1318.5 86.6667,-1318.5 86.6667,-1318.5 55.3333,-1318.5 55.3333,-1318.5 49.6667,-1318.5 44,-1312.8333 44,-1307.1667 44,-1307.1667 44,-1295.8333 44,-1295.8333 44,-1290.1667 49.6667,-1284.5 55.3333,-1284.5"/>
 </g>
-<!-- initial_401&#45;&gt;start -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;start</title>
+<!-- _parallel_orthogonal_tester_initial&#45;&gt;_parallel_orthogonal_tester_start -->
+<g id="edge10" class="edge">
+<title>_parallel_orthogonal_tester_initial&#45;&gt;_parallel_orthogonal_tester_start</title>
 <path fill="none" stroke="#000000" d="M71,-1451.9659C71,-1444.982 71,-1432.6007 71,-1422 71,-1422 71,-1422 71,-1375 71,-1360.0982 71,-1343.497 71,-1329.8478"/>
 <polygon fill="#000000" stroke="#000000" points="74.5001,-1329.6232 71,-1319.6232 67.5001,-1329.6233 74.5001,-1329.6232"/>
 <text text-anchor="middle" x="72.3895" y="-1395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- step1 -->
-<g id="node19" class="node">
-<title>step1</title>
+<!-- _parallel_orthogonal_tester_step1 -->
+<g id="node20" class="node">
+<title>_parallel_orthogonal_tester_step1</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-1201.5 43,-1201.5 43,-1165.5 99,-1165.5 99,-1201.5"/>
 <text text-anchor="start" x="56.3264" y="-1179.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">step1</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-1166.5C55.3333,-1166.5 86.6667,-1166.5 86.6667,-1166.5 92.3333,-1166.5 98,-1172.1667 98,-1177.8333 98,-1177.8333 98,-1189.1667 98,-1189.1667 98,-1194.8333 92.3333,-1200.5 86.6667,-1200.5 86.6667,-1200.5 55.3333,-1200.5 55.3333,-1200.5 49.6667,-1200.5 44,-1194.8333 44,-1189.1667 44,-1189.1667 44,-1177.8333 44,-1177.8333 44,-1172.1667 49.6667,-1166.5 55.3333,-1166.5"/>
 </g>
-<!-- start&#45;&gt;step1 -->
-<g id="edge14" class="edge">
-<title>start&#45;&gt;step1</title>
+<!-- _parallel_orthogonal_tester_start&#45;&gt;_parallel_orthogonal_tester_step1 -->
+<g id="edge11" class="edge">
+<title>_parallel_orthogonal_tester_start&#45;&gt;_parallel_orthogonal_tester_step1</title>
 <path fill="none" stroke="#000000" d="M71,-1283.4402C71,-1277.8497 71,-1271.6701 71,-1266 71,-1266 71,-1266 71,-1219 71,-1216.6079 71,-1214.1252 71,-1211.6342"/>
 <polygon fill="#000000" stroke="#000000" points="74.5001,-1211.5597 71,-1201.5598 67.5001,-1211.5598 74.5001,-1211.5597"/>
 <text text-anchor="middle" x="72.3895" y="-1239.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- step2 -->
-<g id="node20" class="node">
-<title>step2</title>
+<!-- _parallel_orthogonal_tester_step2 -->
+<g id="node21" class="node">
+<title>_parallel_orthogonal_tester_step2</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-1045.5 43,-1045.5 43,-1009.5 99,-1009.5 99,-1045.5"/>
 <text text-anchor="start" x="56.3264" y="-1023.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">step2</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-1010.5C55.3333,-1010.5 86.6667,-1010.5 86.6667,-1010.5 92.3333,-1010.5 98,-1016.1667 98,-1021.8333 98,-1021.8333 98,-1033.1667 98,-1033.1667 98,-1038.8333 92.3333,-1044.5 86.6667,-1044.5 86.6667,-1044.5 55.3333,-1044.5 55.3333,-1044.5 49.6667,-1044.5 44,-1038.8333 44,-1033.1667 44,-1033.1667 44,-1021.8333 44,-1021.8333 44,-1016.1667 49.6667,-1010.5 55.3333,-1010.5"/>
 </g>
-<!-- step1&#45;&gt;step2 -->
-<g id="edge13" class="edge">
-<title>step1&#45;&gt;step2</title>
+<!-- _parallel_orthogonal_tester_step1&#45;&gt;_parallel_orthogonal_tester_step2 -->
+<g id="edge12" class="edge">
+<title>_parallel_orthogonal_tester_step1&#45;&gt;_parallel_orthogonal_tester_step2</title>
 <path fill="none" stroke="#000000" d="M71,-1165.4402C71,-1159.8497 71,-1153.6701 71,-1148 71,-1148 71,-1148 71,-1101 71,-1086.0982 71,-1069.497 71,-1055.8478"/>
 <polygon fill="#000000" stroke="#000000" points="74.5001,-1055.6232 71,-1045.6232 67.5001,-1055.6233 74.5001,-1055.6232"/>
 <text text-anchor="middle" x="72.3895" y="-1121.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- step3 -->
-<g id="node21" class="node">
-<title>step3</title>
+<!-- _parallel_orthogonal_tester_step3 -->
+<g id="node22" class="node">
+<title>_parallel_orthogonal_tester_step3</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-927.5 43,-927.5 43,-891.5 99,-891.5 99,-927.5"/>
 <text text-anchor="start" x="56.3264" y="-905.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">step3</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-892.5C55.3333,-892.5 86.6667,-892.5 86.6667,-892.5 92.3333,-892.5 98,-898.1667 98,-903.8333 98,-903.8333 98,-915.1667 98,-915.1667 98,-920.8333 92.3333,-926.5 86.6667,-926.5 86.6667,-926.5 55.3333,-926.5 55.3333,-926.5 49.6667,-926.5 44,-920.8333 44,-915.1667 44,-915.1667 44,-903.8333 44,-903.8333 44,-898.1667 49.6667,-892.5 55.3333,-892.5"/>
 </g>
-<!-- step2&#45;&gt;step3 -->
-<g id="edge12" class="edge">
-<title>step2&#45;&gt;step3</title>
+<!-- _parallel_orthogonal_tester_step2&#45;&gt;_parallel_orthogonal_tester_step3 -->
+<g id="edge13" class="edge">
+<title>_parallel_orthogonal_tester_step2&#45;&gt;_parallel_orthogonal_tester_step3</title>
 <path fill="none" stroke="#000000" d="M71,-1009.4402C71,-1003.8497 71,-997.6701 71,-992 71,-992 71,-992 71,-945 71,-942.6079 71,-940.1252 71,-937.6342"/>
 <polygon fill="#000000" stroke="#000000" points="74.5001,-937.5597 71,-927.5598 67.5001,-937.5598 74.5001,-937.5597"/>
 <text text-anchor="middle" x="72.3895" y="-965.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- end -->
-<g id="node22" class="node">
-<title>end</title>
+<!-- _parallel_orthogonal_tester_end -->
+<g id="node23" class="node">
+<title>_parallel_orthogonal_tester_end</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-784 43,-784 43,-748 99,-748 99,-784"/>
 <text text-anchor="start" x="60.9938" y="-762.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">end</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-749C55.3333,-749 86.6667,-749 86.6667,-749 92.3333,-749 98,-754.6667 98,-760.3333 98,-760.3333 98,-771.6667 98,-771.6667 98,-777.3333 92.3333,-783 86.6667,-783 86.6667,-783 55.3333,-783 55.3333,-783 49.6667,-783 44,-777.3333 44,-771.6667 44,-771.6667 44,-760.3333 44,-760.3333 44,-754.6667 49.6667,-749 55.3333,-749"/>
 </g>
-<!-- step3&#45;&gt;end -->
-<g id="edge11" class="edge">
-<title>step3&#45;&gt;end</title>
+<!-- _parallel_orthogonal_tester_step3&#45;&gt;_parallel_orthogonal_tester_end -->
+<g id="edge14" class="edge">
+<title>_parallel_orthogonal_tester_step3&#45;&gt;_parallel_orthogonal_tester_end</title>
 <path fill="none" stroke="#000000" d="M71,-891.4402C71,-885.8497 71,-879.6701 71,-874 71,-874 71,-874 71,-827 71,-816.3104 71,-804.5672 71,-794.263"/>
 <polygon fill="#000000" stroke="#000000" points="74.5001,-794.1503 71,-784.1503 67.5001,-794.1504 74.5001,-794.1503"/>
 <text text-anchor="middle" x="72.3895" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>

+ 0 - 229
test/semantics/original_semantics/history_parallel_deep.svg

@@ -1,229 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="467pt" height="1164pt"
- viewBox="0.00 0.00 467.00 1163.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1159.5)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1159.5 463,-1159.5 463,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_parallel</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 439,-8 439,-8 445,-8 451,-14 451,-20 451,-20 451,-1135.5 451,-1135.5 451,-1141.5 445,-1147.5 439,-1147.5 439,-1147.5 20,-1147.5 20,-1147.5 14,-1147.5 8,-1141.5 8,-1135.5 8,-1135.5 8,-20 8,-20 8,-14 14,-8 20,-8"/>
-<text text-anchor="start" x="210.1668" y="-1128.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel</text>
-</g>
-<g id="clust2" class="cluster">
-<title>cluster_orthogonal</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="149,-16 149,-1109.5 443,-1109.5 443,-16 149,-16"/>
-<text text-anchor="start" x="267.656" y="-1090.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal</text>
-</g>
-<g id="clust3" class="cluster">
-<title>cluster_wrapper</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M169,-24C169,-24 423,-24 423,-24 429,-24 435,-30 435,-36 435,-36 435,-941.5 435,-941.5 435,-947.5 429,-953.5 423,-953.5 423,-953.5 169,-953.5 169,-953.5 163,-953.5 157,-947.5 157,-941.5 157,-941.5 157,-36 157,-36 157,-30 163,-24 169,-24"/>
-<text text-anchor="start" x="274.8322" y="-934.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">wrapper</text>
-</g>
-<g id="clust4" class="cluster">
-<title>cluster_state_1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M345,-32C345,-32 415,-32 415,-32 421,-32 427,-38 427,-44 427,-44 427,-903.5 427,-903.5 427,-909.5 421,-915.5 415,-915.5 415,-915.5 345,-915.5 345,-915.5 339,-915.5 333,-909.5 333,-903.5 333,-903.5 333,-44 333,-44 333,-38 339,-32 345,-32"/>
-<text text-anchor="start" x="360.8236" y="-896.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
-</g>
-<g id="clust5" class="cluster">
-<title>cluster_state_2</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M243,-32C243,-32 313,-32 313,-32 319,-32 325,-38 325,-44 325,-44 325,-903.5 325,-903.5 325,-909.5 319,-915.5 313,-915.5 313,-915.5 243,-915.5 243,-915.5 237,-915.5 231,-909.5 231,-903.5 231,-903.5 231,-44 231,-44 231,-38 237,-32 243,-32"/>
-<text text-anchor="start" x="258.8236" y="-896.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
-</g>
-<g id="clust6" class="cluster">
-<title>cluster_orthogonal_tester</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-374 24,-1097 141,-1097 141,-374 24,-374"/>
-<text text-anchor="start" x="36.3176" y="-1078.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_tester</text>
-</g>
-<!-- parallel -->
-<!-- orthogonal -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="364" cy="-1053.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- wrapper -->
-<!-- initial_400&#45;&gt;wrapper -->
-<g id="edge2" class="edge">
-<title>initial_400&#45;&gt;wrapper</title>
-<path fill="none" stroke="#000000" d="M364,-1047.9659C364,-1040.982 364,-1028.6007 364,-1018 364,-1018 364,-1018 364,-971 364,-943.3054 269.4194,-969.6882 235.6355,-958.5506"/>
-<polygon fill="#000000" stroke="#000000" points="237.3991,-955.5274 227,-953.5 233.865,-961.5698 237.3991,-955.5274"/>
-<text text-anchor="middle" x="365.3895" y="-991.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- outer -->
-<g id="node4" class="node">
-<title>outer</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="258,-1071.5 202,-1071.5 202,-1035.5 258,-1035.5 258,-1071.5"/>
-<text text-anchor="start" x="216.329" y="-1049.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M214.3333,-1036.5C214.3333,-1036.5 245.6667,-1036.5 245.6667,-1036.5 251.3333,-1036.5 257,-1042.1667 257,-1047.8333 257,-1047.8333 257,-1059.1667 257,-1059.1667 257,-1064.8333 251.3333,-1070.5 245.6667,-1070.5 245.6667,-1070.5 214.3333,-1070.5 214.3333,-1070.5 208.6667,-1070.5 203,-1064.8333 203,-1059.1667 203,-1059.1667 203,-1047.8333 203,-1047.8333 203,-1042.1667 208.6667,-1036.5 214.3333,-1036.5"/>
-</g>
-<!-- history -->
-<g id="node6" class="node">
-<title>history</title>
-<ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="183" cy="-872" rx="18" ry="18"/>
-<text text-anchor="middle" x="183" y="-868.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
-</g>
-<!-- outer&#45;&gt;history -->
-<g id="edge3" class="edge">
-<title>outer&#45;&gt;history</title>
-<path fill="none" stroke="#000000" d="M201.815,-1044.9109C190.0201,-1039.4112 179,-1030.8377 179,-1018 179,-1018 179,-1018 179,-971 179,-947.1974 180.1687,-920.2019 181.2426,-900.4196"/>
-<polygon fill="#000000" stroke="#000000" points="184.7482,-900.4202 181.8215,-890.2376 177.7594,-900.0228 184.7482,-900.4202"/>
-<text text-anchor="start" x="179" y="-991.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_history &#160;&#160;</text>
-</g>
-<!-- wrapper&#45;&gt;outer -->
-<g id="edge4" class="edge">
-<title>wrapper&#45;&gt;outer</title>
-<path fill="none" stroke="#000000" d="M227,-953.5C240.4713,-971.7792 275,-948.2931 275,-971 275,-1018 275,-1018 275,-1018 275,-1025.0869 271.5173,-1030.9782 266.4896,-1035.7906"/>
-<polygon fill="#000000" stroke="#000000" points="264.0702,-1033.2341 258.2437,-1042.0829 268.3167,-1038.7989 264.0702,-1033.2341"/>
-<text text-anchor="start" x="275" y="-991.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_outer &#160;&#160;</text>
-</g>
-<!-- state_1 -->
-<!-- initial_600 -->
-<g id="node8" class="node">
-<title>initial_600</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="372" cy="-872" rx="5.5" ry="5.5"/>
-</g>
-<!-- inner_1 -->
-<g id="node9" class="node">
-<title>inner_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="403,-418 341,-418 341,-382 403,-382 403,-418"/>
-<text text-anchor="start" x="351.9942" y="-396.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M353.3333,-383C353.3333,-383 390.6667,-383 390.6667,-383 396.3333,-383 402,-388.6667 402,-394.3333 402,-394.3333 402,-405.6667 402,-405.6667 402,-411.3333 396.3333,-417 390.6667,-417 390.6667,-417 353.3333,-417 353.3333,-417 347.6667,-417 342,-411.3333 342,-405.6667 342,-405.6667 342,-394.3333 342,-394.3333 342,-388.6667 347.6667,-383 353.3333,-383"/>
-</g>
-<!-- initial_600&#45;&gt;inner_1 -->
-<g id="edge6" class="edge">
-<title>initial_600&#45;&gt;inner_1</title>
-<path fill="none" stroke="#000000" d="M372,-866.4659C372,-859.482 372,-847.1007 372,-836.5 372,-836.5 372,-836.5 372,-435.5 372,-433.1079 372,-430.6252 372,-428.1342"/>
-<polygon fill="#000000" stroke="#000000" points="375.5001,-428.0597 372,-418.0598 368.5001,-428.0598 375.5001,-428.0597"/>
-<text text-anchor="middle" x="373.3895" y="-633" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- inner_2 -->
-<g id="node10" class="node">
-<title>inner_2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="403,-76 341,-76 341,-40 403,-40 403,-76"/>
-<text text-anchor="start" x="351.9942" y="-54.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M353.3333,-41C353.3333,-41 390.6667,-41 390.6667,-41 396.3333,-41 402,-46.6667 402,-52.3333 402,-52.3333 402,-63.6667 402,-63.6667 402,-69.3333 396.3333,-75 390.6667,-75 390.6667,-75 353.3333,-75 353.3333,-75 347.6667,-75 342,-69.3333 342,-63.6667 342,-63.6667 342,-52.3333 342,-52.3333 342,-46.6667 347.6667,-41 353.3333,-41"/>
-</g>
-<!-- inner_1&#45;&gt;inner_2 -->
-<g id="edge7" class="edge">
-<title>inner_1&#45;&gt;inner_2</title>
-<path fill="none" stroke="#000000" d="M366.557,-381.97C364.6617,-374.2076 363,-364.9832 363,-356.5 363,-356.5 363,-356.5 363,-93.5 363,-91.0859 363.198,-88.607 363.5352,-86.1355"/>
-<polygon fill="#000000" stroke="#000000" points="366.9918,-86.7008 365.555,-76.2038 360.1322,-85.3057 366.9918,-86.7008"/>
-<text text-anchor="start" x="363" y="-222" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_inner_2 &#160;&#160;</text>
-</g>
-<!-- state_2 -->
-<!-- initial_601 -->
-<g id="node12" class="node">
-<title>initial_601</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="270" cy="-872" rx="5.5" ry="5.5"/>
-</g>
-<!-- inner_3 -->
-<g id="node13" class="node">
-<title>inner_3</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="301,-418 239,-418 239,-382 301,-382 301,-418"/>
-<text text-anchor="start" x="249.9942" y="-396.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_3</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M251.3333,-383C251.3333,-383 288.6667,-383 288.6667,-383 294.3333,-383 300,-388.6667 300,-394.3333 300,-394.3333 300,-405.6667 300,-405.6667 300,-411.3333 294.3333,-417 288.6667,-417 288.6667,-417 251.3333,-417 251.3333,-417 245.6667,-417 240,-411.3333 240,-405.6667 240,-405.6667 240,-394.3333 240,-394.3333 240,-388.6667 245.6667,-383 251.3333,-383"/>
-</g>
-<!-- initial_601&#45;&gt;inner_3 -->
-<g id="edge5" class="edge">
-<title>initial_601&#45;&gt;inner_3</title>
-<path fill="none" stroke="#000000" d="M270,-866.4659C270,-859.482 270,-847.1007 270,-836.5 270,-836.5 270,-836.5 270,-435.5 270,-433.1079 270,-430.6252 270,-428.1342"/>
-<polygon fill="#000000" stroke="#000000" points="273.5001,-428.0597 270,-418.0598 266.5001,-428.0598 273.5001,-428.0597"/>
-<text text-anchor="middle" x="271.3895" y="-633" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- inner_4 -->
-<g id="node14" class="node">
-<title>inner_4</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="301,-76 239,-76 239,-40 301,-40 301,-76"/>
-<text text-anchor="start" x="249.9942" y="-54.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_4</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M251.3333,-41C251.3333,-41 288.6667,-41 288.6667,-41 294.3333,-41 300,-46.6667 300,-52.3333 300,-52.3333 300,-63.6667 300,-63.6667 300,-69.3333 294.3333,-75 288.6667,-75 288.6667,-75 251.3333,-75 251.3333,-75 245.6667,-75 240,-69.3333 240,-63.6667 240,-63.6667 240,-52.3333 240,-52.3333 240,-46.6667 245.6667,-41 251.3333,-41"/>
-</g>
-<!-- inner_3&#45;&gt;inner_4 -->
-<g id="edge8" class="edge">
-<title>inner_3&#45;&gt;inner_4</title>
-<path fill="none" stroke="#000000" d="M264.557,-381.97C262.6617,-374.2076 261,-364.9832 261,-356.5 261,-356.5 261,-356.5 261,-93.5 261,-91.0859 261.198,-88.607 261.5352,-86.1355"/>
-<polygon fill="#000000" stroke="#000000" points="264.9918,-86.7008 263.555,-76.2038 258.1322,-85.3057 264.9918,-86.7008"/>
-<text text-anchor="start" x="261" y="-222" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_inner_4 &#160;&#160;</text>
-</g>
-<!-- orthogonal_tester -->
-<!-- initial_401 -->
-<g id="node16" class="node">
-<title>initial_401</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="71" cy="-1053.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- start -->
-<g id="node17" class="node">
-<title>start</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-890 43,-890 43,-854 99,-854 99,-890"/>
-<text text-anchor="start" x="59.3324" y="-868.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">start</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-855C55.3333,-855 86.6667,-855 86.6667,-855 92.3333,-855 98,-860.6667 98,-866.3333 98,-866.3333 98,-877.6667 98,-877.6667 98,-883.3333 92.3333,-889 86.6667,-889 86.6667,-889 55.3333,-889 55.3333,-889 49.6667,-889 44,-883.3333 44,-877.6667 44,-877.6667 44,-866.3333 44,-866.3333 44,-860.6667 49.6667,-855 55.3333,-855"/>
-</g>
-<!-- initial_401&#45;&gt;start -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;start</title>
-<path fill="none" stroke="#000000" d="M71,-1047.9659C71,-1040.982 71,-1028.6007 71,-1018 71,-1018 71,-1018 71,-971 71,-947.2168 71,-920.2197 71,-900.4319"/>
-<polygon fill="#000000" stroke="#000000" points="74.5001,-900.2465 71,-890.2465 67.5001,-900.2466 74.5001,-900.2465"/>
-<text text-anchor="middle" x="72.3895" y="-991.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- step1 -->
-<g id="node18" class="node">
-<title>step1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-772 43,-772 43,-736 99,-736 99,-772"/>
-<text text-anchor="start" x="56.3264" y="-750.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">step1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-737C55.3333,-737 86.6667,-737 86.6667,-737 92.3333,-737 98,-742.6667 98,-748.3333 98,-748.3333 98,-759.6667 98,-759.6667 98,-765.3333 92.3333,-771 86.6667,-771 86.6667,-771 55.3333,-771 55.3333,-771 49.6667,-771 44,-765.3333 44,-759.6667 44,-759.6667 44,-748.3333 44,-748.3333 44,-742.6667 49.6667,-737 55.3333,-737"/>
-</g>
-<!-- start&#45;&gt;step1 -->
-<g id="edge12" class="edge">
-<title>start&#45;&gt;step1</title>
-<path fill="none" stroke="#000000" d="M71,-853.9402C71,-848.3497 71,-842.1701 71,-836.5 71,-836.5 71,-836.5 71,-789.5 71,-787.1079 71,-784.6252 71,-782.1342"/>
-<polygon fill="#000000" stroke="#000000" points="74.5001,-782.0597 71,-772.0598 67.5001,-782.0598 74.5001,-782.0597"/>
-<text text-anchor="middle" x="72.3895" y="-810" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- step2 -->
-<g id="node19" class="node">
-<title>step2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-654 43,-654 43,-618 99,-618 99,-654"/>
-<text text-anchor="start" x="56.3264" y="-632.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">step2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-619C55.3333,-619 86.6667,-619 86.6667,-619 92.3333,-619 98,-624.6667 98,-630.3333 98,-630.3333 98,-641.6667 98,-641.6667 98,-647.3333 92.3333,-653 86.6667,-653 86.6667,-653 55.3333,-653 55.3333,-653 49.6667,-653 44,-647.3333 44,-641.6667 44,-641.6667 44,-630.3333 44,-630.3333 44,-624.6667 49.6667,-619 55.3333,-619"/>
-</g>
-<!-- step1&#45;&gt;step2 -->
-<g id="edge11" class="edge">
-<title>step1&#45;&gt;step2</title>
-<path fill="none" stroke="#000000" d="M71,-735.9402C71,-730.3497 71,-724.1701 71,-718.5 71,-718.5 71,-718.5 71,-671.5 71,-669.1079 71,-666.6252 71,-664.1342"/>
-<polygon fill="#000000" stroke="#000000" points="74.5001,-664.0597 71,-654.0598 67.5001,-664.0598 74.5001,-664.0597"/>
-<text text-anchor="middle" x="72.3895" y="-692" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- step3 -->
-<g id="node20" class="node">
-<title>step3</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-536 43,-536 43,-500 99,-500 99,-536"/>
-<text text-anchor="start" x="56.3264" y="-514.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">step3</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-501C55.3333,-501 86.6667,-501 86.6667,-501 92.3333,-501 98,-506.6667 98,-512.3333 98,-512.3333 98,-523.6667 98,-523.6667 98,-529.3333 92.3333,-535 86.6667,-535 86.6667,-535 55.3333,-535 55.3333,-535 49.6667,-535 44,-529.3333 44,-523.6667 44,-523.6667 44,-512.3333 44,-512.3333 44,-506.6667 49.6667,-501 55.3333,-501"/>
-</g>
-<!-- step2&#45;&gt;step3 -->
-<g id="edge10" class="edge">
-<title>step2&#45;&gt;step3</title>
-<path fill="none" stroke="#000000" d="M71,-617.9402C71,-612.3497 71,-606.1701 71,-600.5 71,-600.5 71,-600.5 71,-553.5 71,-551.1079 71,-548.6252 71,-546.1342"/>
-<polygon fill="#000000" stroke="#000000" points="74.5001,-546.0597 71,-536.0598 67.5001,-546.0598 74.5001,-546.0597"/>
-<text text-anchor="middle" x="72.3895" y="-574" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- end -->
-<g id="node21" class="node">
-<title>end</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-418 43,-418 43,-382 99,-382 99,-418"/>
-<text text-anchor="start" x="60.9938" y="-396.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">end</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-383C55.3333,-383 86.6667,-383 86.6667,-383 92.3333,-383 98,-388.6667 98,-394.3333 98,-394.3333 98,-405.6667 98,-405.6667 98,-411.3333 92.3333,-417 86.6667,-417 86.6667,-417 55.3333,-417 55.3333,-417 49.6667,-417 44,-411.3333 44,-405.6667 44,-405.6667 44,-394.3333 44,-394.3333 44,-388.6667 49.6667,-383 55.3333,-383"/>
-</g>
-<!-- step3&#45;&gt;end -->
-<g id="edge9" class="edge">
-<title>step3&#45;&gt;end</title>
-<path fill="none" stroke="#000000" d="M71,-499.9402C71,-494.3497 71,-488.1701 71,-482.5 71,-482.5 71,-482.5 71,-435.5 71,-433.1079 71,-430.6252 71,-428.1342"/>
-<polygon fill="#000000" stroke="#000000" points="74.5001,-428.0597 71,-418.0598 67.5001,-428.0598 74.5001,-428.0597"/>
-<text text-anchor="middle" x="72.3895" y="-456" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-</g>
-</svg>

+ 241 - 0
test/semantics/original_semantics/history_parallel_deep_Class1.svg

@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="689pt" height="1216pt"
+ viewBox="0.00 0.00 689.35 1215.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1211.5)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1211.5 685.3536,-1211.5 685.3536,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__parallel</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 445,-8 445,-8 451,-8 457,-14 457,-20 457,-20 457,-1156.5 457,-1156.5 457,-1162.5 451,-1168.5 445,-1168.5 445,-1168.5 20,-1168.5 20,-1168.5 14,-1168.5 8,-1162.5 8,-1156.5 8,-1156.5 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="213.1668" y="-1149.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster__parallel_orthogonal</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="149,-16 149,-1130.5 449,-1130.5 449,-16 149,-16"/>
+<text text-anchor="start" x="270.656" y="-1111.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster__parallel_orthogonal_wrapper</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M169,-24C169,-24 365,-24 365,-24 371,-24 377,-30 377,-36 377,-36 377,-987.5 377,-987.5 377,-993.5 371,-999.5 365,-999.5 365,-999.5 169,-999.5 169,-999.5 163,-999.5 157,-993.5 157,-987.5 157,-987.5 157,-36 157,-36 157,-30 163,-24 169,-24"/>
+<text text-anchor="start" x="245.8322" y="-980.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">wrapper</text>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster__parallel_orthogonal_wrapper_state_1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="267,-32 267,-961.5 361,-961.5 361,-32 267,-32"/>
+<text text-anchor="start" x="294.8236" y="-942.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
+</g>
+<g id="clust5" class="cluster">
+<title>cluster__parallel_orthogonal_wrapper_state_2</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="165,-32 165,-961.5 259,-961.5 259,-32 165,-32"/>
+<text text-anchor="start" x="192.8236" y="-942.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
+</g>
+<g id="clust6" class="cluster">
+<title>cluster__parallel_orthogonal_tester</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-374 24,-1130.5 141,-1130.5 141,-374 24,-374"/>
+<text text-anchor="start" x="36.3176" y="-1111.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_tester</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-1202" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel -->
+<!-- __initial&#45;&gt;_parallel -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_parallel</title>
+<path fill="none" stroke="#000000" d="M16,-1196.4533C16,-1192.2779 16,-1186.0043 16,-1178.5332"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-1178.4971 16,-1168.4971 12.5001,-1178.4972 19.5001,-1178.4971"/>
+<text text-anchor="middle" x="17.3895" y="-1179.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal -->
+<!-- _parallel_orthogonal_initial -->
+<g id="node4" class="node">
+<title>_parallel_orthogonal_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="369" cy="-1087" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_wrapper -->
+<!-- _parallel_orthogonal_initial&#45;&gt;_parallel_orthogonal_wrapper -->
+<g id="edge2" class="edge">
+<title>_parallel_orthogonal_initial&#45;&gt;_parallel_orthogonal_wrapper</title>
+<path fill="none" stroke="#000000" d="M369,-1081.3288C369,-1076.6736 369,-1069.9097 369,-1064 369,-1064 369,-1064 369,-1017 369,-1014.5963 369,-1012.1597 369,-1009.701"/>
+<polygon fill="#000000" stroke="#000000" points="372.5001,-1009.4966 369,-999.4967 365.5001,-1009.4967 372.5001,-1009.4966"/>
+<text text-anchor="middle" x="370.3895" y="-1037.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_outer -->
+<g id="node5" class="node">
+<title>_parallel_orthogonal_outer</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="441,-818 385,-818 385,-782 441,-782 441,-818"/>
+<text text-anchor="start" x="399.329" y="-796.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M397.3333,-783C397.3333,-783 428.6667,-783 428.6667,-783 434.3333,-783 440,-788.6667 440,-794.3333 440,-794.3333 440,-805.6667 440,-805.6667 440,-811.3333 434.3333,-817 428.6667,-817 428.6667,-817 397.3333,-817 397.3333,-817 391.6667,-817 386,-811.3333 386,-805.6667 386,-805.6667 386,-794.3333 386,-794.3333 386,-788.6667 391.6667,-783 397.3333,-783"/>
+</g>
+<!-- _parallel_orthogonal_wrapper_history -->
+<g id="node22" class="node">
+<title>_parallel_orthogonal_wrapper_history</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="681.2074,-754 464.7926,-754 464.7926,-718 681.2074,-718 681.2074,-754"/>
+<text text-anchor="middle" x="573" y="-732.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">_parallel_orthogonal_wrapper_history</text>
+</g>
+<!-- _parallel_orthogonal_outer&#45;&gt;_parallel_orthogonal_wrapper_history -->
+<g id="edge8" class="edge">
+<title>_parallel_orthogonal_outer&#45;&gt;_parallel_orthogonal_wrapper_history</title>
+<path fill="none" stroke="#000000" d="M441.2365,-788.7054C462.5698,-780.1721 492.5096,-768.1962 518.4595,-757.8162"/>
+<polygon fill="#000000" stroke="#000000" points="519.8313,-761.0372 527.8162,-754.0735 517.2315,-754.5378 519.8313,-761.0372"/>
+<text text-anchor="start" x="507" y="-765" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_history &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_wrapper&#45;&gt;_parallel_orthogonal_outer -->
+<g id="edge7" class="edge">
+<title>_parallel_orthogonal_wrapper&#45;&gt;_parallel_orthogonal_outer</title>
+<path fill="none" stroke="#000000" d="M377,-911.4115C383.9805,-904.8773 393,-894.1754 393,-882.5 393,-882.5 393,-882.5 393,-835.5 393,-832.7434 393.4634,-830.0034 394.2492,-827.3388"/>
+<polygon fill="#000000" stroke="#000000" points="397.4778,-828.6909 398.2548,-818.1245 391.0582,-825.9001 397.4778,-828.6909"/>
+<text text-anchor="start" x="393" y="-856" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_outer &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_wrapper_state_1 -->
+<!-- _parallel_orthogonal_wrapper_state_1_initial -->
+<g id="node8" class="node">
+<title>_parallel_orthogonal_wrapper_state_1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="306" cy="-918" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_wrapper_state_1_inner_1 -->
+<g id="node9" class="node">
+<title>_parallel_orthogonal_wrapper_state_1_inner_1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="337,-418 275,-418 275,-382 337,-382 337,-418"/>
+<text text-anchor="start" x="285.9942" y="-396.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M287.3333,-383C287.3333,-383 324.6667,-383 324.6667,-383 330.3333,-383 336,-388.6667 336,-394.3333 336,-394.3333 336,-405.6667 336,-405.6667 336,-411.3333 330.3333,-417 324.6667,-417 324.6667,-417 287.3333,-417 287.3333,-417 281.6667,-417 276,-411.3333 276,-405.6667 276,-405.6667 276,-394.3333 276,-394.3333 276,-388.6667 281.6667,-383 287.3333,-383"/>
+</g>
+<!-- _parallel_orthogonal_wrapper_state_1_initial&#45;&gt;_parallel_orthogonal_wrapper_state_1_inner_1 -->
+<g id="edge3" class="edge">
+<title>_parallel_orthogonal_wrapper_state_1_initial&#45;&gt;_parallel_orthogonal_wrapper_state_1_inner_1</title>
+<path fill="none" stroke="#000000" d="M306,-912.4659C306,-905.482 306,-893.1007 306,-882.5 306,-882.5 306,-882.5 306,-435.5 306,-433.1079 306,-430.6252 306,-428.1342"/>
+<polygon fill="#000000" stroke="#000000" points="309.5001,-428.0597 306,-418.0598 302.5001,-428.0598 309.5001,-428.0597"/>
+<text text-anchor="middle" x="307.3895" y="-633" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_wrapper_state_1_inner_2 -->
+<g id="node10" class="node">
+<title>_parallel_orthogonal_wrapper_state_1_inner_2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="337,-76 275,-76 275,-40 337,-40 337,-76"/>
+<text text-anchor="start" x="285.9942" y="-54.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M287.3333,-41C287.3333,-41 324.6667,-41 324.6667,-41 330.3333,-41 336,-46.6667 336,-52.3333 336,-52.3333 336,-63.6667 336,-63.6667 336,-69.3333 330.3333,-75 324.6667,-75 324.6667,-75 287.3333,-75 287.3333,-75 281.6667,-75 276,-69.3333 276,-63.6667 276,-63.6667 276,-52.3333 276,-52.3333 276,-46.6667 281.6667,-41 287.3333,-41"/>
+</g>
+<!-- _parallel_orthogonal_wrapper_state_1_inner_1&#45;&gt;_parallel_orthogonal_wrapper_state_1_inner_2 -->
+<g id="edge4" class="edge">
+<title>_parallel_orthogonal_wrapper_state_1_inner_1&#45;&gt;_parallel_orthogonal_wrapper_state_1_inner_2</title>
+<path fill="none" stroke="#000000" d="M300.557,-381.97C298.6617,-374.2076 297,-364.9832 297,-356.5 297,-356.5 297,-356.5 297,-93.5 297,-91.0859 297.198,-88.607 297.5352,-86.1355"/>
+<polygon fill="#000000" stroke="#000000" points="300.9918,-86.7008 299.555,-76.2038 294.1322,-85.3057 300.9918,-86.7008"/>
+<text text-anchor="start" x="297" y="-222" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_inner_2 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_wrapper_state_2 -->
+<!-- _parallel_orthogonal_wrapper_state_2_initial -->
+<g id="node12" class="node">
+<title>_parallel_orthogonal_wrapper_state_2_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="204" cy="-918" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_wrapper_state_2_inner_3 -->
+<g id="node13" class="node">
+<title>_parallel_orthogonal_wrapper_state_2_inner_3</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="235,-418 173,-418 173,-382 235,-382 235,-418"/>
+<text text-anchor="start" x="183.9942" y="-396.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_3</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M185.3333,-383C185.3333,-383 222.6667,-383 222.6667,-383 228.3333,-383 234,-388.6667 234,-394.3333 234,-394.3333 234,-405.6667 234,-405.6667 234,-411.3333 228.3333,-417 222.6667,-417 222.6667,-417 185.3333,-417 185.3333,-417 179.6667,-417 174,-411.3333 174,-405.6667 174,-405.6667 174,-394.3333 174,-394.3333 174,-388.6667 179.6667,-383 185.3333,-383"/>
+</g>
+<!-- _parallel_orthogonal_wrapper_state_2_initial&#45;&gt;_parallel_orthogonal_wrapper_state_2_inner_3 -->
+<g id="edge5" class="edge">
+<title>_parallel_orthogonal_wrapper_state_2_initial&#45;&gt;_parallel_orthogonal_wrapper_state_2_inner_3</title>
+<path fill="none" stroke="#000000" d="M204,-912.4659C204,-905.482 204,-893.1007 204,-882.5 204,-882.5 204,-882.5 204,-435.5 204,-433.1079 204,-430.6252 204,-428.1342"/>
+<polygon fill="#000000" stroke="#000000" points="207.5001,-428.0597 204,-418.0598 200.5001,-428.0598 207.5001,-428.0597"/>
+<text text-anchor="middle" x="205.3895" y="-633" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_wrapper_state_2_inner_4 -->
+<g id="node14" class="node">
+<title>_parallel_orthogonal_wrapper_state_2_inner_4</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="235,-76 173,-76 173,-40 235,-40 235,-76"/>
+<text text-anchor="start" x="183.9942" y="-54.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner_4</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M185.3333,-41C185.3333,-41 222.6667,-41 222.6667,-41 228.3333,-41 234,-46.6667 234,-52.3333 234,-52.3333 234,-63.6667 234,-63.6667 234,-69.3333 228.3333,-75 222.6667,-75 222.6667,-75 185.3333,-75 185.3333,-75 179.6667,-75 174,-69.3333 174,-63.6667 174,-63.6667 174,-52.3333 174,-52.3333 174,-46.6667 179.6667,-41 185.3333,-41"/>
+</g>
+<!-- _parallel_orthogonal_wrapper_state_2_inner_3&#45;&gt;_parallel_orthogonal_wrapper_state_2_inner_4 -->
+<g id="edge6" class="edge">
+<title>_parallel_orthogonal_wrapper_state_2_inner_3&#45;&gt;_parallel_orthogonal_wrapper_state_2_inner_4</title>
+<path fill="none" stroke="#000000" d="M198.557,-381.97C196.6617,-374.2076 195,-364.9832 195,-356.5 195,-356.5 195,-356.5 195,-93.5 195,-91.0859 195.198,-88.607 195.5352,-86.1355"/>
+<polygon fill="#000000" stroke="#000000" points="198.9918,-86.7008 197.555,-76.2038 192.1322,-85.3057 198.9918,-86.7008"/>
+<text text-anchor="start" x="195" y="-222" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_inner_4 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_tester -->
+<!-- _parallel_orthogonal_tester_initial -->
+<g id="node16" class="node">
+<title>_parallel_orthogonal_tester_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="71" cy="-1087" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_tester_start -->
+<g id="node17" class="node">
+<title>_parallel_orthogonal_tester_start</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-936 43,-936 43,-900 99,-900 99,-936"/>
+<text text-anchor="start" x="59.3324" y="-914.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">start</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-901C55.3333,-901 86.6667,-901 86.6667,-901 92.3333,-901 98,-906.6667 98,-912.3333 98,-912.3333 98,-923.6667 98,-923.6667 98,-929.3333 92.3333,-935 86.6667,-935 86.6667,-935 55.3333,-935 55.3333,-935 49.6667,-935 44,-929.3333 44,-923.6667 44,-923.6667 44,-912.3333 44,-912.3333 44,-906.6667 49.6667,-901 55.3333,-901"/>
+</g>
+<!-- _parallel_orthogonal_tester_initial&#45;&gt;_parallel_orthogonal_tester_start -->
+<g id="edge9" class="edge">
+<title>_parallel_orthogonal_tester_initial&#45;&gt;_parallel_orthogonal_tester_start</title>
+<path fill="none" stroke="#000000" d="M71,-1081.3288C71,-1076.6736 71,-1069.9097 71,-1064 71,-1064 71,-1064 71,-1017 71,-993.2168 71,-966.2197 71,-946.4319"/>
+<polygon fill="#000000" stroke="#000000" points="74.5001,-946.2465 71,-936.2465 67.5001,-946.2466 74.5001,-946.2465"/>
+<text text-anchor="middle" x="72.3895" y="-1037.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_tester_step1 -->
+<g id="node18" class="node">
+<title>_parallel_orthogonal_tester_step1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-818 43,-818 43,-782 99,-782 99,-818"/>
+<text text-anchor="start" x="56.3264" y="-796.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">step1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-783C55.3333,-783 86.6667,-783 86.6667,-783 92.3333,-783 98,-788.6667 98,-794.3333 98,-794.3333 98,-805.6667 98,-805.6667 98,-811.3333 92.3333,-817 86.6667,-817 86.6667,-817 55.3333,-817 55.3333,-817 49.6667,-817 44,-811.3333 44,-805.6667 44,-805.6667 44,-794.3333 44,-794.3333 44,-788.6667 49.6667,-783 55.3333,-783"/>
+</g>
+<!-- _parallel_orthogonal_tester_start&#45;&gt;_parallel_orthogonal_tester_step1 -->
+<g id="edge10" class="edge">
+<title>_parallel_orthogonal_tester_start&#45;&gt;_parallel_orthogonal_tester_step1</title>
+<path fill="none" stroke="#000000" d="M71,-899.9402C71,-894.3497 71,-888.1701 71,-882.5 71,-882.5 71,-882.5 71,-835.5 71,-833.1079 71,-830.6252 71,-828.1342"/>
+<polygon fill="#000000" stroke="#000000" points="74.5001,-828.0597 71,-818.0598 67.5001,-828.0598 74.5001,-828.0597"/>
+<text text-anchor="middle" x="72.3895" y="-856" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_tester_step2 -->
+<g id="node19" class="node">
+<title>_parallel_orthogonal_tester_step2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-654 43,-654 43,-618 99,-618 99,-654"/>
+<text text-anchor="start" x="56.3264" y="-632.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">step2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-619C55.3333,-619 86.6667,-619 86.6667,-619 92.3333,-619 98,-624.6667 98,-630.3333 98,-630.3333 98,-641.6667 98,-641.6667 98,-647.3333 92.3333,-653 86.6667,-653 86.6667,-653 55.3333,-653 55.3333,-653 49.6667,-653 44,-647.3333 44,-641.6667 44,-641.6667 44,-630.3333 44,-630.3333 44,-624.6667 49.6667,-619 55.3333,-619"/>
+</g>
+<!-- _parallel_orthogonal_tester_step1&#45;&gt;_parallel_orthogonal_tester_step2 -->
+<g id="edge11" class="edge">
+<title>_parallel_orthogonal_tester_step1&#45;&gt;_parallel_orthogonal_tester_step2</title>
+<path fill="none" stroke="#000000" d="M71,-781.7928C71,-768.9854 71,-751.4444 71,-736 71,-736 71,-736 71,-671.5 71,-669.1079 71,-666.6252 71,-664.1342"/>
+<polygon fill="#000000" stroke="#000000" points="74.5001,-664.0597 71,-654.0598 67.5001,-664.0598 74.5001,-664.0597"/>
+<text text-anchor="middle" x="72.3895" y="-692" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_tester_step3 -->
+<g id="node20" class="node">
+<title>_parallel_orthogonal_tester_step3</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-536 43,-536 43,-500 99,-500 99,-536"/>
+<text text-anchor="start" x="56.3264" y="-514.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">step3</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-501C55.3333,-501 86.6667,-501 86.6667,-501 92.3333,-501 98,-506.6667 98,-512.3333 98,-512.3333 98,-523.6667 98,-523.6667 98,-529.3333 92.3333,-535 86.6667,-535 86.6667,-535 55.3333,-535 55.3333,-535 49.6667,-535 44,-529.3333 44,-523.6667 44,-523.6667 44,-512.3333 44,-512.3333 44,-506.6667 49.6667,-501 55.3333,-501"/>
+</g>
+<!-- _parallel_orthogonal_tester_step2&#45;&gt;_parallel_orthogonal_tester_step3 -->
+<g id="edge12" class="edge">
+<title>_parallel_orthogonal_tester_step2&#45;&gt;_parallel_orthogonal_tester_step3</title>
+<path fill="none" stroke="#000000" d="M71,-617.9402C71,-612.3497 71,-606.1701 71,-600.5 71,-600.5 71,-600.5 71,-553.5 71,-551.1079 71,-548.6252 71,-546.1342"/>
+<polygon fill="#000000" stroke="#000000" points="74.5001,-546.0597 71,-536.0598 67.5001,-546.0598 74.5001,-546.0597"/>
+<text text-anchor="middle" x="72.3895" y="-574" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_tester_end -->
+<g id="node21" class="node">
+<title>_parallel_orthogonal_tester_end</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="99,-418 43,-418 43,-382 99,-382 99,-418"/>
+<text text-anchor="start" x="60.9938" y="-396.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">end</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M55.3333,-383C55.3333,-383 86.6667,-383 86.6667,-383 92.3333,-383 98,-388.6667 98,-394.3333 98,-394.3333 98,-405.6667 98,-405.6667 98,-411.3333 92.3333,-417 86.6667,-417 86.6667,-417 55.3333,-417 55.3333,-417 49.6667,-417 44,-411.3333 44,-405.6667 44,-405.6667 44,-394.3333 44,-394.3333 44,-388.6667 49.6667,-383 55.3333,-383"/>
+</g>
+<!-- _parallel_orthogonal_tester_step3&#45;&gt;_parallel_orthogonal_tester_end -->
+<g id="edge13" class="edge">
+<title>_parallel_orthogonal_tester_step3&#45;&gt;_parallel_orthogonal_tester_end</title>
+<path fill="none" stroke="#000000" d="M71,-499.9402C71,-494.3497 71,-488.1701 71,-482.5 71,-482.5 71,-482.5 71,-435.5 71,-433.1079 71,-430.6252 71,-428.1342"/>
+<polygon fill="#000000" stroke="#000000" points="74.5001,-428.0597 71,-418.0598 67.5001,-428.0598 74.5001,-428.0597"/>
+<text text-anchor="middle" x="72.3895" y="-456" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+</g>
+</svg>

+ 0 - 71
test/semantics/original_semantics/inner_first.svg

@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="172pt" height="255pt"
- viewBox="0.00 0.00 171.50 255.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 251)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-251 167.5,-251 167.5,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_state1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M33.5,-8C33.5,-8 81.5,-8 81.5,-8 87.5,-8 93.5,-14 93.5,-20 93.5,-20 93.5,-227 93.5,-227 93.5,-233 87.5,-239 81.5,-239 81.5,-239 33.5,-239 33.5,-239 27.5,-239 21.5,-233 21.5,-227 21.5,-227 21.5,-20 21.5,-20 21.5,-14 27.5,-8 33.5,-8"/>
-<text text-anchor="start" x="41.159" y="-220.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
-</g>
-<!-- initial_200 -->
-<g id="node1" class="node">
-<title>initial_200</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="5.5" cy="-167" rx="5.5" ry="5.5"/>
-</g>
-<!-- state1 -->
-<!-- initial_200&#45;&gt;state1 -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;state1</title>
-<path fill="none" stroke="#000000" d="M10.2779,-163.6156C18.364,-157.888 34.8515,-146.2094 44.9626,-139.0473"/>
-<polygon fill="#000000" stroke="#000000" points="47.2733,-141.6997 53.4105,-133.0634 43.2271,-135.9875 47.2733,-141.6997"/>
-<text text-anchor="middle" x="42.8895" y="-144" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- stateb -->
-<g id="node2" class="node">
-<title>stateb</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="163.5,-105 107.5,-105 107.5,-69 163.5,-69 163.5,-105"/>
-<text text-anchor="start" x="119.159" y="-83.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">stateb</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M119.8333,-70C119.8333,-70 151.1667,-70 151.1667,-70 156.8333,-70 162.5,-75.6667 162.5,-81.3333 162.5,-81.3333 162.5,-92.6667 162.5,-92.6667 162.5,-98.3333 156.8333,-104 151.1667,-104 151.1667,-104 119.8333,-104 119.8333,-104 114.1667,-104 108.5,-98.3333 108.5,-92.6667 108.5,-92.6667 108.5,-81.3333 108.5,-81.3333 108.5,-75.6667 114.1667,-70 119.8333,-70"/>
-</g>
-<!-- state1&#45;&gt;stateb -->
-<g id="edge2" class="edge">
-<title>state1&#45;&gt;stateb</title>
-<path fill="none" stroke="#000000" d="M53.5594,-132.9667C54.8579,-132.2382 77.2071,-119.7009 98.235,-107.9048"/>
-<polygon fill="#000000" stroke="#000000" points="100.0918,-110.8763 107.1008,-102.9313 96.667,-104.7713 100.0918,-110.8763"/>
-<text text-anchor="start" x="87.5" y="-116" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">event &#160;&#160;</text>
-</g>
-<!-- statea -->
-<g id="node5" class="node">
-<title>statea</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="85.5,-52 29.5,-52 29.5,-16 85.5,-16 85.5,-52"/>
-<text text-anchor="start" x="41.159" y="-30.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">statea</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M41.8333,-17C41.8333,-17 73.1667,-17 73.1667,-17 78.8333,-17 84.5,-22.6667 84.5,-28.3333 84.5,-28.3333 84.5,-39.6667 84.5,-39.6667 84.5,-45.3333 78.8333,-51 73.1667,-51 73.1667,-51 41.8333,-51 41.8333,-51 36.1667,-51 30.5,-45.3333 30.5,-39.6667 30.5,-39.6667 30.5,-28.3333 30.5,-28.3333 30.5,-22.6667 36.1667,-17 41.8333,-17"/>
-</g>
-<!-- state1&#45;&gt;statea -->
-<g id="edge4" class="edge">
-<title>state1&#45;&gt;statea</title>
-<path fill="none" stroke="#000000" d="M53.5029,-132.9282C53.5805,-131.0073 55.1999,-90.9267 56.3533,-62.3801"/>
-<polygon fill="#000000" stroke="#000000" points="59.8617,-62.2409 56.7684,-52.1077 52.8674,-61.9582 59.8617,-62.2409"/>
-<text text-anchor="start" x="55.5" y="-84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">event &#160;&#160;</text>
-</g>
-<!-- initial_300 -->
-<g id="node4" class="node">
-<title>initial_300</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="55.5" cy="-195.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- initial_300&#45;&gt;state1 -->
-<g id="edge1" class="edge">
-<title>initial_300&#45;&gt;state1</title>
-<path fill="none" stroke="#000000" d="M55.3154,-189.7322C54.9782,-179.1931 54.2581,-156.6895 53.8331,-143.4105"/>
-<polygon fill="#000000" stroke="#000000" points="57.3219,-143.0017 53.5038,-133.1188 50.3255,-143.2257 57.3219,-143.0017"/>
-<text text-anchor="middle" x="55.8895" y="-164" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-</g>
-</svg>

+ 78 - 0
test/semantics/original_semantics/inner_first_Class1.svg

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="224pt" height="311pt"
+ viewBox="0.00 0.00 223.92 311.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 307)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-307 219.923,-307 219.923,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__state1</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 113,-8 113,-8 119,-8 125,-14 125,-20 125,-20 125,-252 125,-252 125,-258 119,-264 113,-264 113,-264 20,-264 20,-264 14,-264 8,-258 8,-252 8,-252 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="50.159" y="-245.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="117" cy="-297.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _state1 -->
+<!-- __initial&#45;&gt;_state1 -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_state1</title>
+<path fill="none" stroke="#000000" d="M117,-291.9623C117,-287.7143 117,-281.3733 117,-274.1925"/>
+<polygon fill="#000000" stroke="#000000" points="120.5001,-273.9976 117,-263.9976 113.5001,-273.9976 120.5001,-273.9976"/>
+<text text-anchor="middle" x="118.3895" y="-275" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _stateb -->
+<g id="node2" class="node">
+<title>_stateb</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="189,-187 133,-187 133,-151 189,-151 189,-187"/>
+<text text-anchor="start" x="144.659" y="-165.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">stateb</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M145.3333,-152C145.3333,-152 176.6667,-152 176.6667,-152 182.3333,-152 188,-157.6667 188,-163.3333 188,-163.3333 188,-174.6667 188,-174.6667 188,-180.3333 182.3333,-186 176.6667,-186 176.6667,-186 145.3333,-186 145.3333,-186 139.6667,-186 134,-180.3333 134,-174.6667 134,-174.6667 134,-163.3333 134,-163.3333 134,-157.6667 139.6667,-152 145.3333,-152"/>
+</g>
+<!-- _state1&#45;&gt;_stateb -->
+<g id="edge4" class="edge">
+<title>_state1&#45;&gt;_stateb</title>
+<path fill="none" stroke="#000000" d="M124.9962,-211.1408C128.9147,-206.5544 133.8475,-200.7808 138.7942,-194.9909"/>
+<polygon fill="#000000" stroke="#000000" points="141.6061,-197.0878 145.4408,-187.2113 136.284,-192.5408 141.6061,-197.0878"/>
+<text text-anchor="start" x="137" y="-198" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.event &#160;&#160;</text>
+</g>
+<!-- _state1_initial -->
+<g id="node4" class="node">
+<title>_state1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="44" cy="-220.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _state1_state1 -->
+<g id="node5" class="node">
+<title>_state1_state1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-134 16,-134 16,-98 72,-98 72,-134"/>
+<text text-anchor="start" x="27.659" y="-112.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-99C28.3333,-99 59.6667,-99 59.6667,-99 65.3333,-99 71,-104.6667 71,-110.3333 71,-110.3333 71,-121.6667 71,-121.6667 71,-127.3333 65.3333,-133 59.6667,-133 59.6667,-133 28.3333,-133 28.3333,-133 22.6667,-133 17,-127.3333 17,-121.6667 17,-121.6667 17,-110.3333 17,-110.3333 17,-104.6667 22.6667,-99 28.3333,-99"/>
+</g>
+<!-- _state1_initial&#45;&gt;_state1_state1 -->
+<g id="edge2" class="edge">
+<title>_state1_initial&#45;&gt;_state1_state1</title>
+<path fill="none" stroke="#000000" d="M44,-214.8816C44,-201.8087 44,-168.6145 44,-144.2784"/>
+<polygon fill="#000000" stroke="#000000" points="47.5001,-144.1502 44,-134.1503 40.5001,-144.1503 47.5001,-144.1502"/>
+<text text-anchor="middle" x="45.3895" y="-166" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _state1_statea -->
+<g id="node6" class="node">
+<title>_state1_statea</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-52 16,-52 16,-16 72,-16 72,-52"/>
+<text text-anchor="start" x="27.659" y="-30.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">statea</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-17C28.3333,-17 59.6667,-17 59.6667,-17 65.3333,-17 71,-22.6667 71,-28.3333 71,-28.3333 71,-39.6667 71,-39.6667 71,-45.3333 65.3333,-51 59.6667,-51 59.6667,-51 28.3333,-51 28.3333,-51 22.6667,-51 17,-45.3333 17,-39.6667 17,-39.6667 17,-28.3333 17,-28.3333 17,-22.6667 22.6667,-17 28.3333,-17"/>
+</g>
+<!-- _state1_state1&#45;&gt;_state1_statea -->
+<g id="edge3" class="edge">
+<title>_state1_state1&#45;&gt;_state1_statea</title>
+<path fill="none" stroke="#000000" d="M44,-97.8015C44,-87.3976 44,-74.1215 44,-62.3768"/>
+<polygon fill="#000000" stroke="#000000" points="47.5001,-62.1476 44,-52.1476 40.5001,-62.1476 47.5001,-62.1476"/>
+<text text-anchor="start" x="44" y="-72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.event &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 0 - 150
test/semantics/original_semantics/instate.svg

@@ -1,150 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="309pt" height="785pt"
- viewBox="0.00 0.00 309.00 784.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 780.5)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-780.5 305,-780.5 305,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_parallel_1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 281,-8 281,-8 287,-8 293,-14 293,-20 293,-20 293,-756.5 293,-756.5 293,-762.5 287,-768.5 281,-768.5 281,-768.5 20,-768.5 20,-768.5 14,-768.5 8,-762.5 8,-756.5 8,-756.5 8,-20 8,-20 8,-14 14,-8 20,-8"/>
-<text text-anchor="start" x="124.496" y="-749.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel_1</text>
-</g>
-<g id="clust2" class="cluster">
-<title>cluster_orthogonal1</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="182,-16 182,-730.5 285,-730.5 285,-16 182,-16"/>
-<text text-anchor="start" x="202.3206" y="-711.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal1</text>
-</g>
-<g id="clust3" class="cluster">
-<title>cluster_inner</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M202,-24C202,-24 265,-24 265,-24 271,-24 277,-30 277,-36 277,-36 277,-469.5 277,-469.5 277,-475.5 271,-481.5 265,-481.5 265,-481.5 202,-481.5 202,-481.5 196,-481.5 190,-475.5 190,-469.5 190,-469.5 190,-36 190,-36 190,-30 196,-24 202,-24"/>
-<text text-anchor="start" x="220.165" y="-462.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner</text>
-</g>
-<g id="clust4" class="cluster">
-<title>cluster_orthogonal2</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-412 24,-730.5 174,-730.5 174,-412 24,-412"/>
-<text text-anchor="start" x="67.8206" y="-711.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal2</text>
-</g>
-<!-- parallel_1 -->
-<!-- orthogonal1 -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="233" cy="-687" rx="5.5" ry="5.5"/>
-</g>
-<!-- state1 -->
-<g id="node4" class="node">
-<title>state1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="261,-599.5 205,-599.5 205,-563.5 261,-563.5 261,-599.5"/>
-<text text-anchor="start" x="216.659" y="-577.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M217.3333,-564.5C217.3333,-564.5 248.6667,-564.5 248.6667,-564.5 254.3333,-564.5 260,-570.1667 260,-575.8333 260,-575.8333 260,-587.1667 260,-587.1667 260,-592.8333 254.3333,-598.5 248.6667,-598.5 248.6667,-598.5 217.3333,-598.5 217.3333,-598.5 211.6667,-598.5 206,-592.8333 206,-587.1667 206,-587.1667 206,-575.8333 206,-575.8333 206,-570.1667 211.6667,-564.5 217.3333,-564.5"/>
-</g>
-<!-- initial_400&#45;&gt;state1 -->
-<g id="edge2" class="edge">
-<title>initial_400&#45;&gt;state1</title>
-<path fill="none" stroke="#000000" d="M233,-681.3288C233,-676.6736 233,-669.9097 233,-664 233,-664 233,-664 233,-617 233,-614.6079 233,-612.1252 233,-609.6342"/>
-<polygon fill="#000000" stroke="#000000" points="236.5001,-609.5597 233,-599.5598 229.5001,-609.5598 236.5001,-609.5597"/>
-<text text-anchor="middle" x="234.3895" y="-637.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- inner -->
-<!-- state1&#45;&gt;inner -->
-<g id="edge4" class="edge">
-<title>state1&#45;&gt;inner</title>
-<path fill="none" stroke="#000000" d="M233,-563.4402C233,-557.8497 233,-551.6701 233,-546 233,-546 233,-546 233,-499 233,-496.6011 233.069,-494.1548 233.1948,-491.6877"/>
-<polygon fill="#000000" stroke="#000000" points="236.7014,-491.7421 234.0016,-481.497 229.7232,-491.1896 236.7014,-491.7421"/>
-<text text-anchor="start" x="233" y="-519.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_inner &#160;&#160;</text>
-</g>
-<!-- initial_501 -->
-<g id="node6" class="node">
-<title>initial_501</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="214" cy="-438" rx="5.5" ry="5.5"/>
-</g>
-<!-- state2 -->
-<g id="node7" class="node">
-<title>state2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="254,-258 198,-258 198,-222 254,-222 254,-258"/>
-<text text-anchor="start" x="209.659" y="-236.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M210.3333,-223C210.3333,-223 241.6667,-223 241.6667,-223 247.3333,-223 253,-228.6667 253,-234.3333 253,-234.3333 253,-245.6667 253,-245.6667 253,-251.3333 247.3333,-257 241.6667,-257 241.6667,-257 210.3333,-257 210.3333,-257 204.6667,-257 199,-251.3333 199,-245.6667 199,-245.6667 199,-234.3333 199,-234.3333 199,-228.6667 204.6667,-223 210.3333,-223"/>
-</g>
-<!-- initial_501&#45;&gt;state2 -->
-<g id="edge3" class="edge">
-<title>initial_501&#45;&gt;state2</title>
-<path fill="none" stroke="#000000" d="M215.8213,-432.7155C218.4511,-424.6008 223,-408.5359 223,-394.5 223,-394.5 223,-394.5 223,-275.5 223,-273.0994 223.069,-270.6107 223.186,-268.1158"/>
-<polygon fill="#000000" stroke="#000000" points="226.6848,-268.2528 223.8839,-258.0349 219.7015,-267.7692 226.6848,-268.2528"/>
-<text text-anchor="middle" x="224.3895" y="-332" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state3 -->
-<g id="node8" class="node">
-<title>state3</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="254,-68 198,-68 198,-32 254,-32 254,-68"/>
-<text text-anchor="start" x="209.659" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state3</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M210.3333,-33C210.3333,-33 241.6667,-33 241.6667,-33 247.3333,-33 253,-38.6667 253,-44.3333 253,-44.3333 253,-55.6667 253,-55.6667 253,-61.3333 247.3333,-67 241.6667,-67 241.6667,-67 210.3333,-67 210.3333,-67 204.6667,-67 199,-61.3333 199,-55.6667 199,-55.6667 199,-44.3333 199,-44.3333 199,-38.6667 204.6667,-33 210.3333,-33"/>
-</g>
-<!-- state2&#45;&gt;state3 -->
-<g id="edge5" class="edge">
-<title>state2&#45;&gt;state3</title>
-<path fill="none" stroke="#000000" d="M221.7033,-221.6741C220.7416,-216.1833 220,-210.1255 220,-204.5 220,-204.5 220,-204.5 220,-85.5 220,-83.2146 220.1224,-80.8579 220.3322,-78.4969"/>
-<polygon fill="#000000" stroke="#000000" points="223.8359,-78.7039 221.7033,-68.3259 216.8986,-77.7687 223.8359,-78.7039"/>
-<text text-anchor="start" x="220" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state3 &#160;&#160;</text>
-</g>
-<!-- orthogonal2 -->
-<!-- initial_401 -->
-<g id="node10" class="node">
-<title>initial_401</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="101" cy="-687" rx="5.5" ry="5.5"/>
-</g>
-<!-- tester -->
-<g id="node11" class="node">
-<title>tester</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="129,-599.5 73,-599.5 73,-563.5 129,-563.5 129,-599.5"/>
-<text text-anchor="start" x="85.997" y="-577.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">tester</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M85.3333,-564.5C85.3333,-564.5 116.6667,-564.5 116.6667,-564.5 122.3333,-564.5 128,-570.1667 128,-575.8333 128,-575.8333 128,-587.1667 128,-587.1667 128,-592.8333 122.3333,-598.5 116.6667,-598.5 116.6667,-598.5 85.3333,-598.5 85.3333,-598.5 79.6667,-598.5 74,-592.8333 74,-587.1667 74,-587.1667 74,-575.8333 74,-575.8333 74,-570.1667 79.6667,-564.5 85.3333,-564.5"/>
-</g>
-<!-- initial_401&#45;&gt;tester -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;tester</title>
-<path fill="none" stroke="#000000" d="M101,-681.3288C101,-676.6736 101,-669.9097 101,-664 101,-664 101,-664 101,-617 101,-614.6079 101,-612.1252 101,-609.6342"/>
-<polygon fill="#000000" stroke="#000000" points="104.5001,-609.5597 101,-599.5598 97.5001,-609.5598 104.5001,-609.5597"/>
-<text text-anchor="middle" x="102.3895" y="-637.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- stop -->
-<g id="node12" class="node">
-<title>stop</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="166,-456 110,-456 110,-420 166,-420 166,-456"/>
-<text text-anchor="start" x="126.6618" y="-434.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">stop</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M122.3333,-421C122.3333,-421 153.6667,-421 153.6667,-421 159.3333,-421 165,-426.6667 165,-432.3333 165,-432.3333 165,-443.6667 165,-443.6667 165,-449.3333 159.3333,-455 153.6667,-455 153.6667,-455 122.3333,-455 122.3333,-455 116.6667,-455 111,-449.3333 111,-443.6667 111,-443.6667 111,-432.3333 111,-432.3333 111,-426.6667 116.6667,-421 122.3333,-421"/>
-</g>
-<!-- tester&#45;&gt;stop -->
-<g id="edge8" class="edge">
-<title>tester&#45;&gt;stop</title>
-<path fill="none" stroke="#000000" d="M129.1541,-571.159C139.1638,-565.5322 148,-557.3506 148,-546 148,-546 148,-546 148,-499 148,-488.1678 146.4454,-476.3943 144.5621,-466.1059"/>
-<polygon fill="#000000" stroke="#000000" points="147.9371,-465.1359 142.5319,-456.0236 141.0748,-466.5178 147.9371,-465.1359"/>
-<text text-anchor="middle" x="149.3895" y="-519.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- . -->
-<g id="node13" class="node">
-<title>.</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-456 32,-456 32,-420 88,-420 88,-456"/>
-<text text-anchor="start" x="58.3326" y="-434.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">.</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-421C44.3333,-421 75.6667,-421 75.6667,-421 81.3333,-421 87,-426.6667 87,-432.3333 87,-432.3333 87,-443.6667 87,-443.6667 87,-449.3333 81.3333,-455 75.6667,-455 75.6667,-455 44.3333,-455 44.3333,-455 38.6667,-455 33,-449.3333 33,-443.6667 33,-443.6667 33,-432.3333 33,-432.3333 33,-426.6667 38.6667,-421 44.3333,-421"/>
-</g>
-<!-- tester&#45;&gt;. -->
-<g id="edge6" class="edge">
-<title>tester&#45;&gt;.</title>
-<path fill="none" stroke="#000000" d="M72.8459,-571.159C62.8362,-565.5322 54,-557.3506 54,-546 54,-546 54,-546 54,-499 54,-488.2589 54.9328,-476.5047 56.0628,-466.2062"/>
-<polygon fill="#000000" stroke="#000000" points="59.5584,-466.4516 57.2809,-456.1045 52.6088,-465.6135 59.5584,-466.4516"/>
-<text text-anchor="middle" x="55.3895" y="-519.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- tester&#45;&gt;. -->
-<g id="edge7" class="edge">
-<title>tester&#45;&gt;.</title>
-<path fill="none" stroke="#000000" d="M101,-563.4402C101,-557.8497 101,-551.6701 101,-546 101,-546 101,-546 101,-499 101,-486.2399 94.7439,-474.1407 87.1193,-464.1332"/>
-<polygon fill="#000000" stroke="#000000" points="89.611,-461.6578 80.5,-456.2503 84.2502,-466.1592 89.611,-461.6578"/>
-<text text-anchor="middle" x="102.3895" y="-519.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-</g>
-</svg>

+ 155 - 0
test/semantics/original_semantics/instate_Class1.svg

@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="271pt" height="816pt"
+ viewBox="0.00 0.00 271.00 815.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 811.5)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-811.5 267,-811.5 267,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__parallel_1</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 243,-8 243,-8 249,-8 255,-14 255,-20 255,-20 255,-756.5 255,-756.5 255,-762.5 249,-768.5 243,-768.5 243,-768.5 20,-768.5 20,-768.5 14,-768.5 8,-762.5 8,-756.5 8,-756.5 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="105.496" y="-749.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel_1</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster__parallel_1_orthogonal1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="144,-16 144,-730.5 247,-730.5 247,-16 144,-16"/>
+<text text-anchor="start" x="164.3206" y="-711.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal1</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster__parallel_1_orthogonal1_inner</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M164,-24C164,-24 227,-24 227,-24 233,-24 239,-30 239,-36 239,-36 239,-469.5 239,-469.5 239,-475.5 233,-481.5 227,-481.5 227,-481.5 164,-481.5 164,-481.5 158,-481.5 152,-475.5 152,-469.5 152,-469.5 152,-36 152,-36 152,-30 158,-24 164,-24"/>
+<text text-anchor="start" x="182.165" y="-462.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">inner</text>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster__parallel_1_orthogonal2</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-412 24,-730.5 136,-730.5 136,-412 24,-412"/>
+<text text-anchor="start" x="48.8206" y="-711.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal2</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-802" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_1 -->
+<!-- __initial&#45;&gt;_parallel_1 -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_parallel_1</title>
+<path fill="none" stroke="#000000" d="M16,-796.4533C16,-792.2779 16,-786.0043 16,-778.5332"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-778.4971 16,-768.4971 12.5001,-778.4972 19.5001,-778.4971"/>
+<text text-anchor="middle" x="17.3895" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_1_orthogonal1 -->
+<!-- _parallel_1_orthogonal1_initial -->
+<g id="node4" class="node">
+<title>_parallel_1_orthogonal1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="195" cy="-687" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_1_orthogonal1_state1 -->
+<g id="node5" class="node">
+<title>_parallel_1_orthogonal1_state1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="223,-599.5 167,-599.5 167,-563.5 223,-563.5 223,-599.5"/>
+<text text-anchor="start" x="178.659" y="-577.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M179.3333,-564.5C179.3333,-564.5 210.6667,-564.5 210.6667,-564.5 216.3333,-564.5 222,-570.1667 222,-575.8333 222,-575.8333 222,-587.1667 222,-587.1667 222,-592.8333 216.3333,-598.5 210.6667,-598.5 210.6667,-598.5 179.3333,-598.5 179.3333,-598.5 173.6667,-598.5 168,-592.8333 168,-587.1667 168,-587.1667 168,-575.8333 168,-575.8333 168,-570.1667 173.6667,-564.5 179.3333,-564.5"/>
+</g>
+<!-- _parallel_1_orthogonal1_initial&#45;&gt;_parallel_1_orthogonal1_state1 -->
+<g id="edge2" class="edge">
+<title>_parallel_1_orthogonal1_initial&#45;&gt;_parallel_1_orthogonal1_state1</title>
+<path fill="none" stroke="#000000" d="M195,-681.3288C195,-676.6736 195,-669.9097 195,-664 195,-664 195,-664 195,-617 195,-614.6079 195,-612.1252 195,-609.6342"/>
+<polygon fill="#000000" stroke="#000000" points="198.5001,-609.5597 195,-599.5598 191.5001,-609.5598 198.5001,-609.5597"/>
+<text text-anchor="middle" x="196.3895" y="-637.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_1_orthogonal1_inner -->
+<!-- _parallel_1_orthogonal1_state1&#45;&gt;_parallel_1_orthogonal1_inner -->
+<g id="edge3" class="edge">
+<title>_parallel_1_orthogonal1_state1&#45;&gt;_parallel_1_orthogonal1_inner</title>
+<path fill="none" stroke="#000000" d="M195,-563.4402C195,-557.8497 195,-551.6701 195,-546 195,-546 195,-546 195,-499 195,-496.6011 195.069,-494.1548 195.1948,-491.6877"/>
+<polygon fill="#000000" stroke="#000000" points="198.7014,-491.7421 196.0016,-481.497 191.7232,-491.1896 198.7014,-491.7421"/>
+<text text-anchor="start" x="195" y="-519.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_inner &#160;&#160;</text>
+</g>
+<!-- _parallel_1_orthogonal1_inner_initial -->
+<g id="node7" class="node">
+<title>_parallel_1_orthogonal1_inner_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="176" cy="-438" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_1_orthogonal1_inner_state2 -->
+<g id="node8" class="node">
+<title>_parallel_1_orthogonal1_inner_state2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="216,-258 160,-258 160,-222 216,-222 216,-258"/>
+<text text-anchor="start" x="171.659" y="-236.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M172.3333,-223C172.3333,-223 203.6667,-223 203.6667,-223 209.3333,-223 215,-228.6667 215,-234.3333 215,-234.3333 215,-245.6667 215,-245.6667 215,-251.3333 209.3333,-257 203.6667,-257 203.6667,-257 172.3333,-257 172.3333,-257 166.6667,-257 161,-251.3333 161,-245.6667 161,-245.6667 161,-234.3333 161,-234.3333 161,-228.6667 166.6667,-223 172.3333,-223"/>
+</g>
+<!-- _parallel_1_orthogonal1_inner_initial&#45;&gt;_parallel_1_orthogonal1_inner_state2 -->
+<g id="edge4" class="edge">
+<title>_parallel_1_orthogonal1_inner_initial&#45;&gt;_parallel_1_orthogonal1_inner_state2</title>
+<path fill="none" stroke="#000000" d="M177.8213,-432.7155C180.4511,-424.6008 185,-408.5359 185,-394.5 185,-394.5 185,-394.5 185,-275.5 185,-273.0994 185.069,-270.6107 185.186,-268.1158"/>
+<polygon fill="#000000" stroke="#000000" points="188.6848,-268.2528 185.8839,-258.0349 181.7015,-267.7692 188.6848,-268.2528"/>
+<text text-anchor="middle" x="186.3895" y="-332" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_1_orthogonal1_inner_state3 -->
+<g id="node9" class="node">
+<title>_parallel_1_orthogonal1_inner_state3</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="216,-68 160,-68 160,-32 216,-32 216,-68"/>
+<text text-anchor="start" x="171.659" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state3</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M172.3333,-33C172.3333,-33 203.6667,-33 203.6667,-33 209.3333,-33 215,-38.6667 215,-44.3333 215,-44.3333 215,-55.6667 215,-55.6667 215,-61.3333 209.3333,-67 203.6667,-67 203.6667,-67 172.3333,-67 172.3333,-67 166.6667,-67 161,-61.3333 161,-55.6667 161,-55.6667 161,-44.3333 161,-44.3333 161,-38.6667 166.6667,-33 172.3333,-33"/>
+</g>
+<!-- _parallel_1_orthogonal1_inner_state2&#45;&gt;_parallel_1_orthogonal1_inner_state3 -->
+<g id="edge5" class="edge">
+<title>_parallel_1_orthogonal1_inner_state2&#45;&gt;_parallel_1_orthogonal1_inner_state3</title>
+<path fill="none" stroke="#000000" d="M183.7033,-221.6741C182.7416,-216.1833 182,-210.1255 182,-204.5 182,-204.5 182,-204.5 182,-85.5 182,-83.2146 182.1224,-80.8579 182.3322,-78.4969"/>
+<polygon fill="#000000" stroke="#000000" points="185.8359,-78.7039 183.7033,-68.3259 178.8986,-77.7687 185.8359,-78.7039"/>
+<text text-anchor="start" x="182" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state3 &#160;&#160;</text>
+</g>
+<!-- _parallel_1_orthogonal2 -->
+<!-- _parallel_1_orthogonal2_initial -->
+<g id="node11" class="node">
+<title>_parallel_1_orthogonal2_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="60" cy="-687" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_1_orthogonal2_tester -->
+<g id="node12" class="node">
+<title>_parallel_1_orthogonal2_tester</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-599.5 32,-599.5 32,-563.5 88,-563.5 88,-599.5"/>
+<text text-anchor="start" x="44.997" y="-577.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">tester</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-564.5C44.3333,-564.5 75.6667,-564.5 75.6667,-564.5 81.3333,-564.5 87,-570.1667 87,-575.8333 87,-575.8333 87,-587.1667 87,-587.1667 87,-592.8333 81.3333,-598.5 75.6667,-598.5 75.6667,-598.5 44.3333,-598.5 44.3333,-598.5 38.6667,-598.5 33,-592.8333 33,-587.1667 33,-587.1667 33,-575.8333 33,-575.8333 33,-570.1667 38.6667,-564.5 44.3333,-564.5"/>
+</g>
+<!-- _parallel_1_orthogonal2_initial&#45;&gt;_parallel_1_orthogonal2_tester -->
+<g id="edge6" class="edge">
+<title>_parallel_1_orthogonal2_initial&#45;&gt;_parallel_1_orthogonal2_tester</title>
+<path fill="none" stroke="#000000" d="M60,-681.3288C60,-676.6736 60,-669.9097 60,-664 60,-664 60,-664 60,-617 60,-614.6079 60,-612.1252 60,-609.6342"/>
+<polygon fill="#000000" stroke="#000000" points="63.5001,-609.5597 60,-599.5598 56.5001,-609.5598 63.5001,-609.5597"/>
+<text text-anchor="middle" x="61.3895" y="-637.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_1_orthogonal2_tester&#45;&gt;_parallel_1_orthogonal2_tester -->
+<g id="edge7" class="edge">
+<title>_parallel_1_orthogonal2_tester&#45;&gt;_parallel_1_orthogonal2_tester</title>
+<path fill="none" stroke="#000000" d="M88.0183,-583.9124C99.888,-584.0942 110,-583.29 110,-581.5 110,-580.2693 105.2205,-579.5047 98.3762,-579.206"/>
+<polygon fill="#000000" stroke="#000000" points="98.0576,-575.7023 88.0183,-579.0876 97.9776,-582.7018 98.0576,-575.7023"/>
+<text text-anchor="middle" x="111.3895" y="-578.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_1_orthogonal2_tester&#45;&gt;_parallel_1_orthogonal2_tester -->
+<g id="edge8" class="edge">
+<title>_parallel_1_orthogonal2_tester&#45;&gt;_parallel_1_orthogonal2_tester</title>
+<path fill="none" stroke="#000000" d="M88.0835,-585.7454C109.8252,-587.3331 132,-585.918 132,-581.5 132,-577.7723 116.2134,-576.1824 98.2204,-576.7303"/>
+<polygon fill="#000000" stroke="#000000" points="97.8893,-573.2427 88.0835,-577.2546 98.251,-580.2333 97.8893,-573.2427"/>
+<text text-anchor="middle" x="133.3895" y="-578.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_1_orthogonal2_stop -->
+<g id="node13" class="node">
+<title>_parallel_1_orthogonal2_stop</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="88,-456 32,-456 32,-420 88,-420 88,-456"/>
+<text text-anchor="start" x="48.6618" y="-434.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">stop</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M44.3333,-421C44.3333,-421 75.6667,-421 75.6667,-421 81.3333,-421 87,-426.6667 87,-432.3333 87,-432.3333 87,-443.6667 87,-443.6667 87,-449.3333 81.3333,-455 75.6667,-455 75.6667,-455 44.3333,-455 44.3333,-455 38.6667,-455 33,-449.3333 33,-443.6667 33,-443.6667 33,-432.3333 33,-432.3333 33,-426.6667 38.6667,-421 44.3333,-421"/>
+</g>
+<!-- _parallel_1_orthogonal2_tester&#45;&gt;_parallel_1_orthogonal2_stop -->
+<g id="edge9" class="edge">
+<title>_parallel_1_orthogonal2_tester&#45;&gt;_parallel_1_orthogonal2_stop</title>
+<path fill="none" stroke="#000000" d="M60,-563.4402C60,-557.8497 60,-551.6701 60,-546 60,-546 60,-546 60,-499 60,-488.3104 60,-476.5672 60,-466.263"/>
+<polygon fill="#000000" stroke="#000000" points="63.5001,-466.1503 60,-456.1503 56.5001,-466.1504 63.5001,-466.1503"/>
+<text text-anchor="middle" x="61.3895" y="-519.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+</g>
+</svg>

+ 0 - 71
test/semantics/original_semantics/outer_first.svg

@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="172pt" height="255pt"
- viewBox="0.00 0.00 171.50 255.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 251)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-251 167.5,-251 167.5,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_state1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M33.5,-8C33.5,-8 81.5,-8 81.5,-8 87.5,-8 93.5,-14 93.5,-20 93.5,-20 93.5,-227 93.5,-227 93.5,-233 87.5,-239 81.5,-239 81.5,-239 33.5,-239 33.5,-239 27.5,-239 21.5,-233 21.5,-227 21.5,-227 21.5,-20 21.5,-20 21.5,-14 27.5,-8 33.5,-8"/>
-<text text-anchor="start" x="41.159" y="-220.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
-</g>
-<!-- initial_200 -->
-<g id="node1" class="node">
-<title>initial_200</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="5.5" cy="-167" rx="5.5" ry="5.5"/>
-</g>
-<!-- state1 -->
-<!-- initial_200&#45;&gt;state1 -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;state1</title>
-<path fill="none" stroke="#000000" d="M10.2779,-163.6156C18.364,-157.888 34.8515,-146.2094 44.9626,-139.0473"/>
-<polygon fill="#000000" stroke="#000000" points="47.2733,-141.6997 53.4105,-133.0634 43.2271,-135.9875 47.2733,-141.6997"/>
-<text text-anchor="middle" x="42.8895" y="-144" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- stateb -->
-<g id="node2" class="node">
-<title>stateb</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="163.5,-105 107.5,-105 107.5,-69 163.5,-69 163.5,-105"/>
-<text text-anchor="start" x="119.159" y="-83.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">stateb</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M119.8333,-70C119.8333,-70 151.1667,-70 151.1667,-70 156.8333,-70 162.5,-75.6667 162.5,-81.3333 162.5,-81.3333 162.5,-92.6667 162.5,-92.6667 162.5,-98.3333 156.8333,-104 151.1667,-104 151.1667,-104 119.8333,-104 119.8333,-104 114.1667,-104 108.5,-98.3333 108.5,-92.6667 108.5,-92.6667 108.5,-81.3333 108.5,-81.3333 108.5,-75.6667 114.1667,-70 119.8333,-70"/>
-</g>
-<!-- state1&#45;&gt;stateb -->
-<g id="edge2" class="edge">
-<title>state1&#45;&gt;stateb</title>
-<path fill="none" stroke="#000000" d="M53.5594,-132.9667C54.8579,-132.2382 77.2071,-119.7009 98.235,-107.9048"/>
-<polygon fill="#000000" stroke="#000000" points="100.0918,-110.8763 107.1008,-102.9313 96.667,-104.7713 100.0918,-110.8763"/>
-<text text-anchor="start" x="87.5" y="-116" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">event &#160;&#160;</text>
-</g>
-<!-- statea -->
-<g id="node5" class="node">
-<title>statea</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="85.5,-52 29.5,-52 29.5,-16 85.5,-16 85.5,-52"/>
-<text text-anchor="start" x="41.159" y="-30.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">statea</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M41.8333,-17C41.8333,-17 73.1667,-17 73.1667,-17 78.8333,-17 84.5,-22.6667 84.5,-28.3333 84.5,-28.3333 84.5,-39.6667 84.5,-39.6667 84.5,-45.3333 78.8333,-51 73.1667,-51 73.1667,-51 41.8333,-51 41.8333,-51 36.1667,-51 30.5,-45.3333 30.5,-39.6667 30.5,-39.6667 30.5,-28.3333 30.5,-28.3333 30.5,-22.6667 36.1667,-17 41.8333,-17"/>
-</g>
-<!-- state1&#45;&gt;statea -->
-<g id="edge4" class="edge">
-<title>state1&#45;&gt;statea</title>
-<path fill="none" stroke="#000000" d="M53.5029,-132.9282C53.5805,-131.0073 55.1999,-90.9267 56.3533,-62.3801"/>
-<polygon fill="#000000" stroke="#000000" points="59.8617,-62.2409 56.7684,-52.1077 52.8674,-61.9582 59.8617,-62.2409"/>
-<text text-anchor="start" x="55.5" y="-84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">event &#160;&#160;</text>
-</g>
-<!-- initial_300 -->
-<g id="node4" class="node">
-<title>initial_300</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="55.5" cy="-195.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- initial_300&#45;&gt;state1 -->
-<g id="edge1" class="edge">
-<title>initial_300&#45;&gt;state1</title>
-<path fill="none" stroke="#000000" d="M55.3154,-189.7322C54.9782,-179.1931 54.2581,-156.6895 53.8331,-143.4105"/>
-<polygon fill="#000000" stroke="#000000" points="57.3219,-143.0017 53.5038,-133.1188 50.3255,-143.2257 57.3219,-143.0017"/>
-<text text-anchor="middle" x="55.8895" y="-164" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-</g>
-</svg>

+ 78 - 0
test/semantics/original_semantics/outer_first_Class1.svg

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="224pt" height="311pt"
+ viewBox="0.00 0.00 223.92 311.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 307)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-307 219.923,-307 219.923,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__state1</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 113,-8 113,-8 119,-8 125,-14 125,-20 125,-20 125,-252 125,-252 125,-258 119,-264 113,-264 113,-264 20,-264 20,-264 14,-264 8,-258 8,-252 8,-252 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="50.159" y="-245.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="117" cy="-297.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _state1 -->
+<!-- __initial&#45;&gt;_state1 -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_state1</title>
+<path fill="none" stroke="#000000" d="M117,-291.9623C117,-287.7143 117,-281.3733 117,-274.1925"/>
+<polygon fill="#000000" stroke="#000000" points="120.5001,-273.9976 117,-263.9976 113.5001,-273.9976 120.5001,-273.9976"/>
+<text text-anchor="middle" x="118.3895" y="-275" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _stateb -->
+<g id="node2" class="node">
+<title>_stateb</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="189,-187 133,-187 133,-151 189,-151 189,-187"/>
+<text text-anchor="start" x="144.659" y="-165.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">stateb</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M145.3333,-152C145.3333,-152 176.6667,-152 176.6667,-152 182.3333,-152 188,-157.6667 188,-163.3333 188,-163.3333 188,-174.6667 188,-174.6667 188,-180.3333 182.3333,-186 176.6667,-186 176.6667,-186 145.3333,-186 145.3333,-186 139.6667,-186 134,-180.3333 134,-174.6667 134,-174.6667 134,-163.3333 134,-163.3333 134,-157.6667 139.6667,-152 145.3333,-152"/>
+</g>
+<!-- _state1&#45;&gt;_stateb -->
+<g id="edge4" class="edge">
+<title>_state1&#45;&gt;_stateb</title>
+<path fill="none" stroke="#000000" d="M124.9962,-211.1408C128.9147,-206.5544 133.8475,-200.7808 138.7942,-194.9909"/>
+<polygon fill="#000000" stroke="#000000" points="141.6061,-197.0878 145.4408,-187.2113 136.284,-192.5408 141.6061,-197.0878"/>
+<text text-anchor="start" x="137" y="-198" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.event &#160;&#160;</text>
+</g>
+<!-- _state1_initial -->
+<g id="node4" class="node">
+<title>_state1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="44" cy="-220.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _state1_state1 -->
+<g id="node5" class="node">
+<title>_state1_state1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-134 16,-134 16,-98 72,-98 72,-134"/>
+<text text-anchor="start" x="27.659" y="-112.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-99C28.3333,-99 59.6667,-99 59.6667,-99 65.3333,-99 71,-104.6667 71,-110.3333 71,-110.3333 71,-121.6667 71,-121.6667 71,-127.3333 65.3333,-133 59.6667,-133 59.6667,-133 28.3333,-133 28.3333,-133 22.6667,-133 17,-127.3333 17,-121.6667 17,-121.6667 17,-110.3333 17,-110.3333 17,-104.6667 22.6667,-99 28.3333,-99"/>
+</g>
+<!-- _state1_initial&#45;&gt;_state1_state1 -->
+<g id="edge2" class="edge">
+<title>_state1_initial&#45;&gt;_state1_state1</title>
+<path fill="none" stroke="#000000" d="M44,-214.8816C44,-201.8087 44,-168.6145 44,-144.2784"/>
+<polygon fill="#000000" stroke="#000000" points="47.5001,-144.1502 44,-134.1503 40.5001,-144.1503 47.5001,-144.1502"/>
+<text text-anchor="middle" x="45.3895" y="-166" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _state1_statea -->
+<g id="node6" class="node">
+<title>_state1_statea</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-52 16,-52 16,-16 72,-16 72,-52"/>
+<text text-anchor="start" x="27.659" y="-30.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">statea</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-17C28.3333,-17 59.6667,-17 59.6667,-17 65.3333,-17 71,-22.6667 71,-28.3333 71,-28.3333 71,-39.6667 71,-39.6667 71,-45.3333 65.3333,-51 59.6667,-51 59.6667,-51 28.3333,-51 28.3333,-51 22.6667,-51 17,-45.3333 17,-39.6667 17,-39.6667 17,-28.3333 17,-28.3333 17,-22.6667 22.6667,-17 28.3333,-17"/>
+</g>
+<!-- _state1_state1&#45;&gt;_state1_statea -->
+<g id="edge3" class="edge">
+<title>_state1_state1&#45;&gt;_state1_statea</title>
+<path fill="none" stroke="#000000" d="M44,-97.8015C44,-87.3976 44,-74.1215 44,-62.3768"/>
+<polygon fill="#000000" stroke="#000000" points="47.5001,-62.1476 44,-52.1476 40.5001,-62.1476 47.5001,-62.1476"/>
+<text text-anchor="start" x="44" y="-72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.event &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 0 - 111
test/semantics/original_semantics/parallel.svg

@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="440pt" height="363pt"
- viewBox="0.00 0.00 440.00 363.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 359)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-359 436,-359 436,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_parallel_1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 412,-8 412,-8 418,-8 424,-14 424,-20 424,-20 424,-335 424,-335 424,-341 418,-347 412,-347 412,-347 20,-347 20,-347 14,-347 8,-341 8,-335 8,-335 8,-20 8,-20 8,-14 14,-8 20,-8"/>
-<text text-anchor="start" x="189.996" y="-328.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel_1</text>
-</g>
-<g id="clust2" class="cluster">
-<title>cluster_orthogonal_1</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="224,-16 224,-309 416,-309 416,-16 224,-16"/>
-<text text-anchor="start" x="284.9852" y="-290.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_1</text>
-</g>
-<g id="clust3" class="cluster">
-<title>cluster_orthogonal_2</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-309 216,-309 216,-16 24,-16"/>
-<text text-anchor="start" x="84.9852" y="-290.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_2</text>
-</g>
-<!-- parallel_1 -->
-<!-- orthogonal_1 -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="292" cy="-265.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- state_1 -->
-<g id="node4" class="node">
-<title>state_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="322.5,-178 261.5,-178 261.5,-142 322.5,-142 322.5,-178"/>
-<text text-anchor="start" x="272.8236" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M273.8333,-143C273.8333,-143 310.1667,-143 310.1667,-143 315.8333,-143 321.5,-148.6667 321.5,-154.3333 321.5,-154.3333 321.5,-165.6667 321.5,-165.6667 321.5,-171.3333 315.8333,-177 310.1667,-177 310.1667,-177 273.8333,-177 273.8333,-177 268.1667,-177 262.5,-171.3333 262.5,-165.6667 262.5,-165.6667 262.5,-154.3333 262.5,-154.3333 262.5,-148.6667 268.1667,-143 273.8333,-143"/>
-</g>
-<!-- initial_400&#45;&gt;state_1 -->
-<g id="edge2" class="edge">
-<title>initial_400&#45;&gt;state_1</title>
-<path fill="none" stroke="#000000" d="M292,-259.8288C292,-255.1736 292,-248.4097 292,-242.5 292,-242.5 292,-242.5 292,-195.5 292,-193.1079 292,-190.6252 292,-188.1342"/>
-<polygon fill="#000000" stroke="#000000" points="295.5001,-188.0597 292,-178.0598 288.5001,-188.0598 295.5001,-188.0597"/>
-<text text-anchor="middle" x="293.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_2 -->
-<g id="node5" class="node">
-<title>state_2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="338.5,-60 277.5,-60 277.5,-24 338.5,-24 338.5,-60"/>
-<text text-anchor="start" x="288.8236" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M289.8333,-25C289.8333,-25 326.1667,-25 326.1667,-25 331.8333,-25 337.5,-30.6667 337.5,-36.3333 337.5,-36.3333 337.5,-47.6667 337.5,-47.6667 337.5,-53.3333 331.8333,-59 326.1667,-59 326.1667,-59 289.8333,-59 289.8333,-59 284.1667,-59 278.5,-53.3333 278.5,-47.6667 278.5,-47.6667 278.5,-36.3333 278.5,-36.3333 278.5,-30.6667 284.1667,-25 289.8333,-25"/>
-</g>
-<!-- state_1&#45;&gt;state_2 -->
-<g id="edge4" class="edge">
-<title>state_1&#45;&gt;state_2</title>
-<path fill="none" stroke="#000000" d="M322.5,-154.013C337.75,-149.059 353,-140.184 353,-124.5 353,-124.5 353,-124.5 353,-77.5 353,-71.3165 350.3485,-66.0432 346.3329,-61.6026"/>
-<polygon fill="#000000" stroke="#000000" points="348.3847,-58.7515 338.514,-54.9018 343.8295,-64.0667 348.3847,-58.7515"/>
-<text text-anchor="start" x="353" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_2 &#160;&#160;</text>
-</g>
-<!-- state_2&#45;&gt;state_1 -->
-<g id="edge3" class="edge">
-<title>state_2&#45;&gt;state_1</title>
-<path fill="none" stroke="#000000" d="M277.2142,-50.5619C265.0874,-55.9764 254,-64.4855 254,-77.5 254,-124.5 254,-124.5 254,-124.5 254,-127.6317 254.6977,-130.5664 255.9039,-133.3001"/>
-<polygon fill="#000000" stroke="#000000" points="253.1743,-135.5105 261.6899,-141.8141 258.9639,-131.576 253.1743,-135.5105"/>
-<text text-anchor="start" x="254" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_1 &#160;&#160;</text>
-</g>
-<!-- orthogonal_2 -->
-<!-- initial_401 -->
-<g id="node7" class="node">
-<title>initial_401</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="92" cy="-265.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- state_3 -->
-<g id="node8" class="node">
-<title>state_3</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="122.5,-178 61.5,-178 61.5,-142 122.5,-142 122.5,-178"/>
-<text text-anchor="start" x="72.8236" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_3</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M73.8333,-143C73.8333,-143 110.1667,-143 110.1667,-143 115.8333,-143 121.5,-148.6667 121.5,-154.3333 121.5,-154.3333 121.5,-165.6667 121.5,-165.6667 121.5,-171.3333 115.8333,-177 110.1667,-177 110.1667,-177 73.8333,-177 73.8333,-177 68.1667,-177 62.5,-171.3333 62.5,-165.6667 62.5,-165.6667 62.5,-154.3333 62.5,-154.3333 62.5,-148.6667 68.1667,-143 73.8333,-143"/>
-</g>
-<!-- initial_401&#45;&gt;state_3 -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;state_3</title>
-<path fill="none" stroke="#000000" d="M92,-259.8288C92,-255.1736 92,-248.4097 92,-242.5 92,-242.5 92,-242.5 92,-195.5 92,-193.1079 92,-190.6252 92,-188.1342"/>
-<polygon fill="#000000" stroke="#000000" points="95.5001,-188.0597 92,-178.0598 88.5001,-188.0598 95.5001,-188.0597"/>
-<text text-anchor="middle" x="93.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_4 -->
-<g id="node9" class="node">
-<title>state_4</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="138.5,-60 77.5,-60 77.5,-24 138.5,-24 138.5,-60"/>
-<text text-anchor="start" x="88.8236" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_4</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M89.8333,-25C89.8333,-25 126.1667,-25 126.1667,-25 131.8333,-25 137.5,-30.6667 137.5,-36.3333 137.5,-36.3333 137.5,-47.6667 137.5,-47.6667 137.5,-53.3333 131.8333,-59 126.1667,-59 126.1667,-59 89.8333,-59 89.8333,-59 84.1667,-59 78.5,-53.3333 78.5,-47.6667 78.5,-47.6667 78.5,-36.3333 78.5,-36.3333 78.5,-30.6667 84.1667,-25 89.8333,-25"/>
-</g>
-<!-- state_3&#45;&gt;state_4 -->
-<g id="edge6" class="edge">
-<title>state_3&#45;&gt;state_4</title>
-<path fill="none" stroke="#000000" d="M122.5,-154.013C137.75,-149.059 153,-140.184 153,-124.5 153,-124.5 153,-124.5 153,-77.5 153,-71.3165 150.3485,-66.0432 146.3329,-61.6026"/>
-<polygon fill="#000000" stroke="#000000" points="148.3847,-58.7515 138.514,-54.9018 143.8295,-64.0667 148.3847,-58.7515"/>
-<text text-anchor="start" x="153" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_4 &#160;&#160;</text>
-</g>
-<!-- state_4&#45;&gt;state_3 -->
-<g id="edge5" class="edge">
-<title>state_4&#45;&gt;state_3</title>
-<path fill="none" stroke="#000000" d="M77.2142,-50.5619C65.0874,-55.9764 54,-64.4855 54,-77.5 54,-124.5 54,-124.5 54,-124.5 54,-127.6317 54.6977,-130.5664 55.9039,-133.3001"/>
-<polygon fill="#000000" stroke="#000000" points="53.1743,-135.5105 61.6899,-141.8141 58.9639,-131.576 53.1743,-135.5105"/>
-<text text-anchor="start" x="54" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_3 &#160;&#160;</text>
-</g>
-</g>
-</svg>

+ 123 - 0
test/semantics/original_semantics/parallel_Class1.svg

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="624pt" height="394pt"
+ viewBox="0.00 0.00 624.00 394.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 390)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-390 620,-390 620,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__parallel_1</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 596,-8 596,-8 602,-8 608,-14 608,-20 608,-20 608,-335 608,-335 608,-341 602,-347 596,-347 596,-347 20,-347 20,-347 14,-347 8,-341 8,-335 8,-335 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="281.996" y="-328.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel_1</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster__parallel_1_orthogonal_1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="316,-16 316,-309 600,-309 600,-16 316,-16"/>
+<text text-anchor="start" x="422.9852" y="-290.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_1</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster__parallel_1_orthogonal_2</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-309 308,-309 308,-16 24,-16"/>
+<text text-anchor="start" x="130.9852" y="-290.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_2</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-380.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_1 -->
+<!-- __initial&#45;&gt;_parallel_1 -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_parallel_1</title>
+<path fill="none" stroke="#000000" d="M16,-374.9533C16,-370.7779 16,-364.5043 16,-357.0332"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-356.9971 16,-346.9971 12.5001,-356.9972 19.5001,-356.9971"/>
+<text text-anchor="middle" x="17.3895" y="-358" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_1_orthogonal_1 -->
+<!-- _parallel_1_orthogonal_1_initial -->
+<g id="node4" class="node">
+<title>_parallel_1_orthogonal_1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="407" cy="-265.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_1_orthogonal_1_state_1 -->
+<g id="node5" class="node">
+<title>_parallel_1_orthogonal_1_state_1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="437.5,-178 376.5,-178 376.5,-142 437.5,-142 437.5,-178"/>
+<text text-anchor="start" x="387.8236" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M388.8333,-143C388.8333,-143 425.1667,-143 425.1667,-143 430.8333,-143 436.5,-148.6667 436.5,-154.3333 436.5,-154.3333 436.5,-165.6667 436.5,-165.6667 436.5,-171.3333 430.8333,-177 425.1667,-177 425.1667,-177 388.8333,-177 388.8333,-177 383.1667,-177 377.5,-171.3333 377.5,-165.6667 377.5,-165.6667 377.5,-154.3333 377.5,-154.3333 377.5,-148.6667 383.1667,-143 388.8333,-143"/>
+</g>
+<!-- _parallel_1_orthogonal_1_initial&#45;&gt;_parallel_1_orthogonal_1_state_1 -->
+<g id="edge2" class="edge">
+<title>_parallel_1_orthogonal_1_initial&#45;&gt;_parallel_1_orthogonal_1_state_1</title>
+<path fill="none" stroke="#000000" d="M407,-259.8288C407,-255.1736 407,-248.4097 407,-242.5 407,-242.5 407,-242.5 407,-195.5 407,-193.1079 407,-190.6252 407,-188.1342"/>
+<polygon fill="#000000" stroke="#000000" points="410.5001,-188.0597 407,-178.0598 403.5001,-188.0598 410.5001,-188.0597"/>
+<text text-anchor="middle" x="408.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_1_orthogonal_1_state_2 -->
+<g id="node6" class="node">
+<title>_parallel_1_orthogonal_1_state_2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="453.5,-60 392.5,-60 392.5,-24 453.5,-24 453.5,-60"/>
+<text text-anchor="start" x="403.8236" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M404.8333,-25C404.8333,-25 441.1667,-25 441.1667,-25 446.8333,-25 452.5,-30.6667 452.5,-36.3333 452.5,-36.3333 452.5,-47.6667 452.5,-47.6667 452.5,-53.3333 446.8333,-59 441.1667,-59 441.1667,-59 404.8333,-59 404.8333,-59 399.1667,-59 393.5,-53.3333 393.5,-47.6667 393.5,-47.6667 393.5,-36.3333 393.5,-36.3333 393.5,-30.6667 399.1667,-25 404.8333,-25"/>
+</g>
+<!-- _parallel_1_orthogonal_1_state_1&#45;&gt;_parallel_1_orthogonal_1_state_2 -->
+<g id="edge3" class="edge">
+<title>_parallel_1_orthogonal_1_state_1&#45;&gt;_parallel_1_orthogonal_1_state_2</title>
+<path fill="none" stroke="#000000" d="M376.5,-154.013C361.25,-149.059 346,-140.184 346,-124.5 346,-124.5 346,-124.5 346,-77.5 346,-68.4119 363.9135,-59.8319 382.46,-53.3842"/>
+<polygon fill="#000000" stroke="#000000" points="383.713,-56.6568 392.1248,-50.2154 381.5321,-50.0051 383.713,-56.6568"/>
+<text text-anchor="start" x="346" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_state_2 &#160;&#160;</text>
+</g>
+<!-- _parallel_1_orthogonal_1_state_2&#45;&gt;_parallel_1_orthogonal_1_state_1 -->
+<g id="edge4" class="edge">
+<title>_parallel_1_orthogonal_1_state_2&#45;&gt;_parallel_1_orthogonal_1_state_1</title>
+<path fill="none" stroke="#000000" d="M453.8167,-46.1492C471.8086,-50.5011 491,-59.3882 491,-77.5 491,-124.5 491,-124.5 491,-124.5 491,-134.8658 469.0225,-143.9154 447.5506,-150.2832"/>
+<polygon fill="#000000" stroke="#000000" points="446.4861,-146.9466 437.8015,-153.0153 448.375,-153.6869 446.4861,-146.9466"/>
+<text text-anchor="start" x="491" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_state_1 &#160;&#160;</text>
+</g>
+<!-- _parallel_1_orthogonal_2 -->
+<!-- _parallel_1_orthogonal_2_initial -->
+<g id="node8" class="node">
+<title>_parallel_1_orthogonal_2_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="115" cy="-265.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_1_orthogonal_2_state_3 -->
+<g id="node9" class="node">
+<title>_parallel_1_orthogonal_2_state_3</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="145.5,-178 84.5,-178 84.5,-142 145.5,-142 145.5,-178"/>
+<text text-anchor="start" x="95.8236" y="-156.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_3</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M96.8333,-143C96.8333,-143 133.1667,-143 133.1667,-143 138.8333,-143 144.5,-148.6667 144.5,-154.3333 144.5,-154.3333 144.5,-165.6667 144.5,-165.6667 144.5,-171.3333 138.8333,-177 133.1667,-177 133.1667,-177 96.8333,-177 96.8333,-177 91.1667,-177 85.5,-171.3333 85.5,-165.6667 85.5,-165.6667 85.5,-154.3333 85.5,-154.3333 85.5,-148.6667 91.1667,-143 96.8333,-143"/>
+</g>
+<!-- _parallel_1_orthogonal_2_initial&#45;&gt;_parallel_1_orthogonal_2_state_3 -->
+<g id="edge5" class="edge">
+<title>_parallel_1_orthogonal_2_initial&#45;&gt;_parallel_1_orthogonal_2_state_3</title>
+<path fill="none" stroke="#000000" d="M115,-259.8288C115,-255.1736 115,-248.4097 115,-242.5 115,-242.5 115,-242.5 115,-195.5 115,-193.1079 115,-190.6252 115,-188.1342"/>
+<polygon fill="#000000" stroke="#000000" points="118.5001,-188.0597 115,-178.0598 111.5001,-188.0598 118.5001,-188.0597"/>
+<text text-anchor="middle" x="116.3895" y="-216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_1_orthogonal_2_state_4 -->
+<g id="node10" class="node">
+<title>_parallel_1_orthogonal_2_state_4</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="161.5,-60 100.5,-60 100.5,-24 161.5,-24 161.5,-60"/>
+<text text-anchor="start" x="111.8236" y="-38.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_4</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M112.8333,-25C112.8333,-25 149.1667,-25 149.1667,-25 154.8333,-25 160.5,-30.6667 160.5,-36.3333 160.5,-36.3333 160.5,-47.6667 160.5,-47.6667 160.5,-53.3333 154.8333,-59 149.1667,-59 149.1667,-59 112.8333,-59 112.8333,-59 107.1667,-59 101.5,-53.3333 101.5,-47.6667 101.5,-47.6667 101.5,-36.3333 101.5,-36.3333 101.5,-30.6667 107.1667,-25 112.8333,-25"/>
+</g>
+<!-- _parallel_1_orthogonal_2_state_3&#45;&gt;_parallel_1_orthogonal_2_state_4 -->
+<g id="edge6" class="edge">
+<title>_parallel_1_orthogonal_2_state_3&#45;&gt;_parallel_1_orthogonal_2_state_4</title>
+<path fill="none" stroke="#000000" d="M84.5,-154.013C69.25,-149.059 54,-140.184 54,-124.5 54,-124.5 54,-124.5 54,-77.5 54,-68.4119 71.9135,-59.8319 90.46,-53.3842"/>
+<polygon fill="#000000" stroke="#000000" points="91.713,-56.6568 100.1248,-50.2154 89.5321,-50.0051 91.713,-56.6568"/>
+<text text-anchor="start" x="54" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_state_4 &#160;&#160;</text>
+</g>
+<!-- _parallel_1_orthogonal_2_state_4&#45;&gt;_parallel_1_orthogonal_2_state_3 -->
+<g id="edge7" class="edge">
+<title>_parallel_1_orthogonal_2_state_4&#45;&gt;_parallel_1_orthogonal_2_state_3</title>
+<path fill="none" stroke="#000000" d="M161.8167,-46.1492C179.8086,-50.5011 199,-59.3882 199,-77.5 199,-124.5 199,-124.5 199,-124.5 199,-134.8658 177.0225,-143.9154 155.5506,-150.2832"/>
+<polygon fill="#000000" stroke="#000000" points="154.4861,-146.9466 145.8015,-153.0153 156.375,-153.6869 154.4861,-146.9466"/>
+<text text-anchor="start" x="199" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_state_3 &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 0 - 196
test/semantics/original_semantics/parallel_history.svg

@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="552pt" height="1069pt"
- viewBox="0.00 0.00 552.00 1069.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1065)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1065 548,-1065 548,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_parallel</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 524,-8 524,-8 530,-8 536,-14 536,-20 536,-20 536,-1041 536,-1041 536,-1047 530,-1053 524,-1053 524,-1053 20,-1053 20,-1053 14,-1053 8,-1047 8,-1041 8,-1041 8,-20 8,-20 8,-14 14,-8 20,-8"/>
-<text text-anchor="start" x="252.6668" y="-1034.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel</text>
-</g>
-<g id="clust2" class="cluster">
-<title>cluster_orthogonal_1</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="280,-16 280,-750 528,-750 528,-16 280,-16"/>
-<text text-anchor="start" x="368.9852" y="-731.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_1</text>
-</g>
-<g id="clust3" class="cluster">
-<title>cluster_orthogonal_inner_1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M305,-24C305,-24 408,-24 408,-24 414,-24 420,-30 420,-36 420,-36 420,-582 420,-582 420,-588 414,-594 408,-594 408,-594 305,-594 305,-594 299,-594 293,-588 293,-582 293,-582 293,-36 293,-36 293,-30 299,-24 305,-24"/>
-<text text-anchor="start" x="305.3148" y="-575.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_1</text>
-</g>
-<g id="clust4" class="cluster">
-<title>cluster_orthogonal_2</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-186 24,-1015 272,-1015 272,-186 24,-186"/>
-<text text-anchor="start" x="112.9852" y="-996.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_2</text>
-</g>
-<g id="clust5" class="cluster">
-<title>cluster_orthogonal_inner_2</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M114,-194C114,-194 217,-194 217,-194 223,-194 229,-200 229,-206 229,-206 229,-847 229,-847 229,-853 223,-859 217,-859 217,-859 114,-859 114,-859 108,-859 102,-853 102,-847 102,-847 102,-206 102,-206 102,-200 108,-194 114,-194"/>
-<text text-anchor="start" x="114.3148" y="-840.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_2</text>
-</g>
-<!-- parallel -->
-<!-- orthogonal_1 -->
-<!-- initial_400 -->
-<g id="node3" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="492" cy="-694" rx="5.5" ry="5.5"/>
-</g>
-<!-- orthogonal_inner_1 -->
-<!-- initial_400&#45;&gt;orthogonal_inner_1 -->
-<g id="edge2" class="edge">
-<title>initial_400&#45;&gt;orthogonal_inner_1</title>
-<path fill="none" stroke="#000000" d="M495.9063,-689.81C502.9375,-682.087 517,-665.7366 517,-658.5 517,-658.5 517,-658.5 517,-611.5 517,-565.5019 448.5349,-545.8647 422.1752,-540.0088"/>
-<polygon fill="#000000" stroke="#000000" points="430.5492,-539.9959 420,-539.0122 427.6333,-546.3597 430.5492,-539.9959"/>
-<text text-anchor="middle" x="518.3895" y="-632" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- outer_1 -->
-<g id="node4" class="node">
-<title>outer_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="399,-712 337,-712 337,-676 399,-676 399,-712"/>
-<text text-anchor="start" x="347.6582" y="-690.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M349.3333,-677C349.3333,-677 386.6667,-677 386.6667,-677 392.3333,-677 398,-682.6667 398,-688.3333 398,-688.3333 398,-699.6667 398,-699.6667 398,-705.3333 392.3333,-711 386.6667,-711 386.6667,-711 349.3333,-711 349.3333,-711 343.6667,-711 338,-705.3333 338,-699.6667 338,-699.6667 338,-688.3333 338,-688.3333 338,-682.6667 343.6667,-677 349.3333,-677"/>
-</g>
-<!-- history_1 -->
-<g id="node9" class="node">
-<title>history_1</title>
-<ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="366" cy="-538" rx="18" ry="18"/>
-<text text-anchor="middle" x="366" y="-534.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
-</g>
-<!-- outer_1&#45;&gt;history_1 -->
-<g id="edge3" class="edge">
-<title>outer_1&#45;&gt;history_1</title>
-<path fill="none" stroke="#000000" d="M336.9624,-686.8417C323.1725,-681.6408 310,-672.9032 310,-658.5 310,-658.5 310,-658.5 310,-611.5 310,-599.0061 323.7406,-603.3745 332,-594 340.1745,-584.7219 347.5379,-573.2244 353.3049,-563.0659"/>
-<polygon fill="#000000" stroke="#000000" points="356.4163,-564.6706 358.1297,-554.2152 350.2702,-561.3201 356.4163,-564.6706"/>
-<text text-anchor="start" x="310" y="-632" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_history_1 &#160;&#160;</text>
-</g>
-<!-- orthogonal_inner_1&#45;&gt;outer_1 -->
-<g id="edge5" class="edge">
-<title>orthogonal_inner_1&#45;&gt;outer_1</title>
-<path fill="none" stroke="#000000" d="M416.601,-593.9965C416.8496,-599.9025 417,-605.8218 417,-611.5 417,-658.5 417,-658.5 417,-658.5 417,-666.0832 413.1038,-672.2125 407.5087,-677.1049"/>
-<polygon fill="#000000" stroke="#000000" points="405.2233,-674.4321 399.0324,-683.03 409.2338,-680.1694 405.2233,-674.4321"/>
-<text text-anchor="start" x="417" y="-632" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_outer_1 &#160;&#160;</text>
-</g>
-<!-- initial_500 -->
-<g id="node6" class="node">
-<title>initial_500</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="315" cy="-538" rx="5.5" ry="5.5"/>
-</g>
-<!-- state_1 -->
-<g id="node7" class="node">
-<title>state_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="374.5,-309 313.5,-309 313.5,-273 374.5,-273 374.5,-309"/>
-<text text-anchor="start" x="324.8236" y="-287.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M325.8333,-274C325.8333,-274 362.1667,-274 362.1667,-274 367.8333,-274 373.5,-279.6667 373.5,-285.3333 373.5,-285.3333 373.5,-296.6667 373.5,-296.6667 373.5,-302.3333 367.8333,-308 362.1667,-308 362.1667,-308 325.8333,-308 325.8333,-308 320.1667,-308 314.5,-302.3333 314.5,-296.6667 314.5,-296.6667 314.5,-285.3333 314.5,-285.3333 314.5,-279.6667 320.1667,-274 325.8333,-274"/>
-</g>
-<!-- initial_500&#45;&gt;state_1 -->
-<g id="edge4" class="edge">
-<title>initial_500&#45;&gt;state_1</title>
-<path fill="none" stroke="#000000" d="M316.6966,-532.7565C319.0449,-525.0207 323,-510.0541 323,-497 323,-497 323,-497 323,-326.5 323,-323.7095 323.4866,-320.946 324.3117,-318.2659"/>
-<polygon fill="#000000" stroke="#000000" points="327.5602,-319.5773 328.5175,-309.0258 321.1892,-316.6773 327.5602,-319.5773"/>
-<text text-anchor="middle" x="324.3895" y="-394" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_3 -->
-<g id="node14" class="node">
-<title>state_3</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="183.5,-474 122.5,-474 122.5,-438 183.5,-438 183.5,-474"/>
-<text text-anchor="start" x="133.8236" y="-452.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_3</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M134.8333,-439C134.8333,-439 171.1667,-439 171.1667,-439 176.8333,-439 182.5,-444.6667 182.5,-450.3333 182.5,-450.3333 182.5,-461.6667 182.5,-461.6667 182.5,-467.3333 176.8333,-473 171.1667,-473 171.1667,-473 134.8333,-473 134.8333,-473 129.1667,-473 123.5,-467.3333 123.5,-461.6667 123.5,-461.6667 123.5,-450.3333 123.5,-450.3333 123.5,-444.6667 129.1667,-439 134.8333,-439"/>
-</g>
-<!-- initial_500&#45;&gt;state_3 -->
-<g id="edge9" class="edge">
-<title>initial_500&#45;&gt;state_3</title>
-<path fill="none" stroke="#000000" d="M309.974,-535.456C292.4841,-526.6031 233.1462,-496.5678 192.6503,-476.0699"/>
-<polygon fill="#000000" stroke="#000000" points="194.0615,-472.8614 183.5587,-471.468 190.9002,-479.1069 194.0615,-472.8614"/>
-<text text-anchor="middle" x="245.3895" y="-494" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_2 -->
-<g id="node8" class="node">
-<title>state_2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="374.5,-68 313.5,-68 313.5,-32 374.5,-32 374.5,-68"/>
-<text text-anchor="start" x="324.8236" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M325.8333,-33C325.8333,-33 362.1667,-33 362.1667,-33 367.8333,-33 373.5,-38.6667 373.5,-44.3333 373.5,-44.3333 373.5,-55.6667 373.5,-55.6667 373.5,-61.3333 367.8333,-67 362.1667,-67 362.1667,-67 325.8333,-67 325.8333,-67 320.1667,-67 314.5,-61.3333 314.5,-55.6667 314.5,-55.6667 314.5,-44.3333 314.5,-44.3333 314.5,-38.6667 320.1667,-33 325.8333,-33"/>
-</g>
-<!-- state_1&#45;&gt;state_2 -->
-<g id="edge7" class="edge">
-<title>state_1&#45;&gt;state_2</title>
-<path fill="none" stroke="#000000" d="M344,-272.9402C344,-267.3497 344,-261.1701 344,-255.5 344,-255.5 344,-255.5 344,-85.5 344,-83.1079 344,-80.6252 344,-78.1342"/>
-<polygon fill="#000000" stroke="#000000" points="347.5001,-78.0597 344,-68.0598 340.5001,-78.0598 347.5001,-78.0597"/>
-<text text-anchor="start" x="344" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_2 &#160;&#160;</text>
-</g>
-<!-- history_1&#45;&gt;state_1 -->
-<g id="edge6" class="edge">
-<title>history_1&#45;&gt;state_1</title>
-<path fill="none" stroke="#000000" d="M368.5105,-520.075C369.3142,-512.9133 370,-504.581 370,-497 370,-497 370,-497 370,-326.5 370,-323.6615 369.4523,-320.8991 368.5158,-318.2506"/>
-<polygon fill="#000000" stroke="#000000" points="371.4977,-316.4038 363.7061,-309.2246 365.3201,-319.6958 371.4977,-316.4038"/>
-<text text-anchor="middle" x="371.3895" y="-394" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- orthogonal_2 -->
-<!-- initial_401 -->
-<g id="node11" class="node">
-<title>initial_401</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="236" cy="-959" rx="5.5" ry="5.5"/>
-</g>
-<!-- orthogonal_inner_2 -->
-<!-- initial_401&#45;&gt;orthogonal_inner_2 -->
-<g id="edge1" class="edge">
-<title>initial_401&#45;&gt;orthogonal_inner_2</title>
-<path fill="none" stroke="#000000" d="M239.9063,-954.81C246.9375,-947.087 261,-930.7366 261,-923.5 261,-923.5 261,-923.5 261,-876.5 261,-858.4599 249.8762,-842.7672 236.8321,-830.5671"/>
-<polygon fill="#000000" stroke="#000000" points="238.8537,-827.6881 228.9996,-823.796 234.2758,-832.9837 238.8537,-827.6881"/>
-<text text-anchor="middle" x="262.3895" y="-897" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- outer_2 -->
-<g id="node12" class="node">
-<title>outer_2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="146,-977 84,-977 84,-941 146,-941 146,-977"/>
-<text text-anchor="start" x="94.6582" y="-955.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M96.3333,-942C96.3333,-942 133.6667,-942 133.6667,-942 139.3333,-942 145,-947.6667 145,-953.3333 145,-953.3333 145,-964.6667 145,-964.6667 145,-970.3333 139.3333,-976 133.6667,-976 133.6667,-976 96.3333,-976 96.3333,-976 90.6667,-976 85,-970.3333 85,-964.6667 85,-964.6667 85,-953.3333 85,-953.3333 85,-947.6667 90.6667,-942 96.3333,-942"/>
-</g>
-<!-- history_2 -->
-<g id="node16" class="node">
-<title>history_2</title>
-<ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="130" cy="-803" rx="18" ry="18"/>
-<text text-anchor="middle" x="130" y="-799.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
-</g>
-<!-- outer_2&#45;&gt;history_2 -->
-<g id="edge8" class="edge">
-<title>outer_2&#45;&gt;history_2</title>
-<path fill="none" stroke="#000000" d="M83.7852,-942.327C68.7772,-934.0598 54,-925.4299 54,-923.5 54,-923.5 54,-923.5 54,-876.5 54,-847.9114 82.1313,-826.9034 104.1638,-814.834"/>
-<polygon fill="#000000" stroke="#000000" points="105.8468,-817.9042 113.1331,-810.2126 102.6406,-811.6816 105.8468,-817.9042"/>
-<text text-anchor="start" x="54" y="-897" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_history_2 &#160;&#160;</text>
-</g>
-<!-- orthogonal_inner_2&#45;&gt;outer_2 -->
-<g id="edge10" class="edge">
-<title>orthogonal_inner_2&#45;&gt;outer_2</title>
-<path fill="none" stroke="#000000" d="M163.4566,-858.9951C161.918,-864.751 161,-870.6404 161,-876.5 161,-923.5 161,-923.5 161,-923.5 161,-929.7686 158.2896,-935.0857 154.1847,-939.5438"/>
-<polygon fill="#000000" stroke="#000000" points="151.6018,-937.1422 146.1921,-946.2519 156.1019,-942.504 151.6018,-937.1422"/>
-<text text-anchor="start" x="161" y="-897" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_outer_2 &#160;&#160;</text>
-</g>
-<!-- state_4 -->
-<g id="node15" class="node">
-<title>state_4</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="183.5,-238 122.5,-238 122.5,-202 183.5,-202 183.5,-238"/>
-<text text-anchor="start" x="133.8236" y="-216.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_4</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M134.8333,-203C134.8333,-203 171.1667,-203 171.1667,-203 176.8333,-203 182.5,-208.6667 182.5,-214.3333 182.5,-214.3333 182.5,-225.6667 182.5,-225.6667 182.5,-231.3333 176.8333,-237 171.1667,-237 171.1667,-237 134.8333,-237 134.8333,-237 129.1667,-237 123.5,-231.3333 123.5,-225.6667 123.5,-225.6667 123.5,-214.3333 123.5,-214.3333 123.5,-208.6667 129.1667,-203 134.8333,-203"/>
-</g>
-<!-- state_3&#45;&gt;state_4 -->
-<g id="edge12" class="edge">
-<title>state_3&#45;&gt;state_4</title>
-<path fill="none" stroke="#000000" d="M153,-437.9402C153,-432.3497 153,-426.1701 153,-420.5 153,-420.5 153,-420.5 153,-255.5 153,-253.1079 153,-250.6252 153,-248.1342"/>
-<polygon fill="#000000" stroke="#000000" points="156.5001,-248.0597 153,-238.0598 149.5001,-248.0598 156.5001,-248.0597"/>
-<text text-anchor="start" x="153" y="-347" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_4 &#160;&#160;</text>
-</g>
-<!-- history_2&#45;&gt;state_3 -->
-<g id="edge11" class="edge">
-<title>history_2&#45;&gt;state_3</title>
-<path fill="none" stroke="#000000" d="M134.1672,-785.4027C135.191,-779.7226 136,-773.3756 136,-767.5 136,-767.5 136,-767.5 136,-497 136,-492.5789 136.8539,-488.08 138.179,-483.7604"/>
-<polygon fill="#000000" stroke="#000000" points="141.5636,-484.7153 141.9458,-474.1274 135.0443,-482.166 141.5636,-484.7153"/>
-<text text-anchor="middle" x="137.3895" y="-632" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-</g>
-</svg>

+ 0 - 194
test/semantics/original_semantics/parallel_history_2.svg

@@ -1,194 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="595pt" height="978pt"
- viewBox="0.00 0.00 594.80 978.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 974)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-974 590.797,-974 590.797,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_parallel</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 454,-8 454,-8 460,-8 466,-14 466,-20 466,-20 466,-919 466,-919 466,-925 460,-931 454,-931 454,-931 20,-931 20,-931 14,-931 8,-925 8,-919 8,-919 8,-20 8,-20 8,-14 14,-8 20,-8"/>
-<text text-anchor="start" x="217.6668" y="-912.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel</text>
-</g>
-<g id="clust2" class="cluster">
-<title>cluster_orthogonal_1</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="237,-16 237,-893 450,-893 450,-16 237,-16"/>
-<text text-anchor="start" x="308.4852" y="-874.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_1</text>
-</g>
-<g id="clust3" class="cluster">
-<title>cluster_orthogonal_inner_1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M257,-24C257,-24 360,-24 360,-24 366,-24 372,-30 372,-36 372,-36 372,-643.5 372,-643.5 372,-649.5 366,-655.5 360,-655.5 360,-655.5 257,-655.5 257,-655.5 251,-655.5 245,-649.5 245,-643.5 245,-643.5 245,-36 245,-36 245,-30 251,-24 257,-24"/>
-<text text-anchor="start" x="257.3148" y="-636.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_1</text>
-</g>
-<g id="clust4" class="cluster">
-<title>cluster_orthogonal_2</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="16,-186 16,-752 229,-752 229,-186 16,-186"/>
-<text text-anchor="start" x="87.4852" y="-733.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_2</text>
-</g>
-<g id="clust5" class="cluster">
-<title>cluster_orthogonal_inner_2</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36,-194C36,-194 139,-194 139,-194 145,-194 151,-200 151,-206 151,-206 151,-548 151,-548 151,-554 145,-560 139,-560 139,-560 36,-560 36,-560 30,-560 24,-554 24,-548 24,-548 24,-206 24,-206 24,-200 30,-194 36,-194"/>
-<text text-anchor="start" x="36.3148" y="-541.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_2</text>
-</g>
-<!-- initial_200 -->
-<g id="node1" class="node">
-<title>initial_200</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="458" cy="-964.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- parallel -->
-<!-- initial_200&#45;&gt;parallel -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;parallel</title>
-<path fill="none" stroke="#000000" d="M458,-958.9533C458,-954.7779 458,-948.5043 458,-941.0332"/>
-<polygon fill="#000000" stroke="#000000" points="461.5001,-940.9971 458,-930.9971 454.5001,-940.9972 461.5001,-940.9971"/>
-<text text-anchor="middle" x="459.3895" y="-942" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- next_to_parallel -->
-<g id="node16" class="node">
-<title>next_to_parallel</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="574.1905,-816 473.8095,-816 473.8095,-780 574.1905,-780 574.1905,-816"/>
-<text text-anchor="middle" x="524" y="-794.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">next_to_parallel</text>
-</g>
-<!-- parallel&#45;&gt;next_to_parallel -->
-<g id="edge2" class="edge">
-<title>parallel&#45;&gt;next_to_parallel</title>
-<path fill="none" stroke="#000000" d="M465.9982,-843.259C472.747,-837.9929 482.8662,-830.0968 492.772,-822.3673"/>
-<polygon fill="#000000" stroke="#000000" points="495.0465,-825.032 500.7773,-816.1208 490.7403,-819.5132 495.0465,-825.032"/>
-<text text-anchor="start" x="490" y="-827" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">exit &#160;&#160;</text>
-</g>
-<!-- orthogonal_1 -->
-<!-- initial_400 -->
-<g id="node4" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="364" cy="-849.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- orthogonal_inner_1 -->
-<!-- initial_400&#45;&gt;orthogonal_inner_1 -->
-<g id="edge5" class="edge">
-<title>initial_400&#45;&gt;orthogonal_inner_1</title>
-<path fill="none" stroke="#000000" d="M364,-843.7843C364,-834.2811 364,-814.6302 364,-798 364,-798 364,-798 364,-673 364,-670.6116 364,-668.1707 364,-665.7049"/>
-<polygon fill="#000000" stroke="#000000" points="367.5001,-665.4997 364,-655.4997 360.5001,-665.4997 367.5001,-665.4997"/>
-<text text-anchor="middle" x="365.3895" y="-705.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- outer_1 -->
-<g id="node5" class="node">
-<title>outer_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="442,-451 380,-451 380,-415 442,-415 442,-451"/>
-<text text-anchor="start" x="390.6582" y="-429.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M392.3333,-416C392.3333,-416 429.6667,-416 429.6667,-416 435.3333,-416 441,-421.6667 441,-427.3333 441,-427.3333 441,-438.6667 441,-438.6667 441,-444.3333 435.3333,-450 429.6667,-450 429.6667,-450 392.3333,-450 392.3333,-450 386.6667,-450 381,-444.3333 381,-438.6667 381,-438.6667 381,-427.3333 381,-427.3333 381,-421.6667 386.6667,-416 392.3333,-416"/>
-</g>
-<!-- orthogonal_inner_1&#45;&gt;outer_1 -->
-<g id="edge7" class="edge">
-<title>orthogonal_inner_1&#45;&gt;outer_1</title>
-<path fill="none" stroke="#000000" d="M371.9992,-597.0337C373.7027,-592.6366 375,-587.7339 375,-583 375,-583 375,-583 375,-468.5 375,-465.2687 375.7444,-462.2327 377.0191,-459.4025"/>
-<polygon fill="#000000" stroke="#000000" points="379.9443,-461.3248 382.6347,-451.0772 374.1411,-457.4104 379.9443,-461.3248"/>
-<text text-anchor="start" x="375" y="-501" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_outer_1 &#160;&#160;</text>
-</g>
-<!-- initial_500 -->
-<g id="node7" class="node">
-<title>initial_500</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="271" cy="-612" rx="5.5" ry="5.5"/>
-</g>
-<!-- state_1 -->
-<g id="node8" class="node">
-<title>state_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="314.5,-309 253.5,-309 253.5,-273 314.5,-273 314.5,-309"/>
-<text text-anchor="start" x="264.8236" y="-287.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M265.8333,-274C265.8333,-274 302.1667,-274 302.1667,-274 307.8333,-274 313.5,-279.6667 313.5,-285.3333 313.5,-285.3333 313.5,-296.6667 313.5,-296.6667 313.5,-302.3333 307.8333,-308 302.1667,-308 302.1667,-308 265.8333,-308 265.8333,-308 260.1667,-308 254.5,-302.3333 254.5,-296.6667 254.5,-296.6667 254.5,-285.3333 254.5,-285.3333 254.5,-279.6667 260.1667,-274 265.8333,-274"/>
-</g>
-<!-- initial_500&#45;&gt;state_1 -->
-<g id="edge6" class="edge">
-<title>initial_500&#45;&gt;state_1</title>
-<path fill="none" stroke="#000000" d="M273.357,-606.7746C275.7168,-601.058 279,-591.5654 279,-583 279,-583 279,-583 279,-326.5 279,-324.2243 279.102,-321.8746 279.2768,-319.5183"/>
-<polygon fill="#000000" stroke="#000000" points="282.7801,-319.6846 280.4194,-309.3561 275.8239,-318.9024 282.7801,-319.6846"/>
-<text text-anchor="middle" x="280.3895" y="-430" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_3 -->
-<g id="node14" class="node">
-<title>state_3</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="142.5,-522 81.5,-522 81.5,-486 142.5,-486 142.5,-522"/>
-<text text-anchor="start" x="92.8236" y="-500.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_3</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M93.8333,-487C93.8333,-487 130.1667,-487 130.1667,-487 135.8333,-487 141.5,-492.6667 141.5,-498.3333 141.5,-498.3333 141.5,-509.6667 141.5,-509.6667 141.5,-515.3333 135.8333,-521 130.1667,-521 130.1667,-521 93.8333,-521 93.8333,-521 88.1667,-521 82.5,-515.3333 82.5,-509.6667 82.5,-509.6667 82.5,-498.3333 82.5,-498.3333 82.5,-492.6667 88.1667,-487 93.8333,-487"/>
-</g>
-<!-- initial_500&#45;&gt;state_3 -->
-<g id="edge9" class="edge">
-<title>initial_500&#45;&gt;state_3</title>
-<path fill="none" stroke="#000000" d="M266.4129,-608.8842C249.1459,-597.1557 187.0124,-554.9518 147.0209,-527.7878"/>
-<polygon fill="#000000" stroke="#000000" points="148.8406,-524.7928 138.6018,-522.0692 144.9074,-530.5833 148.8406,-524.7928"/>
-<text text-anchor="middle" x="238.3895" y="-580" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_2 -->
-<g id="node9" class="node">
-<title>state_2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="314.5,-68 253.5,-68 253.5,-32 314.5,-32 314.5,-68"/>
-<text text-anchor="start" x="264.8236" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M265.8333,-33C265.8333,-33 302.1667,-33 302.1667,-33 307.8333,-33 313.5,-38.6667 313.5,-44.3333 313.5,-44.3333 313.5,-55.6667 313.5,-55.6667 313.5,-61.3333 307.8333,-67 302.1667,-67 302.1667,-67 265.8333,-67 265.8333,-67 260.1667,-67 254.5,-61.3333 254.5,-55.6667 254.5,-55.6667 254.5,-44.3333 254.5,-44.3333 254.5,-38.6667 260.1667,-33 265.8333,-33"/>
-</g>
-<!-- state_1&#45;&gt;state_2 -->
-<g id="edge8" class="edge">
-<title>state_1&#45;&gt;state_2</title>
-<path fill="none" stroke="#000000" d="M284,-272.9402C284,-267.3497 284,-261.1701 284,-255.5 284,-255.5 284,-255.5 284,-85.5 284,-83.1079 284,-80.6252 284,-78.1342"/>
-<polygon fill="#000000" stroke="#000000" points="287.5001,-78.0597 284,-68.0598 280.5001,-78.0598 287.5001,-78.0597"/>
-<text text-anchor="start" x="284" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_2 &#160;&#160;</text>
-</g>
-<!-- orthogonal_2 -->
-<!-- initial_401 -->
-<g id="node11" class="node">
-<title>initial_401</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="59" cy="-708.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- orthogonal_inner_2 -->
-<!-- initial_401&#45;&gt;orthogonal_inner_2 -->
-<g id="edge4" class="edge">
-<title>initial_401&#45;&gt;orthogonal_inner_2</title>
-<path fill="none" stroke="#000000" d="M59,-702.9659C59,-695.982 59,-683.6007 59,-673 59,-673 59,-673 59,-583 59,-578.8145 59,-574.5044 59,-570.1586"/>
-<polygon fill="#000000" stroke="#000000" points="62.5001,-569.9961 59,-559.9962 55.5001,-569.9962 62.5001,-569.9961"/>
-<text text-anchor="middle" x="60.3895" y="-609" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- outer_2 -->
-<g id="node12" class="node">
-<title>outer_2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="221,-380 159,-380 159,-344 221,-344 221,-380"/>
-<text text-anchor="start" x="169.6582" y="-358.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M171.3333,-345C171.3333,-345 208.6667,-345 208.6667,-345 214.3333,-345 220,-350.6667 220,-356.3333 220,-356.3333 220,-367.6667 220,-367.6667 220,-373.3333 214.3333,-379 208.6667,-379 208.6667,-379 171.3333,-379 171.3333,-379 165.6667,-379 160,-373.3333 160,-367.6667 160,-367.6667 160,-356.3333 160,-356.3333 160,-350.6667 165.6667,-345 171.3333,-345"/>
-</g>
-<!-- orthogonal_inner_2&#45;&gt;outer_2 -->
-<g id="edge10" class="edge">
-<title>orthogonal_inner_2&#45;&gt;outer_2</title>
-<path fill="none" stroke="#000000" d="M150.9974,-388.5305C151.5875,-387.9056 152.2193,-387.2752 152.8871,-386.6415"/>
-<polygon fill="#000000" stroke="#000000" points="155.4232,-389.0858 160.8964,-380.0142 150.9606,-383.6927 155.4232,-389.0858"/>
-<text text-anchor="start" x="146" y="-430" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_outer_2 &#160;&#160;</text>
-</g>
-<!-- state_4 -->
-<g id="node15" class="node">
-<title>state_4</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="112.5,-238 51.5,-238 51.5,-202 112.5,-202 112.5,-238"/>
-<text text-anchor="start" x="62.8236" y="-216.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_4</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M63.8333,-203C63.8333,-203 100.1667,-203 100.1667,-203 105.8333,-203 111.5,-208.6667 111.5,-214.3333 111.5,-214.3333 111.5,-225.6667 111.5,-225.6667 111.5,-231.3333 105.8333,-237 100.1667,-237 100.1667,-237 63.8333,-237 63.8333,-237 58.1667,-237 52.5,-231.3333 52.5,-225.6667 52.5,-225.6667 52.5,-214.3333 52.5,-214.3333 52.5,-208.6667 58.1667,-203 63.8333,-203"/>
-</g>
-<!-- state_3&#45;&gt;state_4 -->
-<g id="edge11" class="edge">
-<title>state_3&#45;&gt;state_4</title>
-<path fill="none" stroke="#000000" d="M88.958,-485.8871C84.9297,-480.8429 82,-474.9553 82,-468.5 82,-468.5 82,-468.5 82,-255.5 82,-253.1079 82,-250.6252 82,-248.1342"/>
-<polygon fill="#000000" stroke="#000000" points="85.5001,-248.0597 82,-238.0598 78.5001,-248.0598 85.5001,-248.0597"/>
-<text text-anchor="start" x="82" y="-359" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_4 &#160;&#160;</text>
-</g>
-<!-- history_1 -->
-<g id="node17" class="node">
-<title>history_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="556.1764,-726.5 491.8236,-726.5 491.8236,-690.5 556.1764,-690.5 556.1764,-726.5"/>
-<text text-anchor="middle" x="524" y="-704.9" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">history_1</text>
-</g>
-<!-- next_to_parallel&#45;&gt;history_1 -->
-<g id="edge1" class="edge">
-<title>next_to_parallel&#45;&gt;history_1</title>
-<path fill="none" stroke="#000000" d="M524,-779.8883C524,-767.5146 524,-750.8686 524,-736.7632"/>
-<polygon fill="#000000" stroke="#000000" points="527.5001,-736.5847 524,-726.5847 520.5001,-736.5848 527.5001,-736.5847"/>
-<text text-anchor="start" x="524" y="-763" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_history_1 &#160;&#160;</text>
-</g>
-</g>
-</svg>

+ 200 - 0
test/semantics/original_semantics/parallel_history_2_TestClass.svg

@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="672pt" height="793pt"
+ viewBox="0.00 0.00 671.93 793.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 789)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-789 667.927,-789 667.927,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__parallel</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 478,-8 478,-8 484,-8 490,-14 490,-20 490,-20 490,-734 490,-734 490,-740 484,-746 478,-746 478,-746 20,-746 20,-746 14,-746 8,-740 8,-734 8,-734 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="229.6668" y="-727.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster__parallel_orthogonal_1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="249,-16 249,-708 474,-708 474,-16 249,-16"/>
+<text text-anchor="start" x="326.4852" y="-689.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_1</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster__parallel_orthogonal_1_orthogonal_inner_1</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M269,-24C269,-24 384,-24 384,-24 390,-24 396,-30 396,-36 396,-36 396,-484 396,-484 396,-490 390,-496 384,-496 384,-496 269,-496 269,-496 263,-496 257,-490 257,-484 257,-484 257,-36 257,-36 257,-30 263,-24 269,-24"/>
+<text text-anchor="start" x="275.3148" y="-477.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_1</text>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster__parallel_orthogonal_2</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="16,-16 16,-708 241,-708 241,-16 16,-16"/>
+<text text-anchor="start" x="93.4852" y="-689.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_2</text>
+</g>
+<g id="clust5" class="cluster">
+<title>cluster__parallel_orthogonal_2_orthogonal_inner_2</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M36,-24C36,-24 151,-24 151,-24 157,-24 163,-30 163,-36 163,-36 163,-484 163,-484 163,-490 157,-496 151,-496 151,-496 36,-496 36,-496 30,-496 24,-490 24,-484 24,-484 24,-36 24,-36 24,-30 30,-24 36,-24"/>
+<text text-anchor="start" x="42.3148" y="-477.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_2</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="482" cy="-779.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel -->
+<!-- __initial&#45;&gt;_parallel -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_parallel</title>
+<path fill="none" stroke="#000000" d="M482,-773.9533C482,-769.7779 482,-763.5043 482,-756.0332"/>
+<polygon fill="#000000" stroke="#000000" points="485.5001,-755.9971 482,-745.9971 478.5001,-755.9972 485.5001,-755.9971"/>
+<text text-anchor="middle" x="483.3895" y="-757" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _next_to_parallel -->
+<g id="node2" class="node">
+<title>_next_to_parallel</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="607,-631 501,-631 501,-595 607,-595 607,-631"/>
+<text text-anchor="start" x="511.655" y="-609.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">next_to_parallel</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M513.3333,-596C513.3333,-596 594.6667,-596 594.6667,-596 600.3333,-596 606,-601.6667 606,-607.3333 606,-607.3333 606,-618.6667 606,-618.6667 606,-624.3333 600.3333,-630 594.6667,-630 594.6667,-630 513.3333,-630 513.3333,-630 507.6667,-630 502,-624.3333 502,-618.6667 502,-618.6667 502,-607.3333 502,-607.3333 502,-601.6667 507.6667,-596 513.3333,-596"/>
+</g>
+<!-- _parallel_history_1 -->
+<g id="node18" class="node">
+<title>_parallel_history_1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="614.184,-567 497.816,-567 497.816,-531 614.184,-531 614.184,-567"/>
+<text text-anchor="middle" x="556" y="-545.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">_parallel_history_1</text>
+</g>
+<!-- _next_to_parallel&#45;&gt;_parallel_history_1 -->
+<g id="edge11" class="edge">
+<title>_next_to_parallel&#45;&gt;_parallel_history_1</title>
+<path fill="none" stroke="#000000" d="M554.5678,-594.8314C554.7352,-589.4728 554.9227,-583.4735 555.1054,-577.6262"/>
+<polygon fill="#000000" stroke="#000000" points="558.6097,-577.5408 555.4239,-567.4363 551.6131,-577.3221 558.6097,-577.5408"/>
+<text text-anchor="start" x="555" y="-578" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_history_1 &#160;&#160;</text>
+</g>
+<!-- _parallel&#45;&gt;_next_to_parallel -->
+<g id="edge10" class="edge">
+<title>_parallel&#45;&gt;_next_to_parallel</title>
+<path fill="none" stroke="#000000" d="M489.9995,-658.7781C497.4575,-653.4436 509.1021,-645.1144 520.4254,-637.0152"/>
+<polygon fill="#000000" stroke="#000000" points="522.5688,-639.7853 528.6661,-631.1208 518.4964,-634.0918 522.5688,-639.7853"/>
+<text text-anchor="start" x="516" y="-642" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.exit &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_1 -->
+<!-- _parallel_orthogonal_1_initial -->
+<g id="node5" class="node">
+<title>_parallel_orthogonal_1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="364" cy="-664.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1 -->
+<!-- _parallel_orthogonal_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1 -->
+<g id="edge2" class="edge">
+<title>_parallel_orthogonal_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1</title>
+<path fill="none" stroke="#000000" d="M364,-658.7843C364,-649.2811 364,-629.6302 364,-613 364,-613 364,-613 364,-513.5 364,-511.1116 364,-508.6707 364,-506.2049"/>
+<polygon fill="#000000" stroke="#000000" points="367.5001,-505.9997 364,-495.9997 360.5001,-505.9997 367.5001,-505.9997"/>
+<text text-anchor="middle" x="365.3895" y="-546" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_1_outer_1 -->
+<g id="node6" class="node">
+<title>_parallel_orthogonal_1_outer_1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="466,-365 404,-365 404,-329 466,-329 466,-365"/>
+<text text-anchor="start" x="414.6582" y="-343.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M416.3333,-330C416.3333,-330 453.6667,-330 453.6667,-330 459.3333,-330 465,-335.6667 465,-341.3333 465,-341.3333 465,-352.6667 465,-352.6667 465,-358.3333 459.3333,-364 453.6667,-364 453.6667,-364 416.3333,-364 416.3333,-364 410.6667,-364 405,-358.3333 405,-352.6667 405,-352.6667 405,-341.3333 405,-341.3333 405,-335.6667 410.6667,-330 416.3333,-330"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1&#45;&gt;_parallel_orthogonal_1_outer_1 -->
+<g id="edge5" class="edge">
+<title>_parallel_orthogonal_1_orthogonal_inner_1&#45;&gt;_parallel_orthogonal_1_outer_1</title>
+<path fill="none" stroke="#000000" d="M396,-366.7017C397.9309,-365.8086 399.8618,-364.9154 401.7928,-364.0223"/>
+<polygon fill="#000000" stroke="#000000" points="396.117,-370.5042 403.7237,-363.1291 393.1781,-364.1509 396.117,-370.5042"/>
+<text text-anchor="start" x="364" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_outer_1 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_initial -->
+<g id="node8" class="node">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="296" cy="-452.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_state_1 -->
+<g id="node9" class="node">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_state_1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="326.5,-258 265.5,-258 265.5,-222 326.5,-222 326.5,-258"/>
+<text text-anchor="start" x="276.8236" y="-236.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M277.8333,-223C277.8333,-223 314.1667,-223 314.1667,-223 319.8333,-223 325.5,-228.6667 325.5,-234.3333 325.5,-234.3333 325.5,-245.6667 325.5,-245.6667 325.5,-251.3333 319.8333,-257 314.1667,-257 314.1667,-257 277.8333,-257 277.8333,-257 272.1667,-257 266.5,-251.3333 266.5,-245.6667 266.5,-245.6667 266.5,-234.3333 266.5,-234.3333 266.5,-228.6667 272.1667,-223 277.8333,-223"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_1 -->
+<g id="edge3" class="edge">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_1</title>
+<path fill="none" stroke="#000000" d="M296,-446.8288C296,-442.1736 296,-435.4097 296,-429.5 296,-429.5 296,-429.5 296,-275.5 296,-273.1079 296,-270.6252 296,-268.1342"/>
+<polygon fill="#000000" stroke="#000000" points="299.5001,-268.0597 296,-258.0598 292.5001,-268.0598 299.5001,-268.0597"/>
+<text text-anchor="middle" x="297.3895" y="-344" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_state_2 -->
+<g id="node10" class="node">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_state_2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="326.5,-68 265.5,-68 265.5,-32 326.5,-32 326.5,-68"/>
+<text text-anchor="start" x="276.8236" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M277.8333,-33C277.8333,-33 314.1667,-33 314.1667,-33 319.8333,-33 325.5,-38.6667 325.5,-44.3333 325.5,-44.3333 325.5,-55.6667 325.5,-55.6667 325.5,-61.3333 319.8333,-67 314.1667,-67 314.1667,-67 277.8333,-67 277.8333,-67 272.1667,-67 266.5,-61.3333 266.5,-55.6667 266.5,-55.6667 266.5,-44.3333 266.5,-44.3333 266.5,-38.6667 272.1667,-33 277.8333,-33"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_state_1&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_2 -->
+<g id="edge4" class="edge">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_state_1&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_2</title>
+<path fill="none" stroke="#000000" d="M289.555,-221.7962C288.1124,-216.3088 287,-210.2224 287,-204.5 287,-204.5 287,-204.5 287,-85.5 287,-83.0859 287.198,-80.607 287.5352,-78.1355"/>
+<polygon fill="#000000" stroke="#000000" points="290.9918,-78.7008 289.555,-68.2038 284.1322,-77.3057 290.9918,-78.7008"/>
+<text text-anchor="start" x="287" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_state_2 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_2 -->
+<!-- _parallel_orthogonal_2_initial -->
+<g id="node12" class="node">
+<title>_parallel_orthogonal_2_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="131" cy="-664.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2 -->
+<!-- _parallel_orthogonal_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2 -->
+<g id="edge6" class="edge">
+<title>_parallel_orthogonal_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2</title>
+<path fill="none" stroke="#000000" d="M131,-658.7843C131,-649.2811 131,-629.6302 131,-613 131,-613 131,-613 131,-513.5 131,-511.1116 131,-508.6707 131,-506.2049"/>
+<polygon fill="#000000" stroke="#000000" points="134.5001,-505.9997 131,-495.9997 127.5001,-505.9997 134.5001,-505.9997"/>
+<text text-anchor="middle" x="132.3895" y="-546" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_2_outer_2 -->
+<g id="node13" class="node">
+<title>_parallel_orthogonal_2_outer_2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="233,-365 171,-365 171,-329 233,-329 233,-365"/>
+<text text-anchor="start" x="181.6582" y="-343.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M183.3333,-330C183.3333,-330 220.6667,-330 220.6667,-330 226.3333,-330 232,-335.6667 232,-341.3333 232,-341.3333 232,-352.6667 232,-352.6667 232,-358.3333 226.3333,-364 220.6667,-364 220.6667,-364 183.3333,-364 183.3333,-364 177.6667,-364 172,-358.3333 172,-352.6667 172,-352.6667 172,-341.3333 172,-341.3333 172,-335.6667 177.6667,-330 183.3333,-330"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2&#45;&gt;_parallel_orthogonal_2_outer_2 -->
+<g id="edge9" class="edge">
+<title>_parallel_orthogonal_2_orthogonal_inner_2&#45;&gt;_parallel_orthogonal_2_outer_2</title>
+<path fill="none" stroke="#000000" d="M163,-366.7017C164.9309,-365.8086 166.8618,-364.9154 168.7928,-364.0223"/>
+<polygon fill="#000000" stroke="#000000" points="163.117,-370.5042 170.7237,-363.1291 160.1781,-364.1509 163.117,-370.5042"/>
+<text text-anchor="start" x="131" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_outer_2 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_initial -->
+<g id="node15" class="node">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="63" cy="-452.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_state_3 -->
+<g id="node16" class="node">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_state_3</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="93.5,-258 32.5,-258 32.5,-222 93.5,-222 93.5,-258"/>
+<text text-anchor="start" x="43.8236" y="-236.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_3</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M44.8333,-223C44.8333,-223 81.1667,-223 81.1667,-223 86.8333,-223 92.5,-228.6667 92.5,-234.3333 92.5,-234.3333 92.5,-245.6667 92.5,-245.6667 92.5,-251.3333 86.8333,-257 81.1667,-257 81.1667,-257 44.8333,-257 44.8333,-257 39.1667,-257 33.5,-251.3333 33.5,-245.6667 33.5,-245.6667 33.5,-234.3333 33.5,-234.3333 33.5,-228.6667 39.1667,-223 44.8333,-223"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_3 -->
+<g id="edge7" class="edge">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_3</title>
+<path fill="none" stroke="#000000" d="M63,-446.8288C63,-442.1736 63,-435.4097 63,-429.5 63,-429.5 63,-429.5 63,-275.5 63,-273.1079 63,-270.6252 63,-268.1342"/>
+<polygon fill="#000000" stroke="#000000" points="66.5001,-268.0597 63,-258.0598 59.5001,-268.0598 66.5001,-268.0597"/>
+<text text-anchor="middle" x="64.3895" y="-344" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_state_4 -->
+<g id="node17" class="node">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_state_4</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="93.5,-68 32.5,-68 32.5,-32 93.5,-32 93.5,-68"/>
+<text text-anchor="start" x="43.8236" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_4</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M44.8333,-33C44.8333,-33 81.1667,-33 81.1667,-33 86.8333,-33 92.5,-38.6667 92.5,-44.3333 92.5,-44.3333 92.5,-55.6667 92.5,-55.6667 92.5,-61.3333 86.8333,-67 81.1667,-67 81.1667,-67 44.8333,-67 44.8333,-67 39.1667,-67 33.5,-61.3333 33.5,-55.6667 33.5,-55.6667 33.5,-44.3333 33.5,-44.3333 33.5,-38.6667 39.1667,-33 44.8333,-33"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_state_3&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_4 -->
+<g id="edge8" class="edge">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_state_3&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_4</title>
+<path fill="none" stroke="#000000" d="M56.555,-221.7962C55.1124,-216.3088 54,-210.2224 54,-204.5 54,-204.5 54,-204.5 54,-85.5 54,-83.0859 54.198,-80.607 54.5352,-78.1355"/>
+<polygon fill="#000000" stroke="#000000" points="57.9918,-78.7008 56.555,-68.2038 51.1322,-77.3057 57.9918,-78.7008"/>
+<text text-anchor="start" x="54" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_state_4 &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 0 - 194
test/semantics/original_semantics/parallel_history_3.svg

@@ -1,194 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="595pt" height="978pt"
- viewBox="0.00 0.00 594.80 978.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 974)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-974 590.797,-974 590.797,4 -4,4"/>
-<g id="clust1" class="cluster">
-<title>cluster_parallel</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 454,-8 454,-8 460,-8 466,-14 466,-20 466,-20 466,-919 466,-919 466,-925 460,-931 454,-931 454,-931 20,-931 20,-931 14,-931 8,-925 8,-919 8,-919 8,-20 8,-20 8,-14 14,-8 20,-8"/>
-<text text-anchor="start" x="217.6668" y="-912.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel</text>
-</g>
-<g id="clust2" class="cluster">
-<title>cluster_orthogonal_1</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="237,-16 237,-893 450,-893 450,-16 237,-16"/>
-<text text-anchor="start" x="308.4852" y="-874.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_1</text>
-</g>
-<g id="clust3" class="cluster">
-<title>cluster_orthogonal_inner_1</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M257,-24C257,-24 360,-24 360,-24 366,-24 372,-30 372,-36 372,-36 372,-643.5 372,-643.5 372,-649.5 366,-655.5 360,-655.5 360,-655.5 257,-655.5 257,-655.5 251,-655.5 245,-649.5 245,-643.5 245,-643.5 245,-36 245,-36 245,-30 251,-24 257,-24"/>
-<text text-anchor="start" x="257.3148" y="-636.7" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_1</text>
-</g>
-<g id="clust4" class="cluster">
-<title>cluster_orthogonal_2</title>
-<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="16,-186 16,-752 229,-752 229,-186 16,-186"/>
-<text text-anchor="start" x="87.4852" y="-733.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_2</text>
-</g>
-<g id="clust5" class="cluster">
-<title>cluster_orthogonal_inner_2</title>
-<path fill="none" stroke="#000000" stroke-width="2" d="M36,-194C36,-194 139,-194 139,-194 145,-194 151,-200 151,-206 151,-206 151,-548 151,-548 151,-554 145,-560 139,-560 139,-560 36,-560 36,-560 30,-560 24,-554 24,-548 24,-548 24,-206 24,-206 24,-200 30,-194 36,-194"/>
-<text text-anchor="start" x="36.3148" y="-541.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_2</text>
-</g>
-<!-- initial_200 -->
-<g id="node1" class="node">
-<title>initial_200</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="458" cy="-964.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- parallel -->
-<!-- initial_200&#45;&gt;parallel -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;parallel</title>
-<path fill="none" stroke="#000000" d="M458,-958.9533C458,-954.7779 458,-948.5043 458,-941.0332"/>
-<polygon fill="#000000" stroke="#000000" points="461.5001,-940.9971 458,-930.9971 454.5001,-940.9972 461.5001,-940.9971"/>
-<text text-anchor="middle" x="459.3895" y="-942" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- next_to_parallel -->
-<g id="node16" class="node">
-<title>next_to_parallel</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="574.1905,-816 473.8095,-816 473.8095,-780 574.1905,-780 574.1905,-816"/>
-<text text-anchor="middle" x="524" y="-794.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">next_to_parallel</text>
-</g>
-<!-- parallel&#45;&gt;next_to_parallel -->
-<g id="edge2" class="edge">
-<title>parallel&#45;&gt;next_to_parallel</title>
-<path fill="none" stroke="#000000" d="M465.9982,-843.259C472.747,-837.9929 482.8662,-830.0968 492.772,-822.3673"/>
-<polygon fill="#000000" stroke="#000000" points="495.0465,-825.032 500.7773,-816.1208 490.7403,-819.5132 495.0465,-825.032"/>
-<text text-anchor="start" x="490" y="-827" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">exit &#160;&#160;</text>
-</g>
-<!-- orthogonal_1 -->
-<!-- initial_400 -->
-<g id="node4" class="node">
-<title>initial_400</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="364" cy="-849.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- orthogonal_inner_1 -->
-<!-- initial_400&#45;&gt;orthogonal_inner_1 -->
-<g id="edge5" class="edge">
-<title>initial_400&#45;&gt;orthogonal_inner_1</title>
-<path fill="none" stroke="#000000" d="M364,-843.7843C364,-834.2811 364,-814.6302 364,-798 364,-798 364,-798 364,-673 364,-670.6116 364,-668.1707 364,-665.7049"/>
-<polygon fill="#000000" stroke="#000000" points="367.5001,-665.4997 364,-655.4997 360.5001,-665.4997 367.5001,-665.4997"/>
-<text text-anchor="middle" x="365.3895" y="-705.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- outer_1 -->
-<g id="node5" class="node">
-<title>outer_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="442,-451 380,-451 380,-415 442,-415 442,-451"/>
-<text text-anchor="start" x="390.6582" y="-429.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M392.3333,-416C392.3333,-416 429.6667,-416 429.6667,-416 435.3333,-416 441,-421.6667 441,-427.3333 441,-427.3333 441,-438.6667 441,-438.6667 441,-444.3333 435.3333,-450 429.6667,-450 429.6667,-450 392.3333,-450 392.3333,-450 386.6667,-450 381,-444.3333 381,-438.6667 381,-438.6667 381,-427.3333 381,-427.3333 381,-421.6667 386.6667,-416 392.3333,-416"/>
-</g>
-<!-- orthogonal_inner_1&#45;&gt;outer_1 -->
-<g id="edge7" class="edge">
-<title>orthogonal_inner_1&#45;&gt;outer_1</title>
-<path fill="none" stroke="#000000" d="M371.9992,-597.0337C373.7027,-592.6366 375,-587.7339 375,-583 375,-583 375,-583 375,-468.5 375,-465.2687 375.7444,-462.2327 377.0191,-459.4025"/>
-<polygon fill="#000000" stroke="#000000" points="379.9443,-461.3248 382.6347,-451.0772 374.1411,-457.4104 379.9443,-461.3248"/>
-<text text-anchor="start" x="375" y="-501" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_outer_1 &#160;&#160;</text>
-</g>
-<!-- initial_500 -->
-<g id="node7" class="node">
-<title>initial_500</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="271" cy="-612" rx="5.5" ry="5.5"/>
-</g>
-<!-- state_1 -->
-<g id="node8" class="node">
-<title>state_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="314.5,-309 253.5,-309 253.5,-273 314.5,-273 314.5,-309"/>
-<text text-anchor="start" x="264.8236" y="-287.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M265.8333,-274C265.8333,-274 302.1667,-274 302.1667,-274 307.8333,-274 313.5,-279.6667 313.5,-285.3333 313.5,-285.3333 313.5,-296.6667 313.5,-296.6667 313.5,-302.3333 307.8333,-308 302.1667,-308 302.1667,-308 265.8333,-308 265.8333,-308 260.1667,-308 254.5,-302.3333 254.5,-296.6667 254.5,-296.6667 254.5,-285.3333 254.5,-285.3333 254.5,-279.6667 260.1667,-274 265.8333,-274"/>
-</g>
-<!-- initial_500&#45;&gt;state_1 -->
-<g id="edge6" class="edge">
-<title>initial_500&#45;&gt;state_1</title>
-<path fill="none" stroke="#000000" d="M273.357,-606.7746C275.7168,-601.058 279,-591.5654 279,-583 279,-583 279,-583 279,-326.5 279,-324.2243 279.102,-321.8746 279.2768,-319.5183"/>
-<polygon fill="#000000" stroke="#000000" points="282.7801,-319.6846 280.4194,-309.3561 275.8239,-318.9024 282.7801,-319.6846"/>
-<text text-anchor="middle" x="280.3895" y="-430" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_3 -->
-<g id="node14" class="node">
-<title>state_3</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="142.5,-522 81.5,-522 81.5,-486 142.5,-486 142.5,-522"/>
-<text text-anchor="start" x="92.8236" y="-500.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_3</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M93.8333,-487C93.8333,-487 130.1667,-487 130.1667,-487 135.8333,-487 141.5,-492.6667 141.5,-498.3333 141.5,-498.3333 141.5,-509.6667 141.5,-509.6667 141.5,-515.3333 135.8333,-521 130.1667,-521 130.1667,-521 93.8333,-521 93.8333,-521 88.1667,-521 82.5,-515.3333 82.5,-509.6667 82.5,-509.6667 82.5,-498.3333 82.5,-498.3333 82.5,-492.6667 88.1667,-487 93.8333,-487"/>
-</g>
-<!-- initial_500&#45;&gt;state_3 -->
-<g id="edge9" class="edge">
-<title>initial_500&#45;&gt;state_3</title>
-<path fill="none" stroke="#000000" d="M266.4129,-608.8842C249.1459,-597.1557 187.0124,-554.9518 147.0209,-527.7878"/>
-<polygon fill="#000000" stroke="#000000" points="148.8406,-524.7928 138.6018,-522.0692 144.9074,-530.5833 148.8406,-524.7928"/>
-<text text-anchor="middle" x="238.3895" y="-580" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_2 -->
-<g id="node9" class="node">
-<title>state_2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="314.5,-68 253.5,-68 253.5,-32 314.5,-32 314.5,-68"/>
-<text text-anchor="start" x="264.8236" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M265.8333,-33C265.8333,-33 302.1667,-33 302.1667,-33 307.8333,-33 313.5,-38.6667 313.5,-44.3333 313.5,-44.3333 313.5,-55.6667 313.5,-55.6667 313.5,-61.3333 307.8333,-67 302.1667,-67 302.1667,-67 265.8333,-67 265.8333,-67 260.1667,-67 254.5,-61.3333 254.5,-55.6667 254.5,-55.6667 254.5,-44.3333 254.5,-44.3333 254.5,-38.6667 260.1667,-33 265.8333,-33"/>
-</g>
-<!-- state_1&#45;&gt;state_2 -->
-<g id="edge8" class="edge">
-<title>state_1&#45;&gt;state_2</title>
-<path fill="none" stroke="#000000" d="M284,-272.9402C284,-267.3497 284,-261.1701 284,-255.5 284,-255.5 284,-255.5 284,-85.5 284,-83.1079 284,-80.6252 284,-78.1342"/>
-<polygon fill="#000000" stroke="#000000" points="287.5001,-78.0597 284,-68.0598 280.5001,-78.0598 287.5001,-78.0597"/>
-<text text-anchor="start" x="284" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_2 &#160;&#160;</text>
-</g>
-<!-- orthogonal_2 -->
-<!-- initial_401 -->
-<g id="node11" class="node">
-<title>initial_401</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="59" cy="-708.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- orthogonal_inner_2 -->
-<!-- initial_401&#45;&gt;orthogonal_inner_2 -->
-<g id="edge4" class="edge">
-<title>initial_401&#45;&gt;orthogonal_inner_2</title>
-<path fill="none" stroke="#000000" d="M59,-702.9659C59,-695.982 59,-683.6007 59,-673 59,-673 59,-673 59,-583 59,-578.8145 59,-574.5044 59,-570.1586"/>
-<polygon fill="#000000" stroke="#000000" points="62.5001,-569.9961 59,-559.9962 55.5001,-569.9962 62.5001,-569.9961"/>
-<text text-anchor="middle" x="60.3895" y="-609" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- outer_2 -->
-<g id="node12" class="node">
-<title>outer_2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="221,-380 159,-380 159,-344 221,-344 221,-380"/>
-<text text-anchor="start" x="169.6582" y="-358.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M171.3333,-345C171.3333,-345 208.6667,-345 208.6667,-345 214.3333,-345 220,-350.6667 220,-356.3333 220,-356.3333 220,-367.6667 220,-367.6667 220,-373.3333 214.3333,-379 208.6667,-379 208.6667,-379 171.3333,-379 171.3333,-379 165.6667,-379 160,-373.3333 160,-367.6667 160,-367.6667 160,-356.3333 160,-356.3333 160,-350.6667 165.6667,-345 171.3333,-345"/>
-</g>
-<!-- orthogonal_inner_2&#45;&gt;outer_2 -->
-<g id="edge10" class="edge">
-<title>orthogonal_inner_2&#45;&gt;outer_2</title>
-<path fill="none" stroke="#000000" d="M150.9974,-388.5305C151.5875,-387.9056 152.2193,-387.2752 152.8871,-386.6415"/>
-<polygon fill="#000000" stroke="#000000" points="155.4232,-389.0858 160.8964,-380.0142 150.9606,-383.6927 155.4232,-389.0858"/>
-<text text-anchor="start" x="146" y="-430" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_outer_2 &#160;&#160;</text>
-</g>
-<!-- state_4 -->
-<g id="node15" class="node">
-<title>state_4</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="112.5,-238 51.5,-238 51.5,-202 112.5,-202 112.5,-238"/>
-<text text-anchor="start" x="62.8236" y="-216.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_4</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M63.8333,-203C63.8333,-203 100.1667,-203 100.1667,-203 105.8333,-203 111.5,-208.6667 111.5,-214.3333 111.5,-214.3333 111.5,-225.6667 111.5,-225.6667 111.5,-231.3333 105.8333,-237 100.1667,-237 100.1667,-237 63.8333,-237 63.8333,-237 58.1667,-237 52.5,-231.3333 52.5,-225.6667 52.5,-225.6667 52.5,-214.3333 52.5,-214.3333 52.5,-208.6667 58.1667,-203 63.8333,-203"/>
-</g>
-<!-- state_3&#45;&gt;state_4 -->
-<g id="edge11" class="edge">
-<title>state_3&#45;&gt;state_4</title>
-<path fill="none" stroke="#000000" d="M88.958,-485.8871C84.9297,-480.8429 82,-474.9553 82,-468.5 82,-468.5 82,-468.5 82,-255.5 82,-253.1079 82,-250.6252 82,-248.1342"/>
-<polygon fill="#000000" stroke="#000000" points="85.5001,-248.0597 82,-238.0598 78.5001,-248.0598 85.5001,-248.0597"/>
-<text text-anchor="start" x="82" y="-359" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_state_4 &#160;&#160;</text>
-</g>
-<!-- history_1 -->
-<g id="node17" class="node">
-<title>history_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="556.1764,-726.5 491.8236,-726.5 491.8236,-690.5 556.1764,-690.5 556.1764,-726.5"/>
-<text text-anchor="middle" x="524" y="-704.9" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">history_1</text>
-</g>
-<!-- next_to_parallel&#45;&gt;history_1 -->
-<g id="edge1" class="edge">
-<title>next_to_parallel&#45;&gt;history_1</title>
-<path fill="none" stroke="#000000" d="M524,-779.8883C524,-767.5146 524,-750.8686 524,-736.7632"/>
-<polygon fill="#000000" stroke="#000000" points="527.5001,-736.5847 524,-726.5847 520.5001,-736.5848 527.5001,-736.5847"/>
-<text text-anchor="start" x="524" y="-763" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">to_history_1 &#160;&#160;</text>
-</g>
-</g>
-</svg>

+ 200 - 0
test/semantics/original_semantics/parallel_history_3_TestClass.svg

@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="672pt" height="793pt"
+ viewBox="0.00 0.00 671.93 793.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 789)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-789 667.927,-789 667.927,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__parallel</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 478,-8 478,-8 484,-8 490,-14 490,-20 490,-20 490,-734 490,-734 490,-740 484,-746 478,-746 478,-746 20,-746 20,-746 14,-746 8,-740 8,-734 8,-734 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="229.6668" y="-727.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster__parallel_orthogonal_1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="249,-16 249,-708 474,-708 474,-16 249,-16"/>
+<text text-anchor="start" x="326.4852" y="-689.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_1</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster__parallel_orthogonal_1_orthogonal_inner_1</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M269,-24C269,-24 384,-24 384,-24 390,-24 396,-30 396,-36 396,-36 396,-484 396,-484 396,-490 390,-496 384,-496 384,-496 269,-496 269,-496 263,-496 257,-490 257,-484 257,-484 257,-36 257,-36 257,-30 263,-24 269,-24"/>
+<text text-anchor="start" x="275.3148" y="-477.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_1</text>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster__parallel_orthogonal_2</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="16,-16 16,-708 241,-708 241,-16 16,-16"/>
+<text text-anchor="start" x="93.4852" y="-689.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_2</text>
+</g>
+<g id="clust5" class="cluster">
+<title>cluster__parallel_orthogonal_2_orthogonal_inner_2</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M36,-24C36,-24 151,-24 151,-24 157,-24 163,-30 163,-36 163,-36 163,-484 163,-484 163,-490 157,-496 151,-496 151,-496 36,-496 36,-496 30,-496 24,-490 24,-484 24,-484 24,-36 24,-36 24,-30 30,-24 36,-24"/>
+<text text-anchor="start" x="42.3148" y="-477.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_2</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="482" cy="-779.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel -->
+<!-- __initial&#45;&gt;_parallel -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_parallel</title>
+<path fill="none" stroke="#000000" d="M482,-773.9533C482,-769.7779 482,-763.5043 482,-756.0332"/>
+<polygon fill="#000000" stroke="#000000" points="485.5001,-755.9971 482,-745.9971 478.5001,-755.9972 485.5001,-755.9971"/>
+<text text-anchor="middle" x="483.3895" y="-757" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _next_to_parallel -->
+<g id="node2" class="node">
+<title>_next_to_parallel</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="607,-631 501,-631 501,-595 607,-595 607,-631"/>
+<text text-anchor="start" x="511.655" y="-609.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">next_to_parallel</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M513.3333,-596C513.3333,-596 594.6667,-596 594.6667,-596 600.3333,-596 606,-601.6667 606,-607.3333 606,-607.3333 606,-618.6667 606,-618.6667 606,-624.3333 600.3333,-630 594.6667,-630 594.6667,-630 513.3333,-630 513.3333,-630 507.6667,-630 502,-624.3333 502,-618.6667 502,-618.6667 502,-607.3333 502,-607.3333 502,-601.6667 507.6667,-596 513.3333,-596"/>
+</g>
+<!-- _parallel_history_1 -->
+<g id="node18" class="node">
+<title>_parallel_history_1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="614.184,-567 497.816,-567 497.816,-531 614.184,-531 614.184,-567"/>
+<text text-anchor="middle" x="556" y="-545.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">_parallel_history_1</text>
+</g>
+<!-- _next_to_parallel&#45;&gt;_parallel_history_1 -->
+<g id="edge11" class="edge">
+<title>_next_to_parallel&#45;&gt;_parallel_history_1</title>
+<path fill="none" stroke="#000000" d="M554.5678,-594.8314C554.7352,-589.4728 554.9227,-583.4735 555.1054,-577.6262"/>
+<polygon fill="#000000" stroke="#000000" points="558.6097,-577.5408 555.4239,-567.4363 551.6131,-577.3221 558.6097,-577.5408"/>
+<text text-anchor="start" x="555" y="-578" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_history_1 &#160;&#160;</text>
+</g>
+<!-- _parallel&#45;&gt;_next_to_parallel -->
+<g id="edge10" class="edge">
+<title>_parallel&#45;&gt;_next_to_parallel</title>
+<path fill="none" stroke="#000000" d="M489.9995,-658.7781C497.4575,-653.4436 509.1021,-645.1144 520.4254,-637.0152"/>
+<polygon fill="#000000" stroke="#000000" points="522.5688,-639.7853 528.6661,-631.1208 518.4964,-634.0918 522.5688,-639.7853"/>
+<text text-anchor="start" x="516" y="-642" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.exit &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_1 -->
+<!-- _parallel_orthogonal_1_initial -->
+<g id="node5" class="node">
+<title>_parallel_orthogonal_1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="364" cy="-664.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1 -->
+<!-- _parallel_orthogonal_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1 -->
+<g id="edge2" class="edge">
+<title>_parallel_orthogonal_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1</title>
+<path fill="none" stroke="#000000" d="M364,-658.7843C364,-649.2811 364,-629.6302 364,-613 364,-613 364,-613 364,-513.5 364,-511.1116 364,-508.6707 364,-506.2049"/>
+<polygon fill="#000000" stroke="#000000" points="367.5001,-505.9997 364,-495.9997 360.5001,-505.9997 367.5001,-505.9997"/>
+<text text-anchor="middle" x="365.3895" y="-546" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_1_outer_1 -->
+<g id="node6" class="node">
+<title>_parallel_orthogonal_1_outer_1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="466,-365 404,-365 404,-329 466,-329 466,-365"/>
+<text text-anchor="start" x="414.6582" y="-343.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M416.3333,-330C416.3333,-330 453.6667,-330 453.6667,-330 459.3333,-330 465,-335.6667 465,-341.3333 465,-341.3333 465,-352.6667 465,-352.6667 465,-358.3333 459.3333,-364 453.6667,-364 453.6667,-364 416.3333,-364 416.3333,-364 410.6667,-364 405,-358.3333 405,-352.6667 405,-352.6667 405,-341.3333 405,-341.3333 405,-335.6667 410.6667,-330 416.3333,-330"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1&#45;&gt;_parallel_orthogonal_1_outer_1 -->
+<g id="edge5" class="edge">
+<title>_parallel_orthogonal_1_orthogonal_inner_1&#45;&gt;_parallel_orthogonal_1_outer_1</title>
+<path fill="none" stroke="#000000" d="M396,-366.7017C397.9309,-365.8086 399.8618,-364.9154 401.7928,-364.0223"/>
+<polygon fill="#000000" stroke="#000000" points="396.117,-370.5042 403.7237,-363.1291 393.1781,-364.1509 396.117,-370.5042"/>
+<text text-anchor="start" x="364" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_outer_1 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_initial -->
+<g id="node8" class="node">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="296" cy="-452.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_state_1 -->
+<g id="node9" class="node">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_state_1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="326.5,-258 265.5,-258 265.5,-222 326.5,-222 326.5,-258"/>
+<text text-anchor="start" x="276.8236" y="-236.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M277.8333,-223C277.8333,-223 314.1667,-223 314.1667,-223 319.8333,-223 325.5,-228.6667 325.5,-234.3333 325.5,-234.3333 325.5,-245.6667 325.5,-245.6667 325.5,-251.3333 319.8333,-257 314.1667,-257 314.1667,-257 277.8333,-257 277.8333,-257 272.1667,-257 266.5,-251.3333 266.5,-245.6667 266.5,-245.6667 266.5,-234.3333 266.5,-234.3333 266.5,-228.6667 272.1667,-223 277.8333,-223"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_1 -->
+<g id="edge3" class="edge">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_1</title>
+<path fill="none" stroke="#000000" d="M296,-446.8288C296,-442.1736 296,-435.4097 296,-429.5 296,-429.5 296,-429.5 296,-275.5 296,-273.1079 296,-270.6252 296,-268.1342"/>
+<polygon fill="#000000" stroke="#000000" points="299.5001,-268.0597 296,-258.0598 292.5001,-268.0598 299.5001,-268.0597"/>
+<text text-anchor="middle" x="297.3895" y="-344" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_state_2 -->
+<g id="node10" class="node">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_state_2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="326.5,-68 265.5,-68 265.5,-32 326.5,-32 326.5,-68"/>
+<text text-anchor="start" x="276.8236" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M277.8333,-33C277.8333,-33 314.1667,-33 314.1667,-33 319.8333,-33 325.5,-38.6667 325.5,-44.3333 325.5,-44.3333 325.5,-55.6667 325.5,-55.6667 325.5,-61.3333 319.8333,-67 314.1667,-67 314.1667,-67 277.8333,-67 277.8333,-67 272.1667,-67 266.5,-61.3333 266.5,-55.6667 266.5,-55.6667 266.5,-44.3333 266.5,-44.3333 266.5,-38.6667 272.1667,-33 277.8333,-33"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_state_1&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_2 -->
+<g id="edge4" class="edge">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_state_1&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_2</title>
+<path fill="none" stroke="#000000" d="M289.555,-221.7962C288.1124,-216.3088 287,-210.2224 287,-204.5 287,-204.5 287,-204.5 287,-85.5 287,-83.0859 287.198,-80.607 287.5352,-78.1355"/>
+<polygon fill="#000000" stroke="#000000" points="290.9918,-78.7008 289.555,-68.2038 284.1322,-77.3057 290.9918,-78.7008"/>
+<text text-anchor="start" x="287" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_state_2 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_2 -->
+<!-- _parallel_orthogonal_2_initial -->
+<g id="node12" class="node">
+<title>_parallel_orthogonal_2_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="131" cy="-664.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2 -->
+<!-- _parallel_orthogonal_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2 -->
+<g id="edge6" class="edge">
+<title>_parallel_orthogonal_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2</title>
+<path fill="none" stroke="#000000" d="M131,-658.7843C131,-649.2811 131,-629.6302 131,-613 131,-613 131,-613 131,-513.5 131,-511.1116 131,-508.6707 131,-506.2049"/>
+<polygon fill="#000000" stroke="#000000" points="134.5001,-505.9997 131,-495.9997 127.5001,-505.9997 134.5001,-505.9997"/>
+<text text-anchor="middle" x="132.3895" y="-546" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_2_outer_2 -->
+<g id="node13" class="node">
+<title>_parallel_orthogonal_2_outer_2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="233,-365 171,-365 171,-329 233,-329 233,-365"/>
+<text text-anchor="start" x="181.6582" y="-343.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M183.3333,-330C183.3333,-330 220.6667,-330 220.6667,-330 226.3333,-330 232,-335.6667 232,-341.3333 232,-341.3333 232,-352.6667 232,-352.6667 232,-358.3333 226.3333,-364 220.6667,-364 220.6667,-364 183.3333,-364 183.3333,-364 177.6667,-364 172,-358.3333 172,-352.6667 172,-352.6667 172,-341.3333 172,-341.3333 172,-335.6667 177.6667,-330 183.3333,-330"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2&#45;&gt;_parallel_orthogonal_2_outer_2 -->
+<g id="edge9" class="edge">
+<title>_parallel_orthogonal_2_orthogonal_inner_2&#45;&gt;_parallel_orthogonal_2_outer_2</title>
+<path fill="none" stroke="#000000" d="M163,-366.7017C164.9309,-365.8086 166.8618,-364.9154 168.7928,-364.0223"/>
+<polygon fill="#000000" stroke="#000000" points="163.117,-370.5042 170.7237,-363.1291 160.1781,-364.1509 163.117,-370.5042"/>
+<text text-anchor="start" x="131" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_outer_2 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_initial -->
+<g id="node15" class="node">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="63" cy="-452.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_state_3 -->
+<g id="node16" class="node">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_state_3</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="93.5,-258 32.5,-258 32.5,-222 93.5,-222 93.5,-258"/>
+<text text-anchor="start" x="43.8236" y="-236.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_3</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M44.8333,-223C44.8333,-223 81.1667,-223 81.1667,-223 86.8333,-223 92.5,-228.6667 92.5,-234.3333 92.5,-234.3333 92.5,-245.6667 92.5,-245.6667 92.5,-251.3333 86.8333,-257 81.1667,-257 81.1667,-257 44.8333,-257 44.8333,-257 39.1667,-257 33.5,-251.3333 33.5,-245.6667 33.5,-245.6667 33.5,-234.3333 33.5,-234.3333 33.5,-228.6667 39.1667,-223 44.8333,-223"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_3 -->
+<g id="edge7" class="edge">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_3</title>
+<path fill="none" stroke="#000000" d="M63,-446.8288C63,-442.1736 63,-435.4097 63,-429.5 63,-429.5 63,-429.5 63,-275.5 63,-273.1079 63,-270.6252 63,-268.1342"/>
+<polygon fill="#000000" stroke="#000000" points="66.5001,-268.0597 63,-258.0598 59.5001,-268.0598 66.5001,-268.0597"/>
+<text text-anchor="middle" x="64.3895" y="-344" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_state_4 -->
+<g id="node17" class="node">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_state_4</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="93.5,-68 32.5,-68 32.5,-32 93.5,-32 93.5,-68"/>
+<text text-anchor="start" x="43.8236" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_4</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M44.8333,-33C44.8333,-33 81.1667,-33 81.1667,-33 86.8333,-33 92.5,-38.6667 92.5,-44.3333 92.5,-44.3333 92.5,-55.6667 92.5,-55.6667 92.5,-61.3333 86.8333,-67 81.1667,-67 81.1667,-67 44.8333,-67 44.8333,-67 39.1667,-67 33.5,-61.3333 33.5,-55.6667 33.5,-55.6667 33.5,-44.3333 33.5,-44.3333 33.5,-38.6667 39.1667,-33 44.8333,-33"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_state_3&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_4 -->
+<g id="edge8" class="edge">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_state_3&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_4</title>
+<path fill="none" stroke="#000000" d="M56.555,-221.7962C55.1124,-216.3088 54,-210.2224 54,-204.5 54,-204.5 54,-204.5 54,-85.5 54,-83.0859 54.198,-80.607 54.5352,-78.1355"/>
+<polygon fill="#000000" stroke="#000000" points="57.9918,-78.7008 56.555,-68.2038 51.1322,-77.3057 57.9918,-78.7008"/>
+<text text-anchor="start" x="54" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_state_4 &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 199 - 0
test/semantics/original_semantics/parallel_history_TestClass.svg

@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: state transitions Pages: 1 -->
+<svg width="736pt" height="727pt"
+ viewBox="0.00 0.00 736.00 727.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 723)">
+<title>state transitions</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-723 732,-723 732,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster__parallel</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 708,-8 708,-8 714,-8 720,-14 720,-20 720,-20 720,-668 720,-668 720,-674 714,-680 708,-680 708,-680 20,-680 20,-680 14,-680 8,-674 8,-668 8,-668 8,-20 8,-20 8,-14 14,-8 20,-8"/>
+<text text-anchor="start" x="344.6668" y="-661.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parallel</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster__parallel_orthogonal_1</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="372,-16 372,-642 712,-642 712,-16 372,-16"/>
+<text text-anchor="start" x="506.9852" y="-623.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_1</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster__parallel_orthogonal_1_orthogonal_inner_1</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M436,-24C436,-24 551,-24 551,-24 557,-24 563,-30 563,-36 563,-36 563,-474 563,-474 563,-480 557,-486 551,-486 551,-486 436,-486 436,-486 430,-486 424,-480 424,-474 424,-474 424,-36 424,-36 424,-30 430,-24 436,-24"/>
+<text text-anchor="start" x="442.3148" y="-467.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_1</text>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster__parallel_orthogonal_2</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="5,2" points="24,-16 24,-642 364,-642 364,-16 24,-16"/>
+<text text-anchor="start" x="158.9852" y="-623.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_2</text>
+</g>
+<g id="clust5" class="cluster">
+<title>cluster__parallel_orthogonal_2_orthogonal_inner_2</title>
+<path fill="none" stroke="#000000" stroke-width="2" d="M88,-24C88,-24 203,-24 203,-24 209,-24 215,-30 215,-36 215,-36 215,-474 215,-474 215,-480 209,-486 203,-486 203,-486 88,-486 88,-486 82,-486 76,-480 76,-474 76,-474 76,-36 76,-36 76,-30 82,-24 88,-24"/>
+<text text-anchor="start" x="94.3148" y="-467.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">orthogonal_inner_2</text>
+</g>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="16" cy="-713.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel -->
+<!-- __initial&#45;&gt;_parallel -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_parallel</title>
+<path fill="none" stroke="#000000" d="M16,-707.6903C16,-703.6144 16,-697.6212 16,-690.446"/>
+<polygon fill="#000000" stroke="#000000" points="19.5001,-689.9982 16,-679.9982 12.5001,-689.9982 19.5001,-689.9982"/>
+<text text-anchor="middle" x="17.3895" y="-691" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_1 -->
+<!-- _parallel_orthogonal_1_initial -->
+<g id="node4" class="node">
+<title>_parallel_orthogonal_1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="676" cy="-586" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1 -->
+<!-- _parallel_orthogonal_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1 -->
+<g id="edge2" class="edge">
+<title>_parallel_orthogonal_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1</title>
+<path fill="none" stroke="#000000" d="M679.9063,-581.81C686.9375,-574.087 701,-557.7366 701,-550.5 701,-550.5 701,-550.5 701,-503.5 701,-442.6026 598.4095,-432.154 565.2229,-430.3671"/>
+<polygon fill="#000000" stroke="#000000" points="573.436,-428.1732 563,-430.0009 572.298,-435.0801 573.436,-428.1732"/>
+<text text-anchor="middle" x="702.3895" y="-524" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_1_outer_1 -->
+<g id="node5" class="node">
+<title>_parallel_orthogonal_1_outer_1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="514,-604 452,-604 452,-568 514,-568 514,-604"/>
+<text text-anchor="start" x="462.6582" y="-582.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M464.3333,-569C464.3333,-569 501.6667,-569 501.6667,-569 507.3333,-569 513,-574.6667 513,-580.3333 513,-580.3333 513,-591.6667 513,-591.6667 513,-597.3333 507.3333,-603 501.6667,-603 501.6667,-603 464.3333,-603 464.3333,-603 458.6667,-603 453,-597.3333 453,-591.6667 453,-591.6667 453,-580.3333 453,-580.3333 453,-574.6667 458.6667,-569 464.3333,-569"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_history_1 -->
+<g id="node10" class="node">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_history_1</title>
+<ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="450" cy="-430" rx="18" ry="18"/>
+<text text-anchor="middle" x="450" y="-426.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
+</g>
+<!-- _parallel_orthogonal_1_outer_1&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_history_1 -->
+<g id="edge6" class="edge">
+<title>_parallel_orthogonal_1_outer_1&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_history_1</title>
+<path fill="none" stroke="#000000" d="M451.9149,-578.4428C429.0725,-571.9516 402,-561.8618 402,-550.5 402,-550.5 402,-550.5 402,-503.5 402,-482.4788 415.934,-462.7731 428.7871,-449.0676"/>
+<polygon fill="#000000" stroke="#000000" points="431.5277,-451.2763 436.1164,-441.7267 426.574,-446.3305 431.5277,-451.2763"/>
+<text text-anchor="start" x="402" y="-524" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_history_1 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1&#45;&gt;_parallel_orthogonal_1_outer_1 -->
+<g id="edge5" class="edge">
+<title>_parallel_orthogonal_1_orthogonal_inner_1&#45;&gt;_parallel_orthogonal_1_outer_1</title>
+<path fill="none" stroke="#000000" d="M555,-485.9992C555,-491.908 555,-497.8272 555,-503.5 555,-550.5 555,-550.5 555,-550.5 555,-558.597 540.167,-566.6572 523.966,-573.046"/>
+<polygon fill="#000000" stroke="#000000" points="522.5312,-569.845 514.3708,-576.6021 524.9639,-576.4087 522.5312,-569.845"/>
+<text text-anchor="start" x="555" y="-524" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_outer_1 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_initial -->
+<g id="node7" class="node">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="496" cy="-430" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_state_1 -->
+<g id="node8" class="node">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_state_1</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="509.5,-258 448.5,-258 448.5,-222 509.5,-222 509.5,-258"/>
+<text text-anchor="start" x="459.8236" y="-236.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M460.8333,-223C460.8333,-223 497.1667,-223 497.1667,-223 502.8333,-223 508.5,-228.6667 508.5,-234.3333 508.5,-234.3333 508.5,-245.6667 508.5,-245.6667 508.5,-251.3333 502.8333,-257 497.1667,-257 497.1667,-257 460.8333,-257 460.8333,-257 455.1667,-257 449.5,-251.3333 449.5,-245.6667 449.5,-245.6667 449.5,-234.3333 449.5,-234.3333 449.5,-228.6667 455.1667,-223 460.8333,-223"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_1 -->
+<g id="edge3" class="edge">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_initial&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_1</title>
+<path fill="none" stroke="#000000" d="M493.7289,-424.5742C491.0627,-417.7021 487,-405.4361 487,-394.5 487,-394.5 487,-394.5 487,-275.5 487,-273.1012 486.824,-270.6331 486.5243,-268.1689"/>
+<polygon fill="#000000" stroke="#000000" points="489.9541,-267.4664 484.7289,-258.2497 483.066,-268.7132 489.9541,-267.4664"/>
+<text text-anchor="middle" x="488.3895" y="-332" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_state_2 -->
+<g id="node9" class="node">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_state_2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="493.5,-68 432.5,-68 432.5,-32 493.5,-32 493.5,-68"/>
+<text text-anchor="start" x="443.8236" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M444.8333,-33C444.8333,-33 481.1667,-33 481.1667,-33 486.8333,-33 492.5,-38.6667 492.5,-44.3333 492.5,-44.3333 492.5,-55.6667 492.5,-55.6667 492.5,-61.3333 486.8333,-67 481.1667,-67 481.1667,-67 444.8333,-67 444.8333,-67 439.1667,-67 433.5,-61.3333 433.5,-55.6667 433.5,-55.6667 433.5,-44.3333 433.5,-44.3333 433.5,-38.6667 439.1667,-33 444.8333,-33"/>
+</g>
+<!-- _parallel_orthogonal_1_orthogonal_inner_1_state_1&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_2 -->
+<g id="edge4" class="edge">
+<title>_parallel_orthogonal_1_orthogonal_inner_1_state_1&#45;&gt;_parallel_orthogonal_1_orthogonal_inner_1_state_2</title>
+<path fill="none" stroke="#000000" d="M460.0518,-221.6603C456.565,-216.5449 454,-210.6812 454,-204.5 454,-204.5 454,-204.5 454,-85.5 454,-83.0859 454.198,-80.607 454.5352,-78.1355"/>
+<polygon fill="#000000" stroke="#000000" points="457.9918,-78.7008 456.555,-68.2038 451.1322,-77.3057 457.9918,-78.7008"/>
+<text text-anchor="start" x="454" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_state_2 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_2 -->
+<!-- _parallel_orthogonal_2_initial -->
+<g id="node12" class="node">
+<title>_parallel_orthogonal_2_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="328" cy="-586" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2 -->
+<!-- _parallel_orthogonal_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2 -->
+<g id="edge7" class="edge">
+<title>_parallel_orthogonal_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2</title>
+<path fill="none" stroke="#000000" d="M331.9063,-581.81C338.9375,-574.087 353,-557.7366 353,-550.5 353,-550.5 353,-550.5 353,-503.5 353,-442.6026 250.4095,-432.154 217.2229,-430.3671"/>
+<polygon fill="#000000" stroke="#000000" points="225.436,-428.1732 215,-430.0009 224.298,-435.0801 225.436,-428.1732"/>
+<text text-anchor="middle" x="354.3895" y="-524" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_2_outer_2 -->
+<g id="node13" class="node">
+<title>_parallel_orthogonal_2_outer_2</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="169,-604 107,-604 107,-568 169,-568 169,-604"/>
+<text text-anchor="start" x="117.6582" y="-582.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">outer_2</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M119.3333,-569C119.3333,-569 156.6667,-569 156.6667,-569 162.3333,-569 168,-574.6667 168,-580.3333 168,-580.3333 168,-591.6667 168,-591.6667 168,-597.3333 162.3333,-603 156.6667,-603 156.6667,-603 119.3333,-603 119.3333,-603 113.6667,-603 108,-597.3333 108,-591.6667 108,-591.6667 108,-580.3333 108,-580.3333 108,-574.6667 113.6667,-569 119.3333,-569"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_history_2 -->
+<g id="node18" class="node">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_history_2</title>
+<ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="102" cy="-430" rx="18" ry="18"/>
+<text text-anchor="middle" x="102" y="-426.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
+</g>
+<!-- _parallel_orthogonal_2_outer_2&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_history_2 -->
+<g id="edge11" class="edge">
+<title>_parallel_orthogonal_2_outer_2&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_history_2</title>
+<path fill="none" stroke="#000000" d="M106.8043,-569.6981C105.5254,-569.1119 104.2538,-568.5435 103,-568 81.7825,-558.803 54,-573.625 54,-550.5 54,-550.5 54,-550.5 54,-503.5 54,-482.4788 67.934,-462.7731 80.7871,-449.0676"/>
+<polygon fill="#000000" stroke="#000000" points="83.5277,-451.2763 88.1164,-441.7267 78.574,-446.3305 83.5277,-451.2763"/>
+<text text-anchor="start" x="54" y="-524" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_history_2 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2&#45;&gt;_parallel_orthogonal_2_outer_2 -->
+<g id="edge10" class="edge">
+<title>_parallel_orthogonal_2_orthogonal_inner_2&#45;&gt;_parallel_orthogonal_2_outer_2</title>
+<path fill="none" stroke="#000000" d="M207,-485.9992C207,-491.908 207,-497.8272 207,-503.5 207,-550.5 207,-550.5 207,-550.5 207,-565.5293 193.8959,-574.2013 179.1091,-579.2026"/>
+<polygon fill="#000000" stroke="#000000" points="177.9378,-575.8966 169.2698,-581.989 179.8452,-582.6317 177.9378,-575.8966"/>
+<text text-anchor="start" x="207" y="-524" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_outer_2 &#160;&#160;</text>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_initial -->
+<g id="node15" class="node">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="148" cy="-430" rx="5.5" ry="5.5"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_state_3 -->
+<g id="node16" class="node">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_state_3</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="161.5,-258 100.5,-258 100.5,-222 161.5,-222 161.5,-258"/>
+<text text-anchor="start" x="111.8236" y="-236.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_3</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M112.8333,-223C112.8333,-223 149.1667,-223 149.1667,-223 154.8333,-223 160.5,-228.6667 160.5,-234.3333 160.5,-234.3333 160.5,-245.6667 160.5,-245.6667 160.5,-251.3333 154.8333,-257 149.1667,-257 149.1667,-257 112.8333,-257 112.8333,-257 107.1667,-257 101.5,-251.3333 101.5,-245.6667 101.5,-245.6667 101.5,-234.3333 101.5,-234.3333 101.5,-228.6667 107.1667,-223 112.8333,-223"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_3 -->
+<g id="edge8" class="edge">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_initial&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_3</title>
+<path fill="none" stroke="#000000" d="M145.7289,-424.5742C143.0627,-417.7021 139,-405.4361 139,-394.5 139,-394.5 139,-394.5 139,-275.5 139,-273.1012 138.824,-270.6331 138.5243,-268.1689"/>
+<polygon fill="#000000" stroke="#000000" points="141.9541,-267.4664 136.7289,-258.2497 135.066,-268.7132 141.9541,-267.4664"/>
+<text text-anchor="middle" x="140.3895" y="-332" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_state_4 -->
+<g id="node17" class="node">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_state_4</title>
+<polygon fill="transparent" stroke="transparent" stroke-width="2" points="145.5,-68 84.5,-68 84.5,-32 145.5,-32 145.5,-68"/>
+<text text-anchor="start" x="95.8236" y="-46.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_4</text>
+<path fill="none" stroke="#000000" stroke-width="2" d="M96.8333,-33C96.8333,-33 133.1667,-33 133.1667,-33 138.8333,-33 144.5,-38.6667 144.5,-44.3333 144.5,-44.3333 144.5,-55.6667 144.5,-55.6667 144.5,-61.3333 138.8333,-67 133.1667,-67 133.1667,-67 96.8333,-67 96.8333,-67 91.1667,-67 85.5,-61.3333 85.5,-55.6667 85.5,-55.6667 85.5,-44.3333 85.5,-44.3333 85.5,-38.6667 91.1667,-33 96.8333,-33"/>
+</g>
+<!-- _parallel_orthogonal_2_orthogonal_inner_2_state_3&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_4 -->
+<g id="edge9" class="edge">
+<title>_parallel_orthogonal_2_orthogonal_inner_2_state_3&#45;&gt;_parallel_orthogonal_2_orthogonal_inner_2_state_4</title>
+<path fill="none" stroke="#000000" d="M112.0518,-221.6603C108.565,-216.5449 106,-210.6812 106,-204.5 106,-204.5 106,-204.5 106,-85.5 106,-83.0859 106.198,-80.607 106.5352,-78.1355"/>
+<polygon fill="#000000" stroke="#000000" points="109.9918,-78.7008 108.555,-68.2038 103.1322,-77.3057 109.9918,-78.7008"/>
+<text text-anchor="start" x="106" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">test_input.to_state_4 &#160;&#160;</text>
+</g>
+</g>
+</svg>

+ 24 - 24
test/semantics/priority/01_source_child.svg

@@ -10,66 +10,66 @@
 <title>state transitions</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-307 148,-307 148,4 -4,4"/>
 <g id="clust1" class="cluster">
-<title>cluster_parent</title>
+<title>cluster__parent</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 68,-8 68,-8 74,-8 80,-14 80,-20 80,-20 80,-252 80,-252 80,-258 74,-264 68,-264 68,-264 20,-264 20,-264 14,-264 8,-258 8,-252 8,-252 8,-20 8,-20 8,-14 14,-8 20,-8"/>
 <text text-anchor="start" x="26.9936" y="-245.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parent</text>
 </g>
-<!-- initial_200 -->
+<!-- __initial -->
 <g id="node1" class="node">
-<title>initial_200</title>
+<title>__initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="72" cy="-297.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- parent -->
-<!-- initial_200&#45;&gt;parent -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;parent</title>
+<!-- _parent -->
+<!-- __initial&#45;&gt;_parent -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_parent</title>
 <path fill="none" stroke="#000000" d="M72,-291.9623C72,-287.7143 72,-281.3733 72,-274.1925"/>
 <polygon fill="#000000" stroke="#000000" points="75.5001,-273.9976 72,-263.9976 68.5001,-273.9976 75.5001,-273.9976"/>
 <text text-anchor="middle" x="73.3895" y="-275" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- c -->
+<!-- _c -->
 <g id="node2" class="node">
-<title>c</title>
+<title>_c</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="144,-187 88,-187 88,-151 144,-151 144,-187"/>
 <text text-anchor="start" x="113" y="-165.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M100.3333,-152C100.3333,-152 131.6667,-152 131.6667,-152 137.3333,-152 143,-157.6667 143,-163.3333 143,-163.3333 143,-174.6667 143,-174.6667 143,-180.3333 137.3333,-186 131.6667,-186 131.6667,-186 100.3333,-186 100.3333,-186 94.6667,-186 89,-180.3333 89,-174.6667 89,-174.6667 89,-163.3333 89,-163.3333 89,-157.6667 94.6667,-152 100.3333,-152"/>
 </g>
-<!-- parent&#45;&gt;c -->
-<g id="edge2" class="edge">
-<title>parent&#45;&gt;c</title>
+<!-- _parent&#45;&gt;_c -->
+<g id="edge4" class="edge">
+<title>_parent&#45;&gt;_c</title>
 <path fill="none" stroke="#000000" d="M79.9962,-211.1408C83.9147,-206.5544 88.8475,-200.7808 93.7942,-194.9909"/>
 <polygon fill="#000000" stroke="#000000" points="96.6061,-197.0878 100.4408,-187.2113 91.284,-192.5408 96.6061,-197.0878"/>
 <text text-anchor="middle" x="93.3895" y="-198" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- initial_300 -->
+<!-- _parent_initial -->
 <g id="node4" class="node">
-<title>initial_300</title>
+<title>_parent_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="44" cy="-220.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- a -->
+<!-- _parent_a -->
 <g id="node5" class="node">
-<title>a</title>
+<title>_parent_a</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-134 16,-134 16,-98 72,-98 72,-134"/>
 <text text-anchor="start" x="40.6646" y="-112.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-99C28.3333,-99 59.6667,-99 59.6667,-99 65.3333,-99 71,-104.6667 71,-110.3333 71,-110.3333 71,-121.6667 71,-121.6667 71,-127.3333 65.3333,-133 59.6667,-133 59.6667,-133 28.3333,-133 28.3333,-133 22.6667,-133 17,-127.3333 17,-121.6667 17,-121.6667 17,-110.3333 17,-110.3333 17,-104.6667 22.6667,-99 28.3333,-99"/>
 </g>
-<!-- initial_300&#45;&gt;a -->
-<g id="edge1" class="edge">
-<title>initial_300&#45;&gt;a</title>
+<!-- _parent_initial&#45;&gt;_parent_a -->
+<g id="edge2" class="edge">
+<title>_parent_initial&#45;&gt;_parent_a</title>
 <path fill="none" stroke="#000000" d="M44,-214.8816C44,-201.8087 44,-168.6145 44,-144.2784"/>
 <polygon fill="#000000" stroke="#000000" points="47.5001,-144.1502 44,-134.1503 40.5001,-144.1503 47.5001,-144.1502"/>
 <text text-anchor="middle" x="45.3895" y="-166" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- b -->
+<!-- _parent_b -->
 <g id="node6" class="node">
-<title>b</title>
+<title>_parent_b</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-52 16,-52 16,-16 72,-16 72,-52"/>
 <text text-anchor="start" x="40.6646" y="-30.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-17C28.3333,-17 59.6667,-17 59.6667,-17 65.3333,-17 71,-22.6667 71,-28.3333 71,-28.3333 71,-39.6667 71,-39.6667 71,-45.3333 65.3333,-51 59.6667,-51 59.6667,-51 28.3333,-51 28.3333,-51 22.6667,-51 17,-45.3333 17,-39.6667 17,-39.6667 17,-28.3333 17,-28.3333 17,-22.6667 22.6667,-17 28.3333,-17"/>
 </g>
-<!-- a&#45;&gt;b -->
-<g id="edge4" class="edge">
-<title>a&#45;&gt;b</title>
+<!-- _parent_a&#45;&gt;_parent_b -->
+<g id="edge3" class="edge">
+<title>_parent_a&#45;&gt;_parent_b</title>
 <path fill="none" stroke="#000000" d="M44,-97.8015C44,-87.3976 44,-74.1215 44,-62.3768"/>
 <polygon fill="#000000" stroke="#000000" points="47.5001,-62.1476 44,-52.1476 40.5001,-62.1476 47.5001,-62.1476"/>
 <text text-anchor="middle" x="45.3895" y="-72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>

+ 24 - 24
test/semantics/priority/00_source_parent.svg

@@ -10,66 +10,66 @@
 <title>state transitions</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-307 148,-307 148,4 -4,4"/>
 <g id="clust1" class="cluster">
-<title>cluster_parent</title>
+<title>cluster__parent</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 68,-8 68,-8 74,-8 80,-14 80,-20 80,-20 80,-252 80,-252 80,-258 74,-264 68,-264 68,-264 20,-264 20,-264 14,-264 8,-258 8,-252 8,-252 8,-20 8,-20 8,-14 14,-8 20,-8"/>
 <text text-anchor="start" x="26.9936" y="-245.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">parent</text>
 </g>
-<!-- initial_200 -->
+<!-- __initial -->
 <g id="node1" class="node">
-<title>initial_200</title>
+<title>__initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="72" cy="-297.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- parent -->
-<!-- initial_200&#45;&gt;parent -->
-<g id="edge3" class="edge">
-<title>initial_200&#45;&gt;parent</title>
+<!-- _parent -->
+<!-- __initial&#45;&gt;_parent -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_parent</title>
 <path fill="none" stroke="#000000" d="M72,-291.9623C72,-287.7143 72,-281.3733 72,-274.1925"/>
 <polygon fill="#000000" stroke="#000000" points="75.5001,-273.9976 72,-263.9976 68.5001,-273.9976 75.5001,-273.9976"/>
 <text text-anchor="middle" x="73.3895" y="-275" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- c -->
+<!-- _c -->
 <g id="node2" class="node">
-<title>c</title>
+<title>_c</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="144,-187 88,-187 88,-151 144,-151 144,-187"/>
 <text text-anchor="start" x="113" y="-165.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">c</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M100.3333,-152C100.3333,-152 131.6667,-152 131.6667,-152 137.3333,-152 143,-157.6667 143,-163.3333 143,-163.3333 143,-174.6667 143,-174.6667 143,-180.3333 137.3333,-186 131.6667,-186 131.6667,-186 100.3333,-186 100.3333,-186 94.6667,-186 89,-180.3333 89,-174.6667 89,-174.6667 89,-163.3333 89,-163.3333 89,-157.6667 94.6667,-152 100.3333,-152"/>
 </g>
-<!-- parent&#45;&gt;c -->
-<g id="edge2" class="edge">
-<title>parent&#45;&gt;c</title>
+<!-- _parent&#45;&gt;_c -->
+<g id="edge4" class="edge">
+<title>_parent&#45;&gt;_c</title>
 <path fill="none" stroke="#000000" d="M79.9962,-211.1408C83.9147,-206.5544 88.8475,-200.7808 93.7942,-194.9909"/>
 <polygon fill="#000000" stroke="#000000" points="96.6061,-197.0878 100.4408,-187.2113 91.284,-192.5408 96.6061,-197.0878"/>
 <text text-anchor="middle" x="93.3895" y="-198" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- initial_300 -->
+<!-- _parent_initial -->
 <g id="node4" class="node">
-<title>initial_300</title>
+<title>_parent_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="44" cy="-220.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- a -->
+<!-- _parent_a -->
 <g id="node5" class="node">
-<title>a</title>
+<title>_parent_a</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-134 16,-134 16,-98 72,-98 72,-134"/>
 <text text-anchor="start" x="40.6646" y="-112.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">a</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-99C28.3333,-99 59.6667,-99 59.6667,-99 65.3333,-99 71,-104.6667 71,-110.3333 71,-110.3333 71,-121.6667 71,-121.6667 71,-127.3333 65.3333,-133 59.6667,-133 59.6667,-133 28.3333,-133 28.3333,-133 22.6667,-133 17,-127.3333 17,-121.6667 17,-121.6667 17,-110.3333 17,-110.3333 17,-104.6667 22.6667,-99 28.3333,-99"/>
 </g>
-<!-- initial_300&#45;&gt;a -->
-<g id="edge1" class="edge">
-<title>initial_300&#45;&gt;a</title>
+<!-- _parent_initial&#45;&gt;_parent_a -->
+<g id="edge2" class="edge">
+<title>_parent_initial&#45;&gt;_parent_a</title>
 <path fill="none" stroke="#000000" d="M44,-214.8816C44,-201.8087 44,-168.6145 44,-144.2784"/>
 <polygon fill="#000000" stroke="#000000" points="47.5001,-144.1502 44,-134.1503 40.5001,-144.1503 47.5001,-144.1502"/>
 <text text-anchor="middle" x="45.3895" y="-166" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- b -->
+<!-- _parent_b -->
 <g id="node6" class="node">
-<title>b</title>
+<title>_parent_b</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-52 16,-52 16,-16 72,-16 72,-52"/>
 <text text-anchor="start" x="40.6646" y="-30.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">b</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-17C28.3333,-17 59.6667,-17 59.6667,-17 65.3333,-17 71,-22.6667 71,-28.3333 71,-28.3333 71,-39.6667 71,-39.6667 71,-45.3333 65.3333,-51 59.6667,-51 59.6667,-51 28.3333,-51 28.3333,-51 22.6667,-51 17,-45.3333 17,-39.6667 17,-39.6667 17,-28.3333 17,-28.3333 17,-22.6667 22.6667,-17 28.3333,-17"/>
 </g>
-<!-- a&#45;&gt;b -->
-<g id="edge4" class="edge">
-<title>a&#45;&gt;b</title>
+<!-- _parent_a&#45;&gt;_parent_b -->
+<g id="edge3" class="edge">
+<title>_parent_a&#45;&gt;_parent_b</title>
 <path fill="none" stroke="#000000" d="M44,-97.8015C44,-87.3976 44,-74.1215 44,-62.3768"/>
 <polygon fill="#000000" stroke="#000000" points="47.5001,-62.1476 44,-52.1476 40.5001,-62.1476 47.5001,-62.1476"/>
 <text text-anchor="middle" x="45.3895" y="-72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>

+ 42 - 30
test/semantics/priority/10_source_parent_history.svg

@@ -4,62 +4,74 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: state transitions Pages: 1 -->
-<svg width="154pt" height="245pt"
- viewBox="0.00 0.00 154.00 245.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 241)">
+<svg width="154pt" height="276pt"
+ viewBox="0.00 0.00 154.00 276.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 272)">
 <title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-241 150,-241 150,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-272 150,-272 150,4 -4,4"/>
 <g id="clust1" class="cluster">
-<title>cluster_main</title>
+<title>cluster__main</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 126,-8 126,-8 132,-8 138,-14 138,-20 138,-20 138,-217 138,-217 138,-223 132,-229 126,-229 126,-229 20,-229 20,-229 14,-229 8,-223 8,-217 8,-217 8,-20 8,-20 8,-14 14,-8 20,-8"/>
 <text text-anchor="start" x="60.5004" y="-210.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">main</text>
 </g>
-<!-- main -->
-<!-- history -->
-<g id="node5" class="node">
-<title>history</title>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="106" cy="-262.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _main -->
+<!-- __initial&#45;&gt;_main -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_main</title>
+<path fill="none" stroke="#000000" d="M106,-256.9623C106,-252.7143 106,-246.3733 106,-239.1925"/>
+<polygon fill="#000000" stroke="#000000" points="109.5001,-238.9976 106,-228.9976 102.5001,-238.9976 109.5001,-238.9976"/>
+<text text-anchor="middle" x="107.3895" y="-240" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _main_history -->
+<g id="node6" class="node">
+<title>_main_history</title>
 <ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="112" cy="-116" rx="18" ry="18"/>
 <text text-anchor="middle" x="112" y="-112.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
 </g>
-<!-- main&#45;&gt;history -->
-<g id="edge2" class="edge">
-<title>main&#45;&gt;history</title>
-<path fill="none" stroke="#000000" d="M112,-185.4496C112,-184.2828 112,-163.0617 112,-144.3822"/>
-<polygon fill="#000000" stroke="#000000" points="115.5001,-144.1298 112,-134.1299 108.5001,-144.1299 115.5001,-144.1298"/>
-<text text-anchor="start" x="112" y="-154" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<!-- _main&#45;&gt;_main_history -->
+<g id="edge4" class="edge">
+<title>_main&#45;&gt;_main_history</title>
+<path fill="none" stroke="#000000" d="M106.0043,-185.4496C106.1055,-184.2774 107.9542,-162.8638 109.5722,-144.1218"/>
+<polygon fill="#000000" stroke="#000000" points="113.0617,-144.3939 110.4348,-134.1299 106.0876,-143.7917 113.0617,-144.3939"/>
+<text text-anchor="start" x="108" y="-154" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
-<!-- initial_300 -->
-<g id="node2" class="node">
-<title>initial_300</title>
+<!-- _main_initial -->
+<g id="node3" class="node">
+<title>_main_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="44" cy="-185.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- A -->
-<g id="node3" class="node">
-<title>A</title>
+<!-- _main_A -->
+<g id="node4" class="node">
+<title>_main_A</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-134 16,-134 16,-98 72,-98 72,-134"/>
 <text text-anchor="start" x="39.9986" y="-112.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">A</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-99C28.3333,-99 59.6667,-99 59.6667,-99 65.3333,-99 71,-104.6667 71,-110.3333 71,-110.3333 71,-121.6667 71,-121.6667 71,-127.3333 65.3333,-133 59.6667,-133 59.6667,-133 28.3333,-133 28.3333,-133 22.6667,-133 17,-127.3333 17,-121.6667 17,-121.6667 17,-110.3333 17,-110.3333 17,-104.6667 22.6667,-99 28.3333,-99"/>
 </g>
-<!-- initial_300&#45;&gt;A -->
-<g id="edge1" class="edge">
-<title>initial_300&#45;&gt;A</title>
+<!-- _main_initial&#45;&gt;_main_A -->
+<g id="edge2" class="edge">
+<title>_main_initial&#45;&gt;_main_A</title>
 <path fill="none" stroke="#000000" d="M44,-179.5745C44,-171.7003 44,-157.2498 44,-144.1135"/>
 <polygon fill="#000000" stroke="#000000" points="47.5001,-144.0109 44,-134.011 40.5001,-144.011 47.5001,-144.0109"/>
 <text text-anchor="middle" x="45.3895" y="-154" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- B -->
-<g id="node4" class="node">
-<title>B</title>
+<!-- _main_B -->
+<g id="node5" class="node">
+<title>_main_B</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-52 16,-52 16,-16 72,-16 72,-52"/>
 <text text-anchor="start" x="39.9986" y="-30.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">B</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-17C28.3333,-17 59.6667,-17 59.6667,-17 65.3333,-17 71,-22.6667 71,-28.3333 71,-28.3333 71,-39.6667 71,-39.6667 71,-45.3333 65.3333,-51 59.6667,-51 59.6667,-51 28.3333,-51 28.3333,-51 22.6667,-51 17,-45.3333 17,-39.6667 17,-39.6667 17,-28.3333 17,-28.3333 17,-22.6667 22.6667,-17 28.3333,-17"/>
 </g>
-<!-- A&#45;&gt;B -->
+<!-- _main_A&#45;&gt;_main_B -->
 <g id="edge3" class="edge">
-<title>A&#45;&gt;B</title>
+<title>_main_A&#45;&gt;_main_B</title>
 <path fill="none" stroke="#000000" d="M44,-97.8015C44,-87.3976 44,-74.1215 44,-62.3768"/>
 <polygon fill="#000000" stroke="#000000" points="47.5001,-62.1476 44,-52.1476 40.5001,-62.1476 47.5001,-62.1476"/>
-<text text-anchor="start" x="44" y="-72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<text text-anchor="start" x="44" y="-72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
 </g>
 </svg>

+ 42 - 30
test/semantics/priority/11_source_child_history.svg

@@ -4,62 +4,74 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: state transitions Pages: 1 -->
-<svg width="154pt" height="245pt"
- viewBox="0.00 0.00 154.00 245.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 241)">
+<svg width="154pt" height="276pt"
+ viewBox="0.00 0.00 154.00 276.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 272)">
 <title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-241 150,-241 150,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-272 150,-272 150,4 -4,4"/>
 <g id="clust1" class="cluster">
-<title>cluster_main</title>
+<title>cluster__main</title>
 <path fill="none" stroke="#000000" stroke-width="2" d="M20,-8C20,-8 126,-8 126,-8 132,-8 138,-14 138,-20 138,-20 138,-217 138,-217 138,-223 132,-229 126,-229 126,-229 20,-229 20,-229 14,-229 8,-223 8,-217 8,-217 8,-20 8,-20 8,-14 14,-8 20,-8"/>
 <text text-anchor="start" x="60.5004" y="-210.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">main</text>
 </g>
-<!-- main -->
-<!-- history -->
-<g id="node5" class="node">
-<title>history</title>
+<!-- __initial -->
+<g id="node1" class="node">
+<title>__initial</title>
+<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="106" cy="-262.5" rx="5.5" ry="5.5"/>
+</g>
+<!-- _main -->
+<!-- __initial&#45;&gt;_main -->
+<g id="edge1" class="edge">
+<title>__initial&#45;&gt;_main</title>
+<path fill="none" stroke="#000000" d="M106,-256.9623C106,-252.7143 106,-246.3733 106,-239.1925"/>
+<polygon fill="#000000" stroke="#000000" points="109.5001,-238.9976 106,-228.9976 102.5001,-238.9976 109.5001,-238.9976"/>
+<text text-anchor="middle" x="107.3895" y="-240" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+</g>
+<!-- _main_history -->
+<g id="node6" class="node">
+<title>_main_history</title>
 <ellipse fill="transparent" stroke="#000000" stroke-width="2" cx="112" cy="-116" rx="18" ry="18"/>
 <text text-anchor="middle" x="112" y="-112.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">H</text>
 </g>
-<!-- main&#45;&gt;history -->
-<g id="edge2" class="edge">
-<title>main&#45;&gt;history</title>
-<path fill="none" stroke="#000000" d="M112,-185.4496C112,-184.2828 112,-163.0617 112,-144.3822"/>
-<polygon fill="#000000" stroke="#000000" points="115.5001,-144.1298 112,-134.1299 108.5001,-144.1299 115.5001,-144.1298"/>
-<text text-anchor="start" x="112" y="-154" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<!-- _main&#45;&gt;_main_history -->
+<g id="edge4" class="edge">
+<title>_main&#45;&gt;_main_history</title>
+<path fill="none" stroke="#000000" d="M106.0043,-185.4496C106.1055,-184.2774 107.9542,-162.8638 109.5722,-144.1218"/>
+<polygon fill="#000000" stroke="#000000" points="113.0617,-144.3939 110.4348,-134.1299 106.0876,-143.7917 113.0617,-144.3939"/>
+<text text-anchor="start" x="108" y="-154" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
-<!-- initial_300 -->
-<g id="node2" class="node">
-<title>initial_300</title>
+<!-- _main_initial -->
+<g id="node3" class="node">
+<title>_main_initial</title>
 <ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="44" cy="-185.5" rx="5.5" ry="5.5"/>
 </g>
-<!-- A -->
-<g id="node3" class="node">
-<title>A</title>
+<!-- _main_A -->
+<g id="node4" class="node">
+<title>_main_A</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-134 16,-134 16,-98 72,-98 72,-134"/>
 <text text-anchor="start" x="39.9986" y="-112.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">A</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-99C28.3333,-99 59.6667,-99 59.6667,-99 65.3333,-99 71,-104.6667 71,-110.3333 71,-110.3333 71,-121.6667 71,-121.6667 71,-127.3333 65.3333,-133 59.6667,-133 59.6667,-133 28.3333,-133 28.3333,-133 22.6667,-133 17,-127.3333 17,-121.6667 17,-121.6667 17,-110.3333 17,-110.3333 17,-104.6667 22.6667,-99 28.3333,-99"/>
 </g>
-<!-- initial_300&#45;&gt;A -->
-<g id="edge1" class="edge">
-<title>initial_300&#45;&gt;A</title>
+<!-- _main_initial&#45;&gt;_main_A -->
+<g id="edge2" class="edge">
+<title>_main_initial&#45;&gt;_main_A</title>
 <path fill="none" stroke="#000000" d="M44,-179.5745C44,-171.7003 44,-157.2498 44,-144.1135"/>
 <polygon fill="#000000" stroke="#000000" points="47.5001,-144.0109 44,-134.011 40.5001,-144.011 47.5001,-144.0109"/>
 <text text-anchor="middle" x="45.3895" y="-154" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </g>
-<!-- B -->
-<g id="node4" class="node">
-<title>B</title>
+<!-- _main_B -->
+<g id="node5" class="node">
+<title>_main_B</title>
 <polygon fill="transparent" stroke="transparent" stroke-width="2" points="72,-52 16,-52 16,-16 72,-16 72,-52"/>
 <text text-anchor="start" x="39.9986" y="-30.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">B</text>
 <path fill="none" stroke="#000000" stroke-width="2" d="M28.3333,-17C28.3333,-17 59.6667,-17 59.6667,-17 65.3333,-17 71,-22.6667 71,-28.3333 71,-28.3333 71,-39.6667 71,-39.6667 71,-45.3333 65.3333,-51 59.6667,-51 59.6667,-51 28.3333,-51 28.3333,-51 22.6667,-51 17,-45.3333 17,-39.6667 17,-39.6667 17,-28.3333 17,-28.3333 17,-22.6667 22.6667,-17 28.3333,-17"/>
 </g>
-<!-- A&#45;&gt;B -->
+<!-- _main_A&#45;&gt;_main_B -->
 <g id="edge3" class="edge">
-<title>A&#45;&gt;B</title>
+<title>_main_A&#45;&gt;_main_B</title>
 <path fill="none" stroke="#000000" d="M44,-97.8015C44,-87.3976 44,-74.1215 44,-62.3768"/>
 <polygon fill="#000000" stroke="#000000" points="47.5001,-62.1476 44,-52.1476 40.5001,-62.1476 47.5001,-62.1476"/>
-<text text-anchor="start" x="44" y="-72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">e &#160;&#160;</text>
+<text text-anchor="start" x="44" y="-72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">in.e &#160;&#160;</text>
 </g>
 </g>
 </svg>

+ 0 - 135
test/test_framework.js

@@ -1,135 +0,0 @@
-function InputEvent(name, port, parameters, time_offset) {
-	this.name = name;
-	this.port = port;
-	this.parameters = parameters;
-	this.time_offset = time_offset;
-}
-
-TestFramework = {
-	Results: function() {
-		this.start_time = (new Date()).getTime();
-		this.num_passed = 0;
-		this.num_total = 0;
-		this.num_skipped = 0;
-	},
-	LogResults: function(log, results) {
-		var time = ((new Date()).getTime() - results.start_time);
-		log(results.num_passed + " out of " + results.num_total + " tests passed, " + results.num_skipped + " skipped.");
-		log("tests took " + time + " ms");
-	},
-	RunAll: function(tests) {
-		var run_single_test = (function(log) {
-			return function(name, run_next_callback, results) {
-				if (!window[name]) {
-					log("skipping test \"" + name + "\"");
-					results.num_skipped++;
-					if (run_next_callback) {
-						run_next_callback(results);
-					} else {
-						TestFramework.LogResults(log, results);
-					}
-					return;
-				} else {
-					// log("initializing test \"" + name + "\"");
-				}
-				var controller = new (window[name].Controller)(new JsEventLoop());
-				var listener = controller.addOutputListener("test_output");
-				var inputs = window[name].Test.prototype.input_events;
-				var expected = window[name].Test.prototype.expected_events;
-				if (expected === undefined) expected = new Array();
-				var expected_flattened = new Array();
-				for (var slot in expected) {
-					if (!expected.hasOwnProperty(slot)) continue;
-					for (var event in expected[slot]) {
-						if (!expected[slot].hasOwnProperty(event)) continue;
-							expected_flattened.push(expected[slot][event])
-					}
-				}
-				var check_output = (function(log, test_name, listener, expected, run_next_callback, results) {
-					return function() {
-						// log("checking output...");
-						var passed = true;
-
-						if (listener.queue.length !== expected.length) {
-							log("error: output listener queue length (" + listener.queue.length + ") differs from expected length (" + expected.length + "). Expected: " + JSON.stringify(expected) + ", got: " + JSON.stringify(listener.queue));
-							passed = false;
-						} else {
-							// iterate over expected output events
-							for (var e in expected) {
-								if (!expected.hasOwnProperty(e)) continue;
-
-								var actual_name = listener.queue[e].name;
-								var actual_port = listener.queue[e].port;
-								var actual_parameters = listener.queue[e].parameters;
-								var expected_name = expected[e].name;
-								var expected_port = expected[e].port;
-								var expected_parameters = expected[e].parameters;
-
-								if (actual_name !== expected_name) {
-									log("error: expected_name["+e+"]=\"" + expected_name + "\", actual_name["+e+"]=\"" + actual_name + "\"");
-									passed = false;
-								}
-								if (actual_port !== expected_port) {
-									log("error: expected_port["+e+"]=\"" + expected_port + "\", actual_port["+e+"]=\"" + actual_port + "\"");
-									passed = false;
-								}
-
-								if (actual_parameters.length !== expected_parameters.length) {
-									log("error: event ["+e+"] \"" + actual_name + "\": number of actual parameters (" + actual_parameters.length + ") doesn't match expected (" + expected_parameters.length + ")");
-									passed = false;
-								} else {
-									// iterate over expected parameters
-									for (var p in expected_parameters) {
-										if (!expected_parameters.hasOwnProperty(p)) continue;
-										var actual_parameter = actual_parameters[p];
-										var expected_parameter = expected_parameters[p];
-										if (actual_parameter !== expected_parameter) {
-											log("error: event \"" + actual_name + "\": expected_parameter=\"" + expected_parameter + "\", actual_parameter=\"" + actual_parameter + "\"");
-											passed = false;
-										}
-									}
-								}
-							}
-						}
-						results.num_total++;
-						if (passed) {
-							log("test \"" + test_name + "\" passed.");
-							results.num_passed++;
-						} else {
-							log("test \"" + test_name + "\" failed.");
-						}
-
-						// run next test
-						if (run_next_callback)
-							run_next_callback(results);
-						else {
-							TestFramework.LogResults(log, results);
-						}
-					};
-				})(log, name, listener, expected_flattened, run_next_callback, results);
-
-				for (var i in inputs) {
-					if (!inputs.hasOwnProperty(i)) continue;
-					ii = inputs[i]
-					controller.addInput(new Event(ii.name, ii.port, ii.parameters), ii.time_offset);
-				}
-
-				// log("starting controller...");
-				controller.finished_callback = check_output;
-				controller.start();
-			};
-		})(log);
-
-		var last = null;
-		for (var t in tests) {
-			if (!tests.hasOwnProperty(t)) continue;
-			last = (function(name, callback) {
-					return function(results) {
-						run_single_test(name, callback, results);
-					};
-				})(tests[t], last);
-		}
-		var results = new (this.Results)();
-		last(results);
-	}
-};

+ 0 - 67
test/wontfix/original_semantics/guard.svg

@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: state transitions Pages: 1 -->
-<svg width="69pt" height="211pt"
- viewBox="0.00 0.00 69.00 211.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 207)">
-<title>state transitions</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-207 65,-207 65,4 -4,4"/>
-<!-- initial_201 -->
-<g id="node1" class="node">
-<title>initial_201</title>
-<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="30.5" cy="-197.5" rx="5.5" ry="5.5"/>
-</g>
-<!-- state_1 -->
-<g id="node2" class="node">
-<title>state_1</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="61,-164 0,-164 0,-128 61,-128 61,-164"/>
-<text text-anchor="start" x="11.3236" y="-142.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_1</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-129C12.3333,-129 48.6667,-129 48.6667,-129 54.3333,-129 60,-134.6667 60,-140.3333 60,-140.3333 60,-151.6667 60,-151.6667 60,-157.3333 54.3333,-163 48.6667,-163 48.6667,-163 12.3333,-163 12.3333,-163 6.6667,-163 1,-157.3333 1,-151.6667 1,-151.6667 1,-140.3333 1,-140.3333 1,-134.6667 6.6667,-129 12.3333,-129"/>
-</g>
-<!-- initial_201&#45;&gt;state_1 -->
-<g id="edge4" class="edge">
-<title>initial_201&#45;&gt;state_1</title>
-<path fill="none" stroke="#000000" d="M30.5,-191.9886C30.5,-187.6293 30.5,-181.1793 30.5,-174.4801"/>
-<polygon fill="#000000" stroke="#000000" points="34.0001,-174.0122 30.5,-164.0122 27.0001,-174.0122 34.0001,-174.0122"/>
-<text text-anchor="middle" x="31.8895" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_2 -->
-<g id="node3" class="node">
-<title>state_2</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="61,-100 0,-100 0,-64 61,-64 61,-100"/>
-<text text-anchor="start" x="11.3236" y="-78.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_2</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-65C12.3333,-65 48.6667,-65 48.6667,-65 54.3333,-65 60,-70.6667 60,-76.3333 60,-76.3333 60,-87.6667 60,-87.6667 60,-93.3333 54.3333,-99 48.6667,-99 48.6667,-99 12.3333,-99 12.3333,-99 6.6667,-99 1,-93.3333 1,-87.6667 1,-87.6667 1,-76.3333 1,-76.3333 1,-70.6667 6.6667,-65 12.3333,-65"/>
-</g>
-<!-- state_1&#45;&gt;state_2 -->
-<g id="edge3" class="edge">
-<title>state_1&#45;&gt;state_2</title>
-<path fill="none" stroke="#000000" d="M30.5,-127.8314C30.5,-122.4728 30.5,-116.4735 30.5,-110.6262"/>
-<polygon fill="#000000" stroke="#000000" points="34.0001,-110.4363 30.5,-100.4363 27.0001,-110.4363 34.0001,-110.4363"/>
-<text text-anchor="middle" x="31.8895" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_2&#45;&gt;state_1 -->
-<g id="edge1" class="edge">
-<title>state_2&#45;&gt;state_1</title>
-<path fill="none" stroke="#000000" d="M24.3746,-100.0316C23.6904,-102.6767 23.1032,-105.3893 22.721,-108 22.214,-111.4631 22.0398,-113.2762 22.6656,-117.857"/>
-<polygon fill="#000000" stroke="#000000" points="19.2569,-118.6916 24.3746,-127.9684 26.159,-117.5249 19.2569,-118.6916"/>
-<text text-anchor="middle" x="23.8895" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-<!-- state_3 -->
-<g id="node4" class="node">
-<title>state_3</title>
-<polygon fill="transparent" stroke="transparent" stroke-width="2" points="61,-36 0,-36 0,0 61,0 61,-36"/>
-<text text-anchor="start" x="11.3236" y="-14.2" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#000000">state_3</text>
-<path fill="none" stroke="#000000" stroke-width="2" d="M12.3333,-1C12.3333,-1 48.6667,-1 48.6667,-1 54.3333,-1 60,-6.6667 60,-12.3333 60,-12.3333 60,-23.6667 60,-23.6667 60,-29.3333 54.3333,-35 48.6667,-35 48.6667,-35 12.3333,-35 12.3333,-35 6.6667,-35 1,-29.3333 1,-23.6667 1,-23.6667 1,-12.3333 1,-12.3333 1,-6.6667 6.6667,-1 12.3333,-1"/>
-</g>
-<!-- state_2&#45;&gt;state_3 -->
-<g id="edge2" class="edge">
-<title>state_2&#45;&gt;state_3</title>
-<path fill="none" stroke="#000000" d="M30.5,-63.8314C30.5,-58.4728 30.5,-52.4735 30.5,-46.6262"/>
-<polygon fill="#000000" stroke="#000000" points="34.0001,-46.4363 30.5,-36.4363 27.0001,-46.4363 34.0001,-46.4363"/>
-<text text-anchor="middle" x="31.8895" y="-47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-</g>
-</g>
-</svg>