summaryrefslogtreecommitdiff
path: root/chapter11/docs
diff options
context:
space:
mode:
Diffstat (limited to 'chapter11/docs')
-rw-r--r--chapter11/docs/11-grammar.md128
-rw-r--r--chapter11/docs/Makefile12
-rw-r--r--chapter11/docs/build-graphs.sh9
-rw-r--r--chapter11/docs/graph1.gv76
-rw-r--r--chapter11/docs/graph1.svg285
-rw-r--r--chapter11/docs/graph2.gv80
-rw-r--r--chapter11/docs/graph2.svg309
-rw-r--r--chapter11/docs/graph3-snip.jpgbin0 -> 19681 bytes
-rw-r--r--chapter11/docs/graph3.gv81
-rw-r--r--chapter11/docs/graph3.svg316
-rw-r--r--chapter11/docs/graph4.gv107
-rw-r--r--chapter11/docs/graph4.svg408
-rw-r--r--chapter11/docs/graph5.gv113
-rw-r--r--chapter11/docs/graph5.svg452
-rw-r--r--chapter11/docs/graph6.gv113
-rw-r--r--chapter11/docs/graph6.svg437
-rw-r--r--chapter11/docs/graph7.gv23
-rw-r--r--chapter11/docs/graph7.svg54
-rw-r--r--chapter11/docs/graph8.gv45
-rw-r--r--chapter11/docs/graph8.svg115
20 files changed, 3163 insertions, 0 deletions
diff --git a/chapter11/docs/11-grammar.md b/chapter11/docs/11-grammar.md
new file mode 100644
index 00000000..0aaf0619
--- /dev/null
+++ b/chapter11/docs/11-grammar.md
@@ -0,0 +1,128 @@
+# Grammar for Chapter 11
+
+```antlrv4
+grammar SimpleLanguage;
+
+program
+ : statement+ EOF
+ ;
+
+statement
+ : returnStatement
+ | structDeclaration
+ | declStatement
+ | blockStatment
+ | expressionStatement
+ | ifStatement
+ | whileStatement
+ | breakStatement
+ | continueStatment
+ | metaStatement
+ ;
+
+field
+ : 'int' IDENTIFIER ';'
+ ;
+
+fields
+ : field+
+ ;
+
+structDeclaration
+ : 'struct' IDENTIFIER '{' fields '}'
+ ;
+
+whileStatement
+ : 'while' '(' expression ')' statement
+ ;
+
+breakStatement
+ : 'break' ';'
+ ;
+
+continueStatement
+ : 'continue' ';'
+ ;
+
+ifStatement
+ : 'if' '(' expression ')' statement ('else' statement)?
+ ;
+
+metaStatement
+ : '#showGraph' ';'
+ ;
+
+expressionStatement
+ : IDENTIFIER '=' expression ';'
+ | fieldExpression '=' expression ';'
+ ;
+
+blockStatement
+ : '{' statement+ '}'
+ ;
+
+structName
+ : IDENTIFIER
+ ;
+
+declStatement
+ : 'int' IDENTIFIER '=' expression ';'
+ | structName IDENTIFIER ('?')? '=' expression ';'
+ ;
+
+returnStatement
+ : 'return' expression ';'
+ ;
+
+expression
+ : comparisonExpression
+ ;
+
+comparisonExpression
+ : additiveExpression (('==' | '!='| '>'| '<'| '>='| '<=') additiveExpression)*
+ ;
+
+additiveExpression
+ : multiplicativeExpression (('+' | '-') multiplicativeExpression)*
+ ;
+
+multiplicativeExpression
+ : unaryExpression (('*' | '/') unaryExpression)*
+ ;
+
+unaryExpression
+ : ('-') unaryExpression
+ | primaryExpression
+ ;
+
+newExpression
+ : 'new' IDENTIFIER
+ ;
+
+fieldExpression
+ : primaryExpresson '.' IDENTIFIER
+ ;
+
+primaryExpression
+ : IDENTIFIER
+ | INTEGER_LITERAL
+ | 'true'
+ | 'false'
+ | 'null'
+ | newExpression
+ | '(' expression ')'
+ | fieldExpression
+ ;
+
+INTEGER_LITERAL
+ : [1-9][0-9]*
+ | [0]
+ ;
+
+IDENTIFIER
+ : NON_DIGIT (NON_DIGIT | DIGIT)*
+ ;
+
+NON_DIGIT: [a-zA-Z_];
+DEC_DIGIT: [0-9];
+``` \ No newline at end of file
diff --git a/chapter11/docs/Makefile b/chapter11/docs/Makefile
new file mode 100644
index 00000000..12659b8f
--- /dev/null
+++ b/chapter11/docs/Makefile
@@ -0,0 +1,12 @@
+GV := $(wildcard *.gv)
+SVG := $(patsubst %.gv,%.svg,$(GV))
+
+.PHONY: all
+all: $(SVG)
+
+%.svg: %.gv
+ dot -Tsvg $< > $@
+
+.PHONY: clean
+clean:
+ @rm -f $(SVG)
diff --git a/chapter11/docs/build-graphs.sh b/chapter11/docs/build-graphs.sh
new file mode 100644
index 00000000..839a36ba
--- /dev/null
+++ b/chapter11/docs/build-graphs.sh
@@ -0,0 +1,9 @@
+dot -Tsvg graph1.gv > graph1.svg
+dot -Tsvg graph2.gv > graph2.svg
+dot -Tsvg graph3.gv > graph3.svg
+dot -Tsvg graph4.gv > graph4.svg
+dot -Tsvg graph5.gv > graph5.svg
+dot -Tsvg graph6.gv > graph6.svg
+dot -Tsvg graph7.gv > graph7.svg
+dot -Tsvg graph8.gv > graph8.svg
+
diff --git a/chapter11/docs/graph1.gv b/chapter11/docs/graph1.gv
new file mode 100644
index 00000000..97815f63
--- /dev/null
+++ b/chapter11/docs/graph1.gv
@@ -0,0 +1,76 @@
+digraph chapter11 {
+/*
+struct S { int f; }
+S v=new S;
+v.f = 2;
+int i=new S.f;
+i=v.f;
+if (arg) v.f=1;
+return i;
+
+*/
+ rankdir=BT;
+ concentrate="true";
+ compound="true";
+ subgraph cluster_Nodes {
+ Start2 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">Start</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD><TD PORT="p1">arg</TD><TD PORT="p2">$2</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Stop3 [ shape=box style=filled fillcolor=yellow label="Stop" ];
+ Con_4 [ label="#0" ];
+ new9 [ label="new S" ];
+ Con_11 [ label="#2" ];
+ Store12 [ label=".f =" ];
+ new13 [ label="new S" ];
+ Store14 [ label=".f =" ];
+ Load16 [ label=".f" ];
+ If17 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Con_21 [ label="#1" ];
+ Store22 [ label=".f =" ];
+ Region23 [ shape=box style=filled fillcolor=yellow label="Region" ];
+ Phi_224 [ style=filled fillcolor=lightyellow label="&phi;_$2" ];
+ Return25 [ shape=box style=filled fillcolor=yellow label="Return" ];
+ { rank=same; Region23;Phi_224;}
+ }
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Stop3 -> Return25[taillabel=0 color=red];
+ new9 -> Start2:p0[taillabel=0 color=green];
+ Store12 -> Start2:p2[taillabel=1 color=blue];
+ Store12 -> new9[taillabel=2];
+ Store12 -> Con_11[taillabel=3];
+ new13 -> Start2:p0[taillabel=0 color=green];
+ Store14 -> Store12[taillabel=1 color=blue];
+ Store14 -> new13[taillabel=2];
+ Store14 -> Con_4[taillabel=3];
+ Load16 -> Store14[taillabel=1 color=blue];
+ Load16 -> new9[taillabel=2];
+ If17 -> Start2:p0[taillabel=0 color=red];
+ If17 -> Start2:p1[taillabel=1];
+ Store22 -> Store14[taillabel=1 color=blue];
+ Store22 -> new9[taillabel=2];
+ Store22 -> Con_21[taillabel=3];
+ Region23 -> If17:p0[taillabel=1 color=red];
+ Region23 -> If17:p1[taillabel=2 color=red];
+ Phi_224 -> Region23 [style=dotted taillabel=0];
+ Phi_224 -> Store22[taillabel=1 color=blue];
+ Phi_224 -> Store14[taillabel=2 color=blue constraint=false];
+ Return25 -> Region23[taillabel=0 color=red];
+ Return25 -> Load16[taillabel=1];
+ Return25 -> Phi_224[taillabel=2 color=blue];
+} \ No newline at end of file
diff --git a/chapter11/docs/graph1.svg b/chapter11/docs/graph1.svg
new file mode 100644
index 00000000..592db961
--- /dev/null
+++ b/chapter11/docs/graph1.svg
@@ -0,0 +1,285 @@
+<?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.43.0 (0)
+ -->
+<!-- Title: chapter11 Pages: 1 -->
+<svg width="336pt" height="636pt"
+ viewBox="0.00 0.00 336.00 636.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 632)">
+<title>chapter11</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-632 332,-632 332,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_Nodes</title>
+<polygon fill="none" stroke="black" points="8,-8 8,-620 320,-620 320,-8 8,-8"/>
+</g>
+<!-- Start2 -->
+<g id="node1" class="node">
+<title>Start2</title>
+<polygon fill="yellow" stroke="transparent" points="198,-583 198,-608 304,-608 304,-583 198,-583"/>
+<polygon fill="none" stroke="black" points="198,-583 198,-608 304,-608 304,-583 198,-583"/>
+<text text-anchor="start" x="232.5" y="-591.8" font-family="Times,serif" font-size="14.00">Start</text>
+<polygon fill="none" stroke="black" points="198,-552 198,-583 304,-583 304,-552 198,-552"/>
+<polygon fill="yellow" stroke="transparent" points="203,-557 203,-578 243,-578 243,-557 203,-557"/>
+<polygon fill="none" stroke="black" points="203,-557 203,-578 243,-578 243,-557 203,-557"/>
+<text text-anchor="start" x="206" y="-563.8" font-family="Times,serif" font-size="14.00">$ctrl</text>
+<polygon fill="none" stroke="black" points="243,-557 243,-578 274,-578 274,-557 243,-557"/>
+<text text-anchor="start" x="246" y="-563.8" font-family="Times,serif" font-size="14.00">arg</text>
+<polygon fill="none" stroke="black" points="274,-557 274,-578 299,-578 299,-557 274,-557"/>
+<text text-anchor="start" x="277" y="-563.8" font-family="Times,serif" font-size="14.00">$2</text>
+</g>
+<!-- Stop3 -->
+<g id="node2" class="node">
+<title>Stop3</title>
+<polygon fill="yellow" stroke="black" points="210,-52 156,-52 156,-16 210,-16 210,-52"/>
+<text text-anchor="middle" x="183" y="-30.3" font-family="Times,serif" font-size="14.00">Stop</text>
+</g>
+<!-- Return25 -->
+<g id="node15" class="node">
+<title>Return25</title>
+<polygon fill="yellow" stroke="black" points="216,-124 150,-124 150,-88 216,-88 216,-124"/>
+<text text-anchor="middle" x="183" y="-102.3" font-family="Times,serif" font-size="14.00">Return</text>
+</g>
+<!-- Stop3&#45;&gt;Return25 -->
+<g id="edge1" class="edge">
+<title>Stop3&#45;&gt;Return25</title>
+<path fill="none" stroke="red" d="M183,-52.3C183,-60.02 183,-69.29 183,-77.89"/>
+<polygon fill="red" stroke="red" points="179.5,-77.9 183,-87.9 186.5,-77.9 179.5,-77.9"/>
+<text text-anchor="middle" x="180" y="-54.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_4 -->
+<g id="node3" class="node">
+<title>Con_4</title>
+<ellipse fill="none" stroke="black" cx="137" cy="-422" rx="27" ry="18"/>
+<text text-anchor="middle" x="137" y="-418.3" font-family="Times,serif" font-size="14.00">#0</text>
+</g>
+<!-- new9 -->
+<g id="node4" class="node">
+<title>new9</title>
+<ellipse fill="none" stroke="black" cx="151" cy="-494" rx="38.99" ry="18"/>
+<text text-anchor="middle" x="151" y="-490.3" font-family="Times,serif" font-size="14.00">new S</text>
+</g>
+<!-- new9&#45;&gt;Start2 -->
+<g id="edge2" class="edge">
+<title>new9&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="green" d="M155.04,-512.06C160.38,-530.53 171.62,-558.28 191.99,-565.33"/>
+<polygon fill="green" stroke="green" points="191.56,-568.8 202,-567 192.71,-561.9 191.56,-568.8"/>
+<text text-anchor="middle" x="152.04" y="-514.66" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_11 -->
+<g id="node5" class="node">
+<title>Con_11</title>
+<ellipse fill="none" stroke="black" cx="255" cy="-494" rx="27" ry="18"/>
+<text text-anchor="middle" x="255" y="-490.3" font-family="Times,serif" font-size="14.00">#2</text>
+</g>
+<!-- Store12 -->
+<g id="node6" class="node">
+<title>Store12</title>
+<ellipse fill="none" stroke="black" cx="230" cy="-422" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="230" y="-418.3" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store12&#45;&gt;Start2 -->
+<g id="edge3" class="edge">
+<title>Store12&#45;&gt;Start2:p2</title>
+<path fill="none" stroke="blue" d="M222.43,-439.51C215.04,-458.25 206.57,-489.16 219,-512 234.25,-540.04 275.92,-524.64 285.17,-545.89"/>
+<polygon fill="blue" stroke="blue" points="281.77,-546.79 287,-556 288.66,-545.54 281.77,-546.79"/>
+<text text-anchor="middle" x="219.43" y="-442.11" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store12&#45;&gt;new9 -->
+<g id="edge4" class="edge">
+<title>Store12&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M214.01,-437.17C203.14,-446.8 188.53,-459.75 176.11,-470.75"/>
+<polygon fill="black" stroke="black" points="173.5,-468.39 168.33,-477.64 178.14,-473.63 173.5,-468.39"/>
+<text text-anchor="middle" x="211.01" y="-439.77" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store12&#45;&gt;Con_11 -->
+<g id="edge5" class="edge">
+<title>Store12&#45;&gt;Con_11</title>
+<path fill="none" stroke="black" d="M236.05,-439.95C238.91,-447.94 242.38,-457.67 245.57,-466.6"/>
+<polygon fill="black" stroke="black" points="242.34,-467.97 249,-476.21 248.94,-465.62 242.34,-467.97"/>
+<text text-anchor="middle" x="233.05" y="-442.55" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- new13 -->
+<g id="node7" class="node">
+<title>new13</title>
+<ellipse fill="none" stroke="black" cx="55" cy="-494" rx="38.99" ry="18"/>
+<text text-anchor="middle" x="55" y="-490.3" font-family="Times,serif" font-size="14.00">new S</text>
+</g>
+<!-- new13&#45;&gt;Start2 -->
+<g id="edge6" class="edge">
+<title>new13&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="green" d="M72.65,-510.27C97.21,-530 144.07,-562.34 191.81,-566.54"/>
+<polygon fill="green" stroke="green" points="191.85,-570.05 202,-567 192.17,-563.06 191.85,-570.05"/>
+<text text-anchor="middle" x="69.65" y="-512.87" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store14 -->
+<g id="node8" class="node">
+<title>Store14</title>
+<ellipse fill="none" stroke="black" cx="136" cy="-336" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="136" y="-332.3" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store14&#45;&gt;Con_4 -->
+<g id="edge9" class="edge">
+<title>Store14&#45;&gt;Con_4</title>
+<path fill="none" stroke="black" d="M136.21,-354.4C136.34,-365.74 136.52,-380.77 136.67,-393.68"/>
+<polygon fill="black" stroke="black" points="133.18,-393.95 136.8,-403.9 140.18,-393.86 133.18,-393.95"/>
+<text text-anchor="middle" x="133.21" y="-357" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Store14&#45;&gt;Store12 -->
+<g id="edge7" class="edge">
+<title>Store14&#45;&gt;Store12</title>
+<path fill="none" stroke="blue" d="M151.95,-351.25C166.89,-364.6 189.42,-384.73 206.44,-399.94"/>
+<polygon fill="blue" stroke="blue" points="204.5,-402.91 214.29,-406.96 209.17,-397.69 204.5,-402.91"/>
+<text text-anchor="middle" x="148.95" y="-353.85" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store14&#45;&gt;new13 -->
+<g id="edge8" class="edge">
+<title>Store14&#45;&gt;new13</title>
+<path fill="none" stroke="black" d="M127.49,-353.24C120.39,-366.8 110.02,-386.65 101,-404 89.97,-425.23 77.52,-449.33 68.35,-467.1"/>
+<polygon fill="black" stroke="black" points="65.1,-465.77 63.63,-476.26 71.32,-468.97 65.1,-465.77"/>
+<text text-anchor="middle" x="124.49" y="-355.84" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Load16 -->
+<g id="node9" class="node">
+<title>Load16</title>
+<ellipse fill="none" stroke="black" cx="183" cy="-250" rx="27" ry="18"/>
+<text text-anchor="middle" x="183" y="-246.3" font-family="Times,serif" font-size="14.00">.f</text>
+</g>
+<!-- Load16&#45;&gt;new9 -->
+<g id="edge11" class="edge">
+<title>Load16&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M184.02,-268.21C185.58,-301.74 187.07,-378 173,-440 170.94,-449.08 167.45,-458.59 163.85,-467.01"/>
+<polygon fill="black" stroke="black" points="160.59,-465.75 159.66,-476.3 166.96,-468.63 160.59,-465.75"/>
+<text text-anchor="middle" x="181.02" y="-270.81" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Load16&#45;&gt;Store14 -->
+<g id="edge10" class="edge">
+<title>Load16&#45;&gt;Store14</title>
+<path fill="none" stroke="blue" d="M173.94,-267.2C167.18,-279.28 157.81,-296.02 150.08,-309.84"/>
+<polygon fill="blue" stroke="blue" points="146.86,-308.42 145.03,-318.85 152.97,-311.84 146.86,-308.42"/>
+<text text-anchor="middle" x="170.94" y="-269.8" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- If17 -->
+<g id="node10" class="node">
+<title>If17</title>
+<polygon fill="yellow" stroke="transparent" points="210,-339 210,-364 304,-364 304,-339 210,-339"/>
+<polygon fill="none" stroke="black" points="210,-339 210,-364 304,-364 304,-339 210,-339"/>
+<text text-anchor="start" x="251.5" y="-347.8" font-family="Times,serif" font-size="14.00">If</text>
+<polygon fill="none" stroke="black" points="210,-308 210,-339 304,-339 304,-308 210,-308"/>
+<polygon fill="yellow" stroke="transparent" points="215,-313 215,-334 255,-334 255,-313 215,-313"/>
+<polygon fill="none" stroke="black" points="215,-313 215,-334 255,-334 255,-313 215,-313"/>
+<text text-anchor="start" x="218" y="-319.8" font-family="Times,serif" font-size="14.00">True</text>
+<polygon fill="yellow" stroke="transparent" points="255,-313 255,-334 299,-334 299,-313 255,-313"/>
+<polygon fill="none" stroke="black" points="255,-313 255,-334 299,-334 299,-313 255,-313"/>
+<text text-anchor="start" x="258" y="-319.8" font-family="Times,serif" font-size="14.00">False</text>
+</g>
+<!-- If17&#45;&gt;Start2 -->
+<g id="edge12" class="edge">
+<title>If17&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M274.94,-368.3C293.31,-404.87 315.92,-466.19 291,-512 275.75,-540.04 234.08,-524.64 224.83,-545.89"/>
+<polygon fill="red" stroke="red" points="221.34,-545.54 223,-556 228.23,-546.79 221.34,-545.54"/>
+<text text-anchor="middle" x="271.94" y="-370.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_21 -->
+<g id="node11" class="node">
+<title>Con_21</title>
+<ellipse fill="none" stroke="black" cx="43" cy="-336" rx="27" ry="18"/>
+<text text-anchor="middle" x="43" y="-332.3" font-family="Times,serif" font-size="14.00">#1</text>
+</g>
+<!-- Store22 -->
+<g id="node12" class="node">
+<title>Store22</title>
+<ellipse fill="none" stroke="black" cx="99" cy="-250" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="99" y="-246.3" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store22&#45;&gt;new9 -->
+<g id="edge15" class="edge">
+<title>Store22&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M95.12,-268.01C88.19,-302.16 76.55,-380.87 101,-440 105.95,-451.96 114.93,-462.83 123.93,-471.57"/>
+<polygon fill="black" stroke="black" points="121.66,-474.24 131.41,-478.38 126.37,-469.06 121.66,-474.24"/>
+<text text-anchor="middle" x="92.12" y="-270.61" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store22&#45;&gt;Store14 -->
+<g id="edge14" class="edge">
+<title>Store22&#45;&gt;Store14</title>
+<path fill="none" stroke="blue" d="M106.31,-267.6C111.53,-279.45 118.65,-295.62 124.61,-309.15"/>
+<polygon fill="blue" stroke="blue" points="121.47,-310.7 128.71,-318.44 127.88,-307.88 121.47,-310.7"/>
+<text text-anchor="middle" x="103.31" y="-270.2" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store22&#45;&gt;Con_21 -->
+<g id="edge16" class="edge">
+<title>Store22&#45;&gt;Con_21</title>
+<path fill="none" stroke="black" d="M88.47,-266.8C80.25,-279.12 68.7,-296.45 59.3,-310.55"/>
+<polygon fill="black" stroke="black" points="56.12,-309.01 53.49,-319.27 61.95,-312.89 56.12,-309.01"/>
+<text text-anchor="middle" x="85.47" y="-269.4" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Region23 -->
+<g id="node13" class="node">
+<title>Region23</title>
+<polygon fill="yellow" stroke="black" points="268,-196 202,-196 202,-160 268,-160 268,-196"/>
+<text text-anchor="middle" x="235" y="-174.3" font-family="Times,serif" font-size="14.00">Region</text>
+</g>
+<!-- Region23&#45;&gt;If17 -->
+<g id="edge17" class="edge">
+<title>Region23&#45;&gt;If17:p0</title>
+<path fill="none" stroke="red" d="M235,-196.22C235,-219.49 235,-262.58 235,-301.64"/>
+<polygon fill="red" stroke="red" points="231.5,-302 235,-312 238.5,-302 231.5,-302"/>
+<text text-anchor="middle" x="232" y="-198.82" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region23&#45;&gt;If17 -->
+<g id="edge18" class="edge">
+<title>Region23&#45;&gt;If17:p1</title>
+<path fill="none" stroke="red" d="M244.11,-196.1C255.5,-218.96 273.84,-261.33 276.64,-301.77"/>
+<polygon fill="red" stroke="red" points="273.15,-302.13 277,-312 280.14,-301.88 273.15,-302.13"/>
+<text text-anchor="middle" x="241.11" y="-198.7" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_224 -->
+<g id="node14" class="node">
+<title>Phi_224</title>
+<ellipse fill="lightyellow" stroke="black" cx="131" cy="-178" rx="33.29" ry="18"/>
+<text text-anchor="middle" x="131" y="-174.3" font-family="Times,serif" font-size="14.00">φ_$2</text>
+</g>
+<!-- Phi_224&#45;&gt;Store14 -->
+<g id="edge21" class="edge">
+<title>Phi_224&#45;&gt;Store14</title>
+<path fill="none" stroke="blue" d="M159.11,-187.55C179.74,-195.47 206.28,-209.49 219,-232 237.92,-265.48 196.57,-299.24 165.7,-318.58"/>
+<polygon fill="blue" stroke="blue" points="163.69,-315.71 156.94,-323.87 167.31,-321.7 163.69,-315.71"/>
+<text text-anchor="middle" x="162.11" y="-190.15" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_224&#45;&gt;Store22 -->
+<g id="edge20" class="edge">
+<title>Phi_224&#45;&gt;Store22</title>
+<path fill="none" stroke="blue" d="M123.42,-195.59C119.63,-203.87 114.97,-214.08 110.73,-223.34"/>
+<polygon fill="blue" stroke="blue" points="107.5,-221.98 106.53,-232.53 113.87,-224.89 107.5,-221.98"/>
+<text text-anchor="middle" x="120.42" y="-198.19" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_224&#45;&gt;Region23 -->
+<g id="edge19" class="edge">
+<title>Phi_224&#45;&gt;Region23</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M164.31,-178C173.41,-178 182.5,-178 191.6,-178"/>
+<polygon fill="black" stroke="black" points="191.87,-181.5 201.87,-178 191.87,-174.5 191.87,-181.5"/>
+<text text-anchor="middle" x="167.31" y="-171.6" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return25&#45;&gt;Load16 -->
+<g id="edge23" class="edge">
+<title>Return25&#45;&gt;Load16</title>
+<path fill="none" stroke="black" d="M183,-124.13C183,-148.33 183,-192.79 183,-221.61"/>
+<polygon fill="black" stroke="black" points="179.5,-221.81 183,-231.81 186.5,-221.81 179.5,-221.81"/>
+<text text-anchor="middle" x="180" y="-126.73" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Return25&#45;&gt;Region23 -->
+<g id="edge22" class="edge">
+<title>Return25&#45;&gt;Region23</title>
+<path fill="none" stroke="red" d="M195.85,-124.3C202.03,-132.61 209.54,-142.72 216.32,-151.86"/>
+<polygon fill="red" stroke="red" points="213.52,-153.96 222.29,-159.9 219.14,-149.78 213.52,-153.96"/>
+<text text-anchor="middle" x="192.85" y="-126.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return25&#45;&gt;Phi_224 -->
+<g id="edge24" class="edge">
+<title>Return25&#45;&gt;Phi_224</title>
+<path fill="none" stroke="blue" d="M170.15,-124.3C163.79,-132.86 156.01,-143.33 149.07,-152.67"/>
+<polygon fill="blue" stroke="blue" points="146.15,-150.74 142.99,-160.86 151.77,-154.92 146.15,-150.74"/>
+<text text-anchor="middle" x="167.15" y="-126.9" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+</g>
+</svg>
diff --git a/chapter11/docs/graph2.gv b/chapter11/docs/graph2.gv
new file mode 100644
index 00000000..04d02a3f
--- /dev/null
+++ b/chapter11/docs/graph2.gv
@@ -0,0 +1,80 @@
+digraph chapter11 {
+/*
+struct S { int f; }
+S v=new S;
+v.f = 2;
+int i=new S.f;
+i=v.f;
+if (arg) v.f=1;
+return i;
+
+*/
+ rankdir=BT;
+ concentrate="true";
+ compound="true";
+ subgraph cluster_Nodes {
+ Start2 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">Start</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD><TD PORT="p1">arg</TD><TD PORT="p2">$2</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Stop3 [ shape=box style=filled fillcolor=yellow label="Stop" ];
+ Con_4 [ label="#0" ];
+ new9 [ label="new S" ];
+ Con_11 [ label="#2" ];
+ Store12 [ label=".f =" ];
+ new13 [ label="new S" ];
+ Store14 [ label=".f =" ];
+ Load16 [ label=".f" ];
+ If17 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Con_21 [ label="#1" ];
+ Store22 [ label=".f =" ];
+ Region23 [ shape=box style=filled fillcolor=yellow label="Region" ];
+ Phi_224 [ style=filled fillcolor=lightyellow label="&phi;_$2" ];
+ Return25 [ shape=box style=filled fillcolor=yellow label="Return" ];
+ { rank=same; Region23;Phi_224;}
+ }
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Stop3 -> Return25[taillabel=0 color=red];
+ new9 -> Start2:p0[taillabel=0 color=green];
+ Store12 -> Start2:p0[taillabel=0 color=red];
+ Store12 -> Start2:p2[taillabel=1 color=blue];
+ Store12 -> new9[taillabel=2];
+ Store12 -> Con_11[taillabel=3];
+ new13 -> Start2:p0[taillabel=0 color=green];
+ Store14 -> Start2:p0[taillabel=0 color=red];
+ Store14 -> Store12[taillabel=1 color=blue];
+ Store14 -> new13[taillabel=2];
+ Store14 -> Con_4[taillabel=3];
+ Load16 -> Start2:p0[taillabel=0 color=red];
+ Load16 -> Store14[taillabel=1 color=blue];
+ Load16 -> new9[taillabel=2];
+ If17 -> Start2:p0[taillabel=0 color=red];
+ If17 -> Start2:p1[taillabel=1];
+ Store22 -> Start2:p0[taillabel=0 color=red];
+ Store22 -> Store14[taillabel=1 color=blue];
+ Store22 -> new9[taillabel=2];
+ Store22 -> Con_21[taillabel=3];
+ Region23 -> If17:p0[taillabel=1 color=red];
+ Region23 -> If17:p1[taillabel=2 color=red];
+ Phi_224 -> Region23 [style=dotted taillabel=0];
+ Phi_224 -> Store22[taillabel=1 color=blue];
+ Phi_224 -> Store14[taillabel=2 color=blue constraint=false];
+ Return25 -> Region23[taillabel=0 color=red];
+ Return25 -> Load16[taillabel=1];
+ Return25 -> Phi_224[taillabel=2 color=blue];
+}
diff --git a/chapter11/docs/graph2.svg b/chapter11/docs/graph2.svg
new file mode 100644
index 00000000..00f7b594
--- /dev/null
+++ b/chapter11/docs/graph2.svg
@@ -0,0 +1,309 @@
+<?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.43.0 (0)
+ -->
+<!-- Title: chapter11 Pages: 1 -->
+<svg width="346pt" height="636pt"
+ viewBox="0.00 0.00 346.00 636.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 632)">
+<title>chapter11</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-632 342,-632 342,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_Nodes</title>
+<polygon fill="none" stroke="black" points="8,-8 8,-620 330,-620 330,-8 8,-8"/>
+</g>
+<!-- Start2 -->
+<g id="node1" class="node">
+<title>Start2</title>
+<polygon fill="yellow" stroke="transparent" points="137,-583 137,-608 243,-608 243,-583 137,-583"/>
+<polygon fill="none" stroke="black" points="137,-583 137,-608 243,-608 243,-583 137,-583"/>
+<text text-anchor="start" x="171.5" y="-591.8" font-family="Times,serif" font-size="14.00">Start</text>
+<polygon fill="none" stroke="black" points="137,-552 137,-583 243,-583 243,-552 137,-552"/>
+<polygon fill="yellow" stroke="transparent" points="142,-557 142,-578 182,-578 182,-557 142,-557"/>
+<polygon fill="none" stroke="black" points="142,-557 142,-578 182,-578 182,-557 142,-557"/>
+<text text-anchor="start" x="145" y="-563.8" font-family="Times,serif" font-size="14.00">$ctrl</text>
+<polygon fill="none" stroke="black" points="182,-557 182,-578 213,-578 213,-557 182,-557"/>
+<text text-anchor="start" x="185" y="-563.8" font-family="Times,serif" font-size="14.00">arg</text>
+<polygon fill="none" stroke="black" points="213,-557 213,-578 238,-578 238,-557 213,-557"/>
+<text text-anchor="start" x="216" y="-563.8" font-family="Times,serif" font-size="14.00">$2</text>
+</g>
+<!-- Stop3 -->
+<g id="node2" class="node">
+<title>Stop3</title>
+<polygon fill="yellow" stroke="black" points="176,-52 122,-52 122,-16 176,-16 176,-52"/>
+<text text-anchor="middle" x="149" y="-30.3" font-family="Times,serif" font-size="14.00">Stop</text>
+</g>
+<!-- Return25 -->
+<g id="node15" class="node">
+<title>Return25</title>
+<polygon fill="yellow" stroke="black" points="182,-124 116,-124 116,-88 182,-88 182,-124"/>
+<text text-anchor="middle" x="149" y="-102.3" font-family="Times,serif" font-size="14.00">Return</text>
+</g>
+<!-- Stop3&#45;&gt;Return25 -->
+<g id="edge1" class="edge">
+<title>Stop3&#45;&gt;Return25</title>
+<path fill="none" stroke="red" d="M149,-52.3C149,-60.02 149,-69.29 149,-77.89"/>
+<polygon fill="red" stroke="red" points="145.5,-77.9 149,-87.9 152.5,-77.9 145.5,-77.9"/>
+<text text-anchor="middle" x="146" y="-54.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_4 -->
+<g id="node3" class="node">
+<title>Con_4</title>
+<ellipse fill="none" stroke="black" cx="121" cy="-422" rx="27" ry="18"/>
+<text text-anchor="middle" x="121" y="-418.3" font-family="Times,serif" font-size="14.00">#0</text>
+</g>
+<!-- new9 -->
+<g id="node4" class="node">
+<title>new9</title>
+<ellipse fill="none" stroke="black" cx="191" cy="-494" rx="38.99" ry="18"/>
+<text text-anchor="middle" x="191" y="-490.3" font-family="Times,serif" font-size="14.00">new S</text>
+</g>
+<!-- new9&#45;&gt;Start2 -->
+<g id="edge2" class="edge">
+<title>new9&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="green" d="M178.53,-511.11C172.27,-520.49 165.49,-533 162.99,-546"/>
+<polygon fill="green" stroke="green" points="159.51,-545.7 162,-556 166.47,-546.4 159.51,-545.7"/>
+<text text-anchor="middle" x="175.53" y="-513.71" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_11 -->
+<g id="node5" class="node">
+<title>Con_11</title>
+<ellipse fill="none" stroke="black" cx="275" cy="-494" rx="27" ry="18"/>
+<text text-anchor="middle" x="275" y="-490.3" font-family="Times,serif" font-size="14.00">#2</text>
+</g>
+<!-- Store12 -->
+<g id="node6" class="node">
+<title>Store12</title>
+<ellipse fill="none" stroke="black" cx="217" cy="-422" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="217" y="-418.3" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store12&#45;&gt;Start2 -->
+<g id="edge3" class="edge">
+<title>Store12&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M239.72,-432.8C270.79,-446.95 322.54,-473.53 321,-493"/>
+<path fill="none" stroke="red" d="M321,-495C315.6,-563.11 190.37,-496.28 166.07,-538.32"/>
+<polygon fill="red" stroke="red" points="162.72,-537.27 162.68,-547.87 169.32,-539.61 162.72,-537.27"/>
+<text text-anchor="middle" x="242.72" y="-435.4" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store12&#45;&gt;new9 -->
+<g id="edge5" class="edge">
+<title>Store12&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M210.84,-439.59C207.84,-447.66 204.16,-457.57 200.79,-466.65"/>
+<polygon fill="black" stroke="black" points="197.5,-465.45 197.3,-476.04 204.06,-467.89 197.5,-465.45"/>
+<text text-anchor="middle" x="207.84" y="-442.19" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store12&#45;&gt;Con_11 -->
+<g id="edge6" class="edge">
+<title>Store12&#45;&gt;Con_11</title>
+<path fill="none" stroke="black" d="M229.59,-438.19C237.26,-447.45 247.23,-459.48 255.86,-469.91"/>
+<polygon fill="black" stroke="black" points="253.36,-472.37 262.44,-477.84 258.75,-467.91 253.36,-472.37"/>
+<text text-anchor="middle" x="226.59" y="-440.79" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- new13 -->
+<g id="node7" class="node">
+<title>new13</title>
+<ellipse fill="none" stroke="black" cx="75" cy="-494" rx="38.99" ry="18"/>
+<text text-anchor="middle" x="75" y="-490.3" font-family="Times,serif" font-size="14.00">new S</text>
+</g>
+<!-- new13&#45;&gt;Start2 -->
+<g id="edge7" class="edge">
+<title>new13&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="green" d="M81.73,-512.06C90.25,-530.86 106.79,-559.28 130.97,-565.69"/>
+<polygon fill="green" stroke="green" points="130.63,-569.17 141,-567 131.54,-562.23 130.63,-569.17"/>
+<text text-anchor="middle" x="78.73" y="-514.66" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store14 -->
+<g id="node8" class="node">
+<title>Store14</title>
+<ellipse fill="none" stroke="black" cx="74" cy="-336" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="74" y="-332.3" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store14&#45;&gt;Start2 -->
+<g id="edge8" class="edge">
+<title>Store14&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M75,-423C81.23,-454.16 104.2,-450.38 123,-476 125.09,-478.85 144.12,-515.97 154.8,-538.72"/>
+<polygon fill="red" stroke="red" points="151.69,-540.34 159.03,-547.99 158.06,-537.44 151.69,-540.34"/>
+<text text-anchor="middle" x="72" y="-416.6" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store14&#45;&gt;Con_4 -->
+<g id="edge11" class="edge">
+<title>Store14&#45;&gt;Con_4</title>
+<path fill="none" stroke="black" d="M83.06,-353.2C89.82,-365.28 99.19,-382.02 106.92,-395.84"/>
+<polygon fill="black" stroke="black" points="104.03,-397.84 111.97,-404.85 110.14,-394.42 104.03,-397.84"/>
+<text text-anchor="middle" x="80.06" y="-355.8" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Store14&#45;&gt;Store12 -->
+<g id="edge9" class="edge">
+<title>Store14&#45;&gt;Store12</title>
+<path fill="none" stroke="blue" d="M91.16,-350.58C98.61,-356.24 107.55,-362.71 116,-368 138.6,-382.16 165.37,-396.08 185.67,-406.11"/>
+<polygon fill="blue" stroke="blue" points="184.27,-409.32 194.79,-410.56 187.34,-403.03 184.27,-409.32"/>
+<text text-anchor="middle" x="88.16" y="-353.18" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store14&#45;&gt;new13 -->
+<g id="edge10" class="edge">
+<title>Store14&#45;&gt;new13</title>
+<path fill="none" stroke="black" d="M72.36,-354.25C71.17,-371.36 70.46,-398.26 75,-421"/>
+<path fill="none" stroke="black" d="M75,-423C77.77,-436.87 78.02,-452.6 77.47,-465.63"/>
+<polygon fill="black" stroke="black" points="73.97,-465.65 76.86,-475.84 80.95,-466.07 73.97,-465.65"/>
+<text text-anchor="middle" x="69.36" y="-356.85" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Load16 -->
+<g id="node9" class="node">
+<title>Load16</title>
+<ellipse fill="none" stroke="black" cx="74" cy="-250" rx="27" ry="18"/>
+<text text-anchor="middle" x="74" y="-246.3" font-family="Times,serif" font-size="14.00">.f</text>
+</g>
+<!-- Load16&#45;&gt;Start2 -->
+<g id="edge12" class="edge">
+<title>Load16&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M60.29,-266C52.02,-276 42.12,-289.86 37,-304 19.23,-353.07 6.22,-373.12 27,-421"/>
+<path fill="none" stroke="red" d="M27,-423C42.75,-459.29 5.97,-478.5 27,-512 52.69,-552.92 76.85,-564.12 118.8,-566.47"/>
+<polygon fill="red" stroke="red" points="118.8,-569.97 128.93,-566.86 119.08,-562.98 118.8,-569.97"/>
+<text text-anchor="middle" x="57.29" y="-268.6" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Load16&#45;&gt;new9 -->
+<g id="edge14" class="edge">
+<title>Load16&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M27,-423C37.2,-446.5 102.74,-468.87 147.82,-481.75"/>
+<polygon fill="black" stroke="black" points="147.08,-485.18 157.66,-484.5 148.97,-478.44 147.08,-485.18"/>
+<text text-anchor="middle" x="24" y="-416.6" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Load16&#45;&gt;Store14 -->
+<g id="edge13" class="edge">
+<title>Load16&#45;&gt;Store14</title>
+<path fill="none" stroke="blue" d="M74,-268.4C74,-279.74 74,-294.77 74,-307.68"/>
+<polygon fill="blue" stroke="blue" points="70.5,-307.9 74,-317.9 77.5,-307.9 70.5,-307.9"/>
+<text text-anchor="middle" x="71" y="-271" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- If17 -->
+<g id="node10" class="node">
+<title>If17</title>
+<polygon fill="yellow" stroke="transparent" points="220,-339 220,-364 314,-364 314,-339 220,-339"/>
+<polygon fill="none" stroke="black" points="220,-339 220,-364 314,-364 314,-339 220,-339"/>
+<text text-anchor="start" x="261.5" y="-347.8" font-family="Times,serif" font-size="14.00">If</text>
+<polygon fill="none" stroke="black" points="220,-308 220,-339 314,-339 314,-308 220,-308"/>
+<polygon fill="yellow" stroke="transparent" points="225,-313 225,-334 265,-334 265,-313 225,-313"/>
+<polygon fill="none" stroke="black" points="225,-313 225,-334 265,-334 265,-313 225,-313"/>
+<text text-anchor="start" x="228" y="-319.8" font-family="Times,serif" font-size="14.00">True</text>
+<polygon fill="yellow" stroke="transparent" points="265,-313 265,-334 309,-334 309,-313 265,-313"/>
+<polygon fill="none" stroke="black" points="265,-313 265,-334 309,-334 309,-313 265,-313"/>
+<text text-anchor="start" x="268" y="-319.8" font-family="Times,serif" font-size="14.00">False</text>
+</g>
+<!-- If17&#45;&gt;Start2 -->
+<g id="edge15" class="edge">
+<title>If17&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M258.27,-368.06C255.35,-385.41 255.35,-406.41 267,-421"/>
+<text text-anchor="middle" x="255.27" y="-370.66" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_21 -->
+<g id="node11" class="node">
+<title>Con_21</title>
+<ellipse fill="none" stroke="black" cx="167" cy="-336" rx="27" ry="18"/>
+<text text-anchor="middle" x="167" y="-332.3" font-family="Times,serif" font-size="14.00">#1</text>
+</g>
+<!-- Store22 -->
+<g id="node12" class="node">
+<title>Store22</title>
+<ellipse fill="none" stroke="black" cx="149" cy="-250" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="149" y="-246.3" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store22&#45;&gt;Start2 -->
+<g id="edge17" class="edge">
+<title>Store22&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M121,-337C124.72,-350.99 120.62,-357.9 131,-368 171.82,-407.72 207.03,-371.77 254,-404 261.84,-409.38 261.07,-413.57 267,-421"/>
+<path fill="none" stroke="red" d="M267,-423C291.51,-453.71 324.1,-453.83 321,-493"/>
+<text text-anchor="middle" x="118" y="-330.6" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store22&#45;&gt;new9 -->
+<g id="edge19" class="edge">
+<title>Store22&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M138.02,-266.62C127.62,-283.37 114.49,-310.8 121,-335"/>
+<path fill="none" stroke="black" d="M121,-337C124.76,-350.98 124.46,-355.08 131,-368 139.92,-385.61 147.62,-386.63 157,-404 167.83,-424.05 176.84,-448.28 182.87,-466.4"/>
+<polygon fill="black" stroke="black" points="179.57,-467.59 185.98,-476.03 186.23,-465.43 179.57,-467.59"/>
+<text text-anchor="middle" x="135.02" y="-269.22" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store22&#45;&gt;Store14 -->
+<g id="edge18" class="edge">
+<title>Store22&#45;&gt;Store14</title>
+<path fill="none" stroke="blue" d="M135.59,-266.02C124.07,-278.92 107.3,-297.71 94.16,-312.42"/>
+<polygon fill="blue" stroke="blue" points="91.34,-310.32 87.29,-320.11 96.56,-314.98 91.34,-310.32"/>
+<text text-anchor="middle" x="132.59" y="-268.62" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store22&#45;&gt;Con_21 -->
+<g id="edge20" class="edge">
+<title>Store22&#45;&gt;Con_21</title>
+<path fill="none" stroke="black" d="M152.64,-268C155.11,-279.5 158.41,-294.93 161.23,-308.08"/>
+<polygon fill="black" stroke="black" points="157.85,-308.98 163.36,-318.03 164.69,-307.52 157.85,-308.98"/>
+<text text-anchor="middle" x="149.64" y="-270.6" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Region23 -->
+<g id="node13" class="node">
+<title>Region23</title>
+<polygon fill="yellow" stroke="black" points="269,-196 203,-196 203,-160 269,-160 269,-196"/>
+<text text-anchor="middle" x="236" y="-174.3" font-family="Times,serif" font-size="14.00">Region</text>
+</g>
+<!-- Region23&#45;&gt;If17 -->
+<g id="edge21" class="edge">
+<title>Region23&#45;&gt;If17:p0</title>
+<path fill="none" stroke="red" d="M237.91,-196.19C240.33,-219.44 244.28,-262.49 244.91,-301.62"/>
+<polygon fill="red" stroke="red" points="241.42,-302.03 245,-312 248.42,-301.97 241.42,-302.03"/>
+<text text-anchor="middle" x="234.91" y="-198.79" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region23&#45;&gt;If17 -->
+<g id="edge22" class="edge">
+<title>Region23&#45;&gt;If17:p1</title>
+<path fill="none" stroke="red" d="M249.35,-196.26C256.45,-206.22 264.76,-219.26 270,-232 282.41,-262.21 286.24,-273.37 286.89,-301.69"/>
+<polygon fill="red" stroke="red" points="283.4,-302.04 287,-312 290.4,-301.96 283.4,-302.04"/>
+<text text-anchor="middle" x="246.35" y="-198.86" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_224 -->
+<g id="node14" class="node">
+<title>Phi_224</title>
+<ellipse fill="lightyellow" stroke="black" cx="149" cy="-178" rx="33.29" ry="18"/>
+<text text-anchor="middle" x="149" y="-174.3" font-family="Times,serif" font-size="14.00">φ_$2</text>
+</g>
+<!-- Phi_224&#45;&gt;Store14 -->
+<g id="edge25" class="edge">
+<title>Phi_224&#45;&gt;Store14</title>
+<path fill="none" stroke="blue" d="M163.74,-194.16C179.64,-212.44 200.82,-243.72 186,-268 167.78,-297.86 145.73,-285.55 116,-304 110.44,-307.45 104.68,-311.42 99.27,-315.34"/>
+<polygon fill="blue" stroke="blue" points="97.08,-312.61 91.14,-321.38 101.25,-318.23 97.08,-312.61"/>
+<text text-anchor="middle" x="160.74" y="-196.76" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_224&#45;&gt;Store22 -->
+<g id="edge24" class="edge">
+<title>Phi_224&#45;&gt;Store22</title>
+<path fill="none" stroke="blue" d="M149,-196.3C149,-204.02 149,-213.29 149,-221.89"/>
+<polygon fill="blue" stroke="blue" points="145.5,-221.9 149,-231.9 152.5,-221.9 145.5,-221.9"/>
+<text text-anchor="middle" x="146" y="-198.9" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_224&#45;&gt;Region23 -->
+<g id="edge23" class="edge">
+<title>Phi_224&#45;&gt;Region23</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M182.3,-178C185.73,-178 189.16,-178 192.58,-178"/>
+<polygon fill="black" stroke="black" points="192.86,-181.5 202.86,-178 192.86,-174.5 192.86,-181.5"/>
+<text text-anchor="middle" x="185.3" y="-171.6" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return25&#45;&gt;Load16 -->
+<g id="edge27" class="edge">
+<title>Return25&#45;&gt;Load16</title>
+<path fill="none" stroke="black" d="M133.12,-124.15C124.54,-134.07 114.25,-147.11 107,-160 95.8,-179.9 87.06,-204.34 81.39,-222.56"/>
+<polygon fill="black" stroke="black" points="78.01,-221.66 78.49,-232.24 84.71,-223.67 78.01,-221.66"/>
+<text text-anchor="middle" x="130.12" y="-126.75" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Return25&#45;&gt;Region23 -->
+<g id="edge26" class="edge">
+<title>Return25&#45;&gt;Region23</title>
+<path fill="none" stroke="red" d="M170.51,-124.3C181.46,-133.12 194.95,-143.97 206.82,-153.53"/>
+<polygon fill="red" stroke="red" points="204.76,-156.35 214.74,-159.9 209.14,-150.9 204.76,-156.35"/>
+<text text-anchor="middle" x="167.51" y="-126.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return25&#45;&gt;Phi_224 -->
+<g id="edge28" class="edge">
+<title>Return25&#45;&gt;Phi_224</title>
+<path fill="none" stroke="blue" d="M149,-124.3C149,-132.02 149,-141.29 149,-149.89"/>
+<polygon fill="blue" stroke="blue" points="145.5,-149.9 149,-159.9 152.5,-149.9 145.5,-149.9"/>
+<text text-anchor="middle" x="146" y="-126.9" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+</g>
+</svg>
diff --git a/chapter11/docs/graph3-snip.jpg b/chapter11/docs/graph3-snip.jpg
new file mode 100644
index 00000000..804a32c4
--- /dev/null
+++ b/chapter11/docs/graph3-snip.jpg
Binary files differ
diff --git a/chapter11/docs/graph3.gv b/chapter11/docs/graph3.gv
new file mode 100644
index 00000000..c47ac565
--- /dev/null
+++ b/chapter11/docs/graph3.gv
@@ -0,0 +1,81 @@
+digraph chapter11 {
+/*
+struct S { int f; }
+S v=new S;
+v.f = 2;
+int i=new S.f;
+i=v.f;
+if (arg) v.f=1;
+return i;
+
+*/
+ rankdir=BT;
+ concentrate="true";
+ compound="true";
+ subgraph cluster_Nodes {
+ Start2 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">Start</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD><TD PORT="p1">arg</TD><TD PORT="p2">$2</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Stop3 [ shape=box style=filled fillcolor=yellow label="Stop" ];
+ Con_4 [ label="#0" ];
+ new9 [ label="new S" ];
+ Con_11 [ label="#2" ];
+ Store12 [ label=".f =" ];
+ new13 [ label="new S" ];
+ Store14 [ label=".f =" ];
+ Load16 [ label=".f" ];
+ If17 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Con_21 [ label="#1" ];
+ Store22 [ label=".f =" ];
+ Region23 [ shape=box style=filled fillcolor=yellow label="Region" ];
+ Phi_224 [ style=filled fillcolor=lightyellow label="&phi;_$2" ];
+ Return25 [ shape=box style=filled fillcolor=yellow label="Return" ];
+ { rank=same; Region23;Phi_224;}
+ }
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Stop3 -> Return25[taillabel=0 color=red];
+ new9 -> Start2:p0[taillabel=0 color=green];
+ Store12 -> Start2:p0[taillabel=0 color=red];
+ Store12 -> Start2:p2[taillabel=1 color=blue];
+ Store12 -> new9[taillabel=2];
+ Store12 -> Con_11[taillabel=3];
+ new13 -> Start2:p0[taillabel=0 color=green];
+ Store14 -> Start2:p0[taillabel=0 color=red];
+ Store14 -> Store12[taillabel=1 color=blue];
+ Store14 -> new13[taillabel=2];
+ Store14 -> Con_4[taillabel=3];
+ Load16 -> Start2:p0[taillabel=0 color=red];
+ Load16 -> Store14[taillabel=1 color=blue];
+ Load16 -> new9[taillabel=2];
+ If17 -> Start2:p0[taillabel=0 color=red];
+ If17 -> Start2:p1[taillabel=1];
+ Store22 -> If17:p0[taillabel=0 color=red];
+ Store22 -> Store14[taillabel=1 color=blue];
+ Store22 -> new9[taillabel=2];
+ Store22 -> Con_21[taillabel=3];
+ Store22 -> Load16[taillabel=4];
+ Region23 -> If17:p0[taillabel=1 color=red];
+ Region23 -> If17:p1[taillabel=2 color=red];
+ Phi_224 -> Region23 [style=dotted taillabel=0];
+ Phi_224 -> Store22[taillabel=1 color=blue];
+ Phi_224 -> Store14[taillabel=2 color=blue constraint=false];
+ Return25 -> Region23[taillabel=0 color=red];
+ Return25 -> Load16[taillabel=1];
+ Return25 -> Phi_224[taillabel=2 color=blue];
+}
diff --git a/chapter11/docs/graph3.svg b/chapter11/docs/graph3.svg
new file mode 100644
index 00000000..e017c4af
--- /dev/null
+++ b/chapter11/docs/graph3.svg
@@ -0,0 +1,316 @@
+<?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.43.0 (0)
+ -->
+<!-- Title: chapter11 Pages: 1 -->
+<svg width="346pt" height="708pt"
+ viewBox="0.00 0.00 346.00 708.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 704)">
+<title>chapter11</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-704 342,-704 342,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_Nodes</title>
+<polygon fill="none" stroke="black" points="8,-8 8,-692 330,-692 330,-8 8,-8"/>
+</g>
+<!-- Start2 -->
+<g id="node1" class="node">
+<title>Start2</title>
+<polygon fill="yellow" stroke="transparent" points="137,-655 137,-680 243,-680 243,-655 137,-655"/>
+<polygon fill="none" stroke="black" points="137,-655 137,-680 243,-680 243,-655 137,-655"/>
+<text text-anchor="start" x="171.5" y="-663.8" font-family="Times,serif" font-size="14.00">Start</text>
+<polygon fill="none" stroke="black" points="137,-624 137,-655 243,-655 243,-624 137,-624"/>
+<polygon fill="yellow" stroke="transparent" points="142,-629 142,-650 182,-650 182,-629 142,-629"/>
+<polygon fill="none" stroke="black" points="142,-629 142,-650 182,-650 182,-629 142,-629"/>
+<text text-anchor="start" x="145" y="-635.8" font-family="Times,serif" font-size="14.00">$ctrl</text>
+<polygon fill="none" stroke="black" points="182,-629 182,-650 213,-650 213,-629 182,-629"/>
+<text text-anchor="start" x="185" y="-635.8" font-family="Times,serif" font-size="14.00">arg</text>
+<polygon fill="none" stroke="black" points="213,-629 213,-650 238,-650 238,-629 213,-629"/>
+<text text-anchor="start" x="216" y="-635.8" font-family="Times,serif" font-size="14.00">$2</text>
+</g>
+<!-- Stop3 -->
+<g id="node2" class="node">
+<title>Stop3</title>
+<polygon fill="yellow" stroke="black" points="186,-52 132,-52 132,-16 186,-16 186,-52"/>
+<text text-anchor="middle" x="159" y="-30.3" font-family="Times,serif" font-size="14.00">Stop</text>
+</g>
+<!-- Return25 -->
+<g id="node15" class="node">
+<title>Return25</title>
+<polygon fill="yellow" stroke="black" points="192,-124 126,-124 126,-88 192,-88 192,-124"/>
+<text text-anchor="middle" x="159" y="-102.3" font-family="Times,serif" font-size="14.00">Return</text>
+</g>
+<!-- Stop3&#45;&gt;Return25 -->
+<g id="edge1" class="edge">
+<title>Stop3&#45;&gt;Return25</title>
+<path fill="none" stroke="red" d="M159,-52.3C159,-60.02 159,-69.29 159,-77.89"/>
+<polygon fill="red" stroke="red" points="155.5,-77.9 159,-87.9 162.5,-77.9 155.5,-77.9"/>
+<text text-anchor="middle" x="156" y="-54.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_4 -->
+<g id="node3" class="node">
+<title>Con_4</title>
+<ellipse fill="none" stroke="black" cx="87" cy="-494" rx="27" ry="18"/>
+<text text-anchor="middle" x="87" y="-490.3" font-family="Times,serif" font-size="14.00">#0</text>
+</g>
+<!-- new9 -->
+<g id="node4" class="node">
+<title>new9</title>
+<ellipse fill="none" stroke="black" cx="191" cy="-566" rx="38.99" ry="18"/>
+<text text-anchor="middle" x="191" y="-562.3" font-family="Times,serif" font-size="14.00">new S</text>
+</g>
+<!-- new9&#45;&gt;Start2 -->
+<g id="edge2" class="edge">
+<title>new9&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="green" d="M178.53,-583.11C172.27,-592.49 165.49,-605 162.99,-618"/>
+<polygon fill="green" stroke="green" points="159.51,-617.7 162,-628 166.47,-618.4 159.51,-617.7"/>
+<text text-anchor="middle" x="175.53" y="-585.71" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_11 -->
+<g id="node5" class="node">
+<title>Con_11</title>
+<ellipse fill="none" stroke="black" cx="275" cy="-566" rx="27" ry="18"/>
+<text text-anchor="middle" x="275" y="-562.3" font-family="Times,serif" font-size="14.00">#2</text>
+</g>
+<!-- Store12 -->
+<g id="node6" class="node">
+<title>Store12</title>
+<ellipse fill="none" stroke="black" cx="256" cy="-494" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="256" y="-490.3" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store12&#45;&gt;Start2 -->
+<g id="edge3" class="edge">
+<title>Store12&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M278.09,-505.5C299.78,-517.5 328.59,-538.88 321,-565"/>
+<path fill="none" stroke="red" d="M321,-567C301.92,-632.61 187.71,-567.79 165.68,-610.25"/>
+<polygon fill="red" stroke="red" points="162.32,-609.27 162.62,-619.86 168.99,-611.39 162.32,-609.27"/>
+<text text-anchor="middle" x="281.09" y="-508.1" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store12&#45;&gt;new9 -->
+<g id="edge5" class="edge">
+<title>Store12&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M242.22,-509.85C233.66,-519.06 222.49,-531.09 212.76,-541.57"/>
+<polygon fill="black" stroke="black" points="209.91,-539.49 205.67,-549.2 215.04,-544.26 209.91,-539.49"/>
+<text text-anchor="middle" x="239.22" y="-512.45" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store12&#45;&gt;Con_11 -->
+<g id="edge6" class="edge">
+<title>Store12&#45;&gt;Con_11</title>
+<path fill="none" stroke="black" d="M260.6,-511.95C262.75,-519.86 265.35,-529.46 267.76,-538.31"/>
+<polygon fill="black" stroke="black" points="264.45,-539.48 270.44,-548.21 271.2,-537.64 264.45,-539.48"/>
+<text text-anchor="middle" x="257.6" y="-514.55" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- new13 -->
+<g id="node7" class="node">
+<title>new13</title>
+<ellipse fill="none" stroke="black" cx="75" cy="-566" rx="38.99" ry="18"/>
+<text text-anchor="middle" x="75" y="-562.3" font-family="Times,serif" font-size="14.00">new S</text>
+</g>
+<!-- new13&#45;&gt;Start2 -->
+<g id="edge7" class="edge">
+<title>new13&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="green" d="M81.73,-584.06C90.25,-602.86 106.79,-631.28 130.97,-637.69"/>
+<polygon fill="green" stroke="green" points="130.63,-641.17 141,-639 131.54,-634.23 130.63,-641.17"/>
+<text text-anchor="middle" x="78.73" y="-586.66" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store14 -->
+<g id="node8" class="node">
+<title>Store14</title>
+<ellipse fill="none" stroke="black" cx="133" cy="-422" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="133" y="-418.3" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store14&#45;&gt;Start2 -->
+<g id="edge8" class="edge">
+<title>Store14&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M133,-495C125.43,-534.08 132.78,-545.53 143,-584 146.42,-596.87 152.99,-602.52 157.44,-610.16"/>
+<polygon fill="red" stroke="red" points="154.26,-611.64 161.18,-619.66 160.77,-609.07 154.26,-611.64"/>
+<text text-anchor="middle" x="130" y="-488.6" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store14&#45;&gt;Con_4 -->
+<g id="edge11" class="edge">
+<title>Store14&#45;&gt;Con_4</title>
+<path fill="none" stroke="black" d="M122.56,-438.88C116.8,-447.66 109.52,-458.74 103.04,-468.58"/>
+<polygon fill="black" stroke="black" points="99.96,-466.9 97.4,-477.18 105.81,-470.74 99.96,-466.9"/>
+<text text-anchor="middle" x="119.56" y="-441.48" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Store14&#45;&gt;Store12 -->
+<g id="edge9" class="edge">
+<title>Store14&#45;&gt;Store12</title>
+<path fill="none" stroke="blue" d="M153.31,-434.56C173.34,-445.96 204.16,-463.5 226.81,-476.39"/>
+<polygon fill="blue" stroke="blue" points="225.24,-479.52 235.66,-481.42 228.7,-473.44 225.24,-479.52"/>
+<text text-anchor="middle" x="150.31" y="-437.16" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store14&#45;&gt;new13 -->
+<g id="edge10" class="edge">
+<title>Store14&#45;&gt;new13</title>
+<path fill="none" stroke="black" d="M134.81,-440.15C135.88,-454.43 136.45,-475.22 133,-493"/>
+<path fill="none" stroke="black" d="M133,-495C129.28,-514.17 115.61,-531.16 102.48,-543.6"/>
+<polygon fill="black" stroke="black" points="100.01,-541.11 94.89,-550.38 104.68,-546.33 100.01,-541.11"/>
+<text text-anchor="middle" x="131.81" y="-442.75" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Load16 -->
+<g id="node9" class="node">
+<title>Load16</title>
+<ellipse fill="none" stroke="black" cx="53" cy="-336" rx="27" ry="18"/>
+<text text-anchor="middle" x="53" y="-332.3" font-family="Times,serif" font-size="14.00">.f</text>
+</g>
+<!-- Load16&#45;&gt;Start2 -->
+<g id="edge12" class="edge">
+<title>Load16&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M47.25,-353.59C38.09,-382.82 22.94,-444.94 41,-493"/>
+<path fill="none" stroke="red" d="M41,-495C50.66,-517.36 30.14,-523.84 27,-548 24.94,-563.87 18.49,-570.45 27,-584 52.69,-624.92 76.85,-636.12 118.8,-638.47"/>
+<polygon fill="red" stroke="red" points="118.8,-641.97 128.93,-638.86 119.08,-634.98 118.8,-641.97"/>
+<text text-anchor="middle" x="44.25" y="-356.19" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Load16&#45;&gt;new9 -->
+<g id="edge14" class="edge">
+<title>Load16&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M41,-495C44.08,-503.21 44.3,-506.35 51,-512 66.3,-524.9 113.87,-541.46 149.33,-552.61"/>
+<polygon fill="black" stroke="black" points="148.39,-555.98 158.98,-555.6 150.47,-549.3 148.39,-555.98"/>
+<text text-anchor="middle" x="38" y="-488.6" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Load16&#45;&gt;Store14 -->
+<g id="edge13" class="edge">
+<title>Load16&#45;&gt;Store14</title>
+<path fill="none" stroke="blue" d="M66.93,-351.63C79.36,-364.68 97.74,-383.97 111.95,-398.9"/>
+<polygon fill="blue" stroke="blue" points="109.53,-401.43 118.96,-406.25 114.59,-396.6 109.53,-401.43"/>
+<text text-anchor="middle" x="63.93" y="-354.23" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- If17 -->
+<g id="node10" class="node">
+<title>If17</title>
+<polygon fill="yellow" stroke="transparent" points="218,-339 218,-364 312,-364 312,-339 218,-339"/>
+<polygon fill="none" stroke="black" points="218,-339 218,-364 312,-364 312,-339 218,-339"/>
+<text text-anchor="start" x="259.5" y="-347.8" font-family="Times,serif" font-size="14.00">If</text>
+<polygon fill="none" stroke="black" points="218,-308 218,-339 312,-339 312,-308 218,-308"/>
+<polygon fill="yellow" stroke="transparent" points="223,-313 223,-334 263,-334 263,-313 223,-313"/>
+<polygon fill="none" stroke="black" points="223,-313 223,-334 263,-334 263,-313 223,-313"/>
+<text text-anchor="start" x="226" y="-319.8" font-family="Times,serif" font-size="14.00">True</text>
+<polygon fill="yellow" stroke="transparent" points="263,-313 263,-334 307,-334 307,-313 263,-313"/>
+<polygon fill="none" stroke="black" points="263,-313 263,-334 307,-334 307,-313 263,-313"/>
+<text text-anchor="start" x="266" y="-319.8" font-family="Times,serif" font-size="14.00">False</text>
+</g>
+<!-- If17&#45;&gt;Start2 -->
+<g id="edge15" class="edge">
+<title>If17&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M283.07,-368.2C306.27,-412.32 341.25,-495.33 321,-565"/>
+<text text-anchor="middle" x="280.07" y="-370.8" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_21 -->
+<g id="node11" class="node">
+<title>Con_21</title>
+<ellipse fill="none" stroke="black" cx="125" cy="-336" rx="27" ry="18"/>
+<text text-anchor="middle" x="125" y="-332.3" font-family="Times,serif" font-size="14.00">#1</text>
+</g>
+<!-- Store22 -->
+<g id="node12" class="node">
+<title>Store22</title>
+<ellipse fill="none" stroke="black" cx="159" cy="-250" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="159" y="-246.3" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store22&#45;&gt;new9 -->
+<g id="edge19" class="edge">
+<title>Store22&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M191,-337C192.12,-409.45 191.64,-494.88 191.27,-537.67"/>
+<polygon fill="black" stroke="black" points="187.77,-537.81 191.18,-547.84 194.77,-537.87 187.77,-537.81"/>
+<text text-anchor="middle" x="188" y="-330.6" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store22&#45;&gt;Store14 -->
+<g id="edge18" class="edge">
+<title>Store22&#45;&gt;Store14</title>
+<path fill="none" stroke="blue" d="M168.96,-267.05C178.21,-283.46 190.61,-310.03 191,-335"/>
+<path fill="none" stroke="blue" d="M191,-337C191.39,-361.97 173.77,-384.91 157.85,-400.48"/>
+<polygon fill="blue" stroke="blue" points="155.22,-398.15 150.26,-407.51 159.98,-403.28 155.22,-398.15"/>
+<text text-anchor="middle" x="165.96" y="-269.65" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store22&#45;&gt;Load16 -->
+<g id="edge21" class="edge">
+<title>Store22&#45;&gt;Load16</title>
+<path fill="none" stroke="black" d="M141.22,-263.98C126.92,-274.53 106.43,-289.92 89,-304 84.86,-307.35 80.51,-310.98 76.33,-314.54"/>
+<polygon fill="black" stroke="black" points="73.89,-312.03 68.59,-321.2 78.45,-317.33 73.89,-312.03"/>
+<text text-anchor="middle" x="138.22" y="-266.58" font-family="Helvetica,sans-Serif" font-size="8.00">4</text>
+</g>
+<!-- Store22&#45;&gt;If17 -->
+<g id="edge17" class="edge">
+<title>Store22&#45;&gt;If17:p0</title>
+<path fill="none" stroke="red" d="M170.65,-266.62C182.83,-282.67 201.77,-306.77 213.47,-317.51"/>
+<polygon fill="red" stroke="red" points="211.7,-320.53 222,-323 215.49,-314.64 211.7,-320.53"/>
+<text text-anchor="middle" x="173.65" y="-269.22" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store22&#45;&gt;Con_21 -->
+<g id="edge20" class="edge">
+<title>Store22&#45;&gt;Con_21</title>
+<path fill="none" stroke="black" d="M152.28,-267.6C147.49,-279.45 140.94,-295.62 135.46,-309.15"/>
+<polygon fill="black" stroke="black" points="132.21,-307.86 131.7,-318.44 138.7,-310.48 132.21,-307.86"/>
+<text text-anchor="middle" x="149.28" y="-270.2" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Region23 -->
+<g id="node13" class="node">
+<title>Region23</title>
+<polygon fill="yellow" stroke="black" points="276,-196 210,-196 210,-160 276,-160 276,-196"/>
+<text text-anchor="middle" x="243" y="-174.3" font-family="Times,serif" font-size="14.00">Region</text>
+</g>
+<!-- Region23&#45;&gt;If17 -->
+<g id="edge22" class="edge">
+<title>Region23&#45;&gt;If17:p0</title>
+<path fill="none" stroke="red" d="M243,-196.22C243,-219.49 243,-262.58 243,-301.64"/>
+<polygon fill="red" stroke="red" points="239.5,-302 243,-312 246.5,-302 239.5,-302"/>
+<text text-anchor="middle" x="240" y="-198.82" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region23&#45;&gt;If17 -->
+<g id="edge23" class="edge">
+<title>Region23&#45;&gt;If17:p1</title>
+<path fill="none" stroke="red" d="M252.84,-196.18C258.29,-206.33 264.79,-219.58 269,-232 279.46,-262.85 284.04,-273.57 284.86,-301.73"/>
+<polygon fill="red" stroke="red" points="281.37,-302.05 285,-312 288.37,-301.95 281.37,-302.05"/>
+<text text-anchor="middle" x="249.84" y="-198.78" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_224 -->
+<g id="node14" class="node">
+<title>Phi_224</title>
+<ellipse fill="lightyellow" stroke="black" cx="159" cy="-178" rx="33.29" ry="18"/>
+<text text-anchor="middle" x="159" y="-174.3" font-family="Times,serif" font-size="14.00">φ_$2</text>
+</g>
+<!-- Phi_224&#45;&gt;Store14 -->
+<g id="edge26" class="edge">
+<title>Phi_224&#45;&gt;Store14</title>
+<path fill="none" stroke="blue" d="M173.5,-194.31C181.86,-204.22 191.56,-217.87 196,-232 200.8,-247.26 198.68,-252.23 196,-268 192.06,-291.21 170.41,-346.42 161,-368 156.97,-377.25 151.97,-387.09 147.32,-395.75"/>
+<polygon fill="blue" stroke="blue" points="144.21,-394.15 142.48,-404.6 150.35,-397.51 144.21,-394.15"/>
+<text text-anchor="middle" x="170.5" y="-196.91" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_224&#45;&gt;Store22 -->
+<g id="edge25" class="edge">
+<title>Phi_224&#45;&gt;Store22</title>
+<path fill="none" stroke="blue" d="M159,-196.3C159,-204.02 159,-213.29 159,-221.89"/>
+<polygon fill="blue" stroke="blue" points="155.5,-221.9 159,-231.9 162.5,-221.9 155.5,-221.9"/>
+<text text-anchor="middle" x="156" y="-198.9" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_224&#45;&gt;Region23 -->
+<g id="edge24" class="edge">
+<title>Phi_224&#45;&gt;Region23</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M192.47,-178C194.91,-178 197.35,-178 199.8,-178"/>
+<polygon fill="black" stroke="black" points="199.84,-181.5 209.84,-178 199.84,-174.5 199.84,-181.5"/>
+<text text-anchor="middle" x="195.47" y="-171.6" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return25&#45;&gt;Load16 -->
+<g id="edge28" class="edge">
+<title>Return25&#45;&gt;Load16</title>
+<path fill="none" stroke="black" d="M143.1,-124.14C134.51,-134.05 124.23,-147.09 117,-160 89.5,-209.12 69.82,-272.31 60.03,-307.76"/>
+<polygon fill="black" stroke="black" points="56.54,-307.25 57.31,-317.82 63.3,-309.08 56.54,-307.25"/>
+<text text-anchor="middle" x="140.1" y="-126.74" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Return25&#45;&gt;Region23 -->
+<g id="edge27" class="edge">
+<title>Return25&#45;&gt;Region23</title>
+<path fill="none" stroke="red" d="M179.76,-124.3C190.24,-133.03 203.11,-143.76 214.5,-153.25"/>
+<polygon fill="red" stroke="red" points="212.55,-156.18 222.47,-159.9 217.03,-150.81 212.55,-156.18"/>
+<text text-anchor="middle" x="176.76" y="-126.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return25&#45;&gt;Phi_224 -->
+<g id="edge29" class="edge">
+<title>Return25&#45;&gt;Phi_224</title>
+<path fill="none" stroke="blue" d="M159,-124.3C159,-132.02 159,-141.29 159,-149.89"/>
+<polygon fill="blue" stroke="blue" points="155.5,-149.9 159,-159.9 162.5,-149.9 155.5,-149.9"/>
+<text text-anchor="middle" x="156" y="-126.9" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+</g>
+</svg>
diff --git a/chapter11/docs/graph4.gv b/chapter11/docs/graph4.gv
new file mode 100644
index 00000000..190e83dd
--- /dev/null
+++ b/chapter11/docs/graph4.gv
@@ -0,0 +1,107 @@
+digraph chapter11 {
+/*
+struct S { int f; }
+S v = new S;
+int i = arg;
+while (arg > 0) {
+ int j = i/3;
+ if (arg == 5)
+ v.f = j;
+ arg = arg - 1;
+}
+return v;
+
+*/
+ rankdir=BT;
+ concentrate="true";
+ compound="true";
+ subgraph cluster_Nodes {
+ Start2 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">Start</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD><TD PORT="p1">arg</TD><TD PORT="p2">$2</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Stop3 [ shape=box style=filled fillcolor=yellow label="Stop" ];
+ Con_4 [ label="#0" ];
+ new9 [ label="new S" ];
+ Store10 [ label=".f =" ];
+ Loop11 [ shape=box style=filled fillcolor=yellow label="Loop" ];
+ Phi_arg13 [ style=filled fillcolor=lightyellow label="&phi;_arg" ];
+ LT14 [ label="<" ];
+ If16 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Div21 [ label="//" ];
+ Con_22 [ label="#3" ];
+ EQ23 [ label="==" ];
+ Con_24 [ label="#5" ];
+ If25 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Phi_230 [ style=filled fillcolor=lightyellow label="&phi;_$2" ];
+ Store31 [ label=".f =" ];
+ Region32 [ shape=box style=filled fillcolor=yellow label="Region" ];
+ Phi_233 [ style=filled fillcolor=lightyellow label="&phi;_$2" ];
+ Sub35 [ label="-" ];
+ Con_36 [ label="#1" ];
+ Return37 [ shape=box style=filled fillcolor=yellow label="Return" ];
+ { rank=same; Loop11;Phi_230;Phi_arg13;}
+ { rank=same; Region32;Phi_233;}
+ }
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Stop3 -> Return37[taillabel=0 color=red];
+ new9 -> Start2:p0[taillabel=0 color=green];
+ Store10 -> Start2:p2[taillabel=1 color=blue];
+ Store10 -> new9[taillabel=2];
+ Store10 -> Con_4[taillabel=3];
+ Loop11 -> Start2:p0[taillabel=1 color=red];
+ Loop11 -> Region32[taillabel=2 color=red constraint=false];
+ Phi_arg13 -> Loop11 [style=dotted taillabel=0];
+ Phi_arg13 -> Start2:p1[taillabel=1];
+ Phi_arg13 -> Sub35[taillabel=2 constraint=false];
+ LT14 -> Con_4[taillabel=1];
+ LT14 -> Phi_arg13[taillabel=2];
+ If16 -> Loop11[taillabel=0 color=red];
+ If16 -> LT14[taillabel=1];
+ Div21 -> Start2:p1[taillabel=1];
+ Div21 -> Con_22[taillabel=2];
+ EQ23 -> Phi_arg13[taillabel=1];
+ EQ23 -> Con_24[taillabel=2];
+ If25 -> If16:p0[taillabel=0 color=red];
+ If25 -> EQ23[taillabel=1];
+ Phi_230 -> Loop11 [style=dotted taillabel=0];
+ Phi_230 -> Store10[taillabel=1 color=blue];
+ Phi_230 -> Phi_233[taillabel=2 color=blue constraint=false];
+ Store31 -> Phi_230[taillabel=1 color=blue];
+ Store31 -> new9[taillabel=2];
+ Store31 -> Div21[taillabel=3];
+ Region32 -> If25:p0[taillabel=1 color=red];
+ Region32 -> If25:p1[taillabel=2 color=red];
+ Phi_233 -> Region32 [style=dotted taillabel=0];
+ Phi_233 -> Store31[taillabel=1 color=blue];
+ Phi_233 -> Phi_230[taillabel=2 color=blue constraint=false];
+ Sub35 -> Phi_arg13[taillabel=1];
+ Sub35 -> Con_36[taillabel=2];
+ Return37 -> If16:p1[taillabel=0 color=red];
+ Return37 -> new9[taillabel=1];
+ Return37 -> Phi_230[taillabel=2 color=blue];
+} \ No newline at end of file
diff --git a/chapter11/docs/graph4.svg b/chapter11/docs/graph4.svg
new file mode 100644
index 00000000..7f392664
--- /dev/null
+++ b/chapter11/docs/graph4.svg
@@ -0,0 +1,408 @@
+<?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.43.0 (0)
+ -->
+<!-- Title: chapter11 Pages: 1 -->
+<svg width="454pt" height="680pt"
+ viewBox="0.00 0.00 454.00 680.14" 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 676.14)">
+<title>chapter11</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-676.14 450,-676.14 450,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_Nodes</title>
+<polygon fill="none" stroke="black" points="8,-24.14 8,-664.14 438,-664.14 438,-24.14 8,-24.14"/>
+</g>
+<!-- Start2 -->
+<g id="node1" class="node">
+<title>Start2</title>
+<polygon fill="yellow" stroke="transparent" points="129,-627.14 129,-652.14 235,-652.14 235,-627.14 129,-627.14"/>
+<polygon fill="none" stroke="black" points="129,-627.14 129,-652.14 235,-652.14 235,-627.14 129,-627.14"/>
+<text text-anchor="start" x="163.5" y="-635.94" font-family="Times,serif" font-size="14.00">Start</text>
+<polygon fill="none" stroke="black" points="129,-596.14 129,-627.14 235,-627.14 235,-596.14 129,-596.14"/>
+<polygon fill="yellow" stroke="transparent" points="134,-601.14 134,-622.14 174,-622.14 174,-601.14 134,-601.14"/>
+<polygon fill="none" stroke="black" points="134,-601.14 134,-622.14 174,-622.14 174,-601.14 134,-601.14"/>
+<text text-anchor="start" x="137" y="-607.94" font-family="Times,serif" font-size="14.00">$ctrl</text>
+<polygon fill="none" stroke="black" points="174,-601.14 174,-622.14 205,-622.14 205,-601.14 174,-601.14"/>
+<text text-anchor="start" x="177" y="-607.94" font-family="Times,serif" font-size="14.00">arg</text>
+<polygon fill="none" stroke="black" points="205,-601.14 205,-622.14 230,-622.14 230,-601.14 205,-601.14"/>
+<text text-anchor="start" x="208" y="-607.94" font-family="Times,serif" font-size="14.00">$2</text>
+</g>
+<!-- Stop3 -->
+<g id="node2" class="node">
+<title>Stop3</title>
+<polygon fill="yellow" stroke="black" points="189,-68.14 135,-68.14 135,-32.14 189,-32.14 189,-68.14"/>
+<text text-anchor="middle" x="162" y="-46.44" font-family="Times,serif" font-size="14.00">Stop</text>
+</g>
+<!-- Return37 -->
+<g id="node21" class="node">
+<title>Return37</title>
+<polygon fill="yellow" stroke="black" points="193,-154.14 127,-154.14 127,-118.14 193,-118.14 193,-154.14"/>
+<text text-anchor="middle" x="160" y="-132.44" font-family="Times,serif" font-size="14.00">Return</text>
+</g>
+<!-- Stop3&#45;&gt;Return37 -->
+<g id="edge1" class="edge">
+<title>Stop3&#45;&gt;Return37</title>
+<path fill="none" stroke="red" d="M161.59,-68.55C161.32,-79.89 160.96,-94.92 160.65,-107.83"/>
+<polygon fill="red" stroke="red" points="157.15,-107.97 160.41,-118.05 164.14,-108.13 157.15,-107.97"/>
+<text text-anchor="middle" x="158.59" y="-71.15" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_4 -->
+<g id="node3" class="node">
+<title>Con_4</title>
+<ellipse fill="none" stroke="black" cx="264" cy="-538.14" rx="27" ry="18"/>
+<text text-anchor="middle" x="264" y="-534.44" font-family="Times,serif" font-size="14.00">#0</text>
+</g>
+<!-- new9 -->
+<g id="node4" class="node">
+<title>new9</title>
+<ellipse fill="none" stroke="black" cx="55" cy="-538.14" rx="38.99" ry="18"/>
+<text text-anchor="middle" x="55" y="-534.44" font-family="Times,serif" font-size="14.00">new S</text>
+</g>
+<!-- new9&#45;&gt;Start2 -->
+<g id="edge2" class="edge">
+<title>new9&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="green" d="M63.59,-555.84C74.57,-574.87 95.49,-604.11 123,-610.06"/>
+<polygon fill="green" stroke="green" points="122.68,-613.55 133,-611.14 123.43,-606.59 122.68,-613.55"/>
+<text text-anchor="middle" x="60.59" y="-558.44" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store10 -->
+<g id="node5" class="node">
+<title>Store10</title>
+<ellipse fill="none" stroke="black" cx="218" cy="-466.14" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="218" y="-462.44" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store10&#45;&gt;Start2 -->
+<g id="edge3" class="edge">
+<title>Store10&#45;&gt;Start2:p2</title>
+<path fill="none" stroke="blue" d="M218,-484.36C218,-507.63 218,-550.72 218,-589.78"/>
+<polygon fill="blue" stroke="blue" points="214.5,-590.14 218,-600.14 221.5,-590.14 214.5,-590.14"/>
+<text text-anchor="middle" x="215" y="-486.96" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store10&#45;&gt;Con_4 -->
+<g id="edge5" class="edge">
+<title>Store10&#45;&gt;Con_4</title>
+<path fill="none" stroke="black" d="M228.44,-483.03C234.2,-491.8 241.48,-502.88 247.96,-512.73"/>
+<polygon fill="black" stroke="black" points="245.19,-514.89 253.6,-521.32 251.04,-511.04 245.19,-514.89"/>
+<text text-anchor="middle" x="225.44" y="-485.63" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Store10&#45;&gt;new9 -->
+<g id="edge4" class="edge">
+<title>Store10&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M195.75,-477.51C190.9,-479.73 185.79,-482.04 181,-484.14 151.47,-497.13 117.77,-511.27 92.65,-521.68"/>
+<polygon fill="black" stroke="black" points="91.04,-518.56 83.14,-525.61 93.72,-525.03 91.04,-518.56"/>
+<text text-anchor="middle" x="192.75" y="-480.11" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Loop11 -->
+<g id="node6" class="node">
+<title>Loop11</title>
+<polygon fill="yellow" stroke="black" points="430,-412.14 376,-412.14 376,-376.14 430,-376.14 430,-412.14"/>
+<text text-anchor="middle" x="403" y="-390.44" font-family="Times,serif" font-size="14.00">Loop</text>
+</g>
+<!-- Loop11&#45;&gt;Start2 -->
+<g id="edge6" class="edge">
+<title>Loop11&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M398.43,-412.15C388.69,-445.12 362.68,-517.81 314,-556.14 259,-599.46 164.25,-533.74 154.77,-590.03"/>
+<polygon fill="red" stroke="red" points="151.27,-589.91 154,-600.14 158.25,-590.44 151.27,-589.91"/>
+<text text-anchor="middle" x="395.43" y="-414.75" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region32 -->
+<g id="node17" class="node">
+<title>Region32</title>
+<polygon fill="yellow" stroke="black" points="278,-68.14 212,-68.14 212,-32.14 278,-32.14 278,-68.14"/>
+<text text-anchor="middle" x="245" y="-46.44" font-family="Times,serif" font-size="14.00">Region</text>
+</g>
+<!-- Loop11&#45;&gt;Region32 -->
+<g id="edge7" class="edge">
+<title>Loop11&#45;&gt;Region32</title>
+<path fill="none" stroke="red" d="M375.77,-379.43C372.85,-378.21 369.89,-377.09 367,-376.14 287.4,-350.06 245.88,-394.32 182,-340.14 148.1,-311.39 72.96,-171.74 118,-104.14 120.57,-100.29 166.66,-81.64 202.59,-67.55"/>
+<polygon fill="red" stroke="red" points="203.9,-70.79 211.94,-63.89 201.35,-64.27 203.9,-70.79"/>
+<text text-anchor="middle" x="372.77" y="-373.03" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_arg13 -->
+<g id="node7" class="node">
+<title>Phi_arg13</title>
+<ellipse fill="lightyellow" stroke="black" cx="321" cy="-394.14" rx="37.09" ry="18"/>
+<text text-anchor="middle" x="321" y="-390.44" font-family="Times,serif" font-size="14.00">φ_arg</text>
+</g>
+<!-- Phi_arg13&#45;&gt;Start2 -->
+<g id="edge9" class="edge">
+<title>Phi_arg13&#45;&gt;Start2:p1</title>
+<path fill="none" stroke="black" d="M323.94,-412.28C328.4,-444.2 333.18,-513.39 300,-556.14 270.11,-594.65 201.29,-554.44 191.23,-590.04"/>
+<polygon fill="black" stroke="black" points="187.74,-589.79 190,-600.14 194.69,-590.64 187.74,-589.79"/>
+<text text-anchor="middle" x="320.94" y="-414.88" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_arg13&#45;&gt;Loop11 -->
+<g id="edge8" class="edge">
+<title>Phi_arg13&#45;&gt;Loop11</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M358.16,-394.14C360.62,-394.14 363.08,-394.14 365.55,-394.14"/>
+<polygon fill="black" stroke="black" points="365.67,-397.64 375.67,-394.14 365.67,-390.64 365.67,-397.64"/>
+<text text-anchor="middle" x="361.16" y="-387.74" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Sub35 -->
+<g id="node19" class="node">
+<title>Sub35</title>
+<ellipse fill="none" stroke="black" cx="218" cy="-322.14" rx="27" ry="18"/>
+<text text-anchor="middle" x="218" y="-318.44" font-family="Times,serif" font-size="14.00">&#45;</text>
+</g>
+<!-- LT14 -->
+<g id="node8" class="node">
+<title>LT14</title>
+<ellipse fill="none" stroke="black" cx="290" cy="-322.14" rx="27" ry="18"/>
+<text text-anchor="middle" x="290" y="-318.44" font-family="Times,serif" font-size="14.00">&lt;</text>
+</g>
+<!-- LT14&#45;&gt;Con_4 -->
+<g id="edge11" class="edge">
+<title>LT14&#45;&gt;Con_4</title>
+<path fill="none" stroke="black" d="M284.22,-340.12C280.96,-350.42 277.13,-363.89 275,-376.14 266.94,-422.56 264.72,-477.47 264.15,-509.69"/>
+<polygon fill="black" stroke="black" points="260.64,-510.04 264.01,-520.08 267.64,-510.13 260.64,-510.04"/>
+<text text-anchor="middle" x="281.22" y="-342.72" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- LT14&#45;&gt;Phi_arg13 -->
+<g id="edge12" class="edge">
+<title>LT14&#45;&gt;Phi_arg13</title>
+<path fill="none" stroke="black" d="M297.35,-339.73C300.92,-347.81 305.31,-357.71 309.33,-366.79"/>
+<polygon fill="black" stroke="black" points="306.24,-368.46 313.49,-376.19 312.64,-365.63 306.24,-368.46"/>
+<text text-anchor="middle" x="294.35" y="-342.33" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- If16 -->
+<g id="node9" class="node">
+<title>If16</title>
+<polygon fill="yellow" stroke="transparent" points="242,-239.14 242,-264.14 336,-264.14 336,-239.14 242,-239.14"/>
+<polygon fill="none" stroke="black" points="242,-239.14 242,-264.14 336,-264.14 336,-239.14 242,-239.14"/>
+<text text-anchor="start" x="283.5" y="-247.94" font-family="Times,serif" font-size="14.00">If</text>
+<polygon fill="none" stroke="black" points="242,-208.14 242,-239.14 336,-239.14 336,-208.14 242,-208.14"/>
+<polygon fill="yellow" stroke="transparent" points="247,-213.14 247,-234.14 287,-234.14 287,-213.14 247,-213.14"/>
+<polygon fill="none" stroke="black" points="247,-213.14 247,-234.14 287,-234.14 287,-213.14 247,-213.14"/>
+<text text-anchor="start" x="250" y="-219.94" font-family="Times,serif" font-size="14.00">True</text>
+<polygon fill="yellow" stroke="transparent" points="287,-213.14 287,-234.14 331,-234.14 331,-213.14 287,-213.14"/>
+<polygon fill="none" stroke="black" points="287,-213.14 287,-234.14 331,-234.14 331,-213.14 287,-213.14"/>
+<text text-anchor="start" x="290" y="-219.94" font-family="Times,serif" font-size="14.00">False</text>
+</g>
+<!-- If16&#45;&gt;Loop11 -->
+<g id="edge13" class="edge">
+<title>If16&#45;&gt;Loop11</title>
+<path fill="none" stroke="red" d="M311.8,-268.34C333.14,-297.54 364.63,-340.64 384.47,-367.78"/>
+<polygon fill="red" stroke="red" points="381.75,-369.99 390.47,-376 387.4,-365.86 381.75,-369.99"/>
+<text text-anchor="middle" x="308.8" y="-270.94" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- If16&#45;&gt;LT14 -->
+<g id="edge14" class="edge">
+<title>If16&#45;&gt;LT14</title>
+<path fill="none" stroke="black" d="M289.37,-268.42C289.47,-276.72 289.58,-285.63 289.67,-293.71"/>
+<polygon fill="black" stroke="black" points="286.17,-293.78 289.79,-303.74 293.17,-293.7 286.17,-293.78"/>
+<text text-anchor="middle" x="286.37" y="-271.02" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Div21 -->
+<g id="node10" class="node">
+<title>Div21</title>
+<ellipse fill="none" stroke="black" cx="63" cy="-394.14" rx="27" ry="18"/>
+<text text-anchor="middle" x="63" y="-390.44" font-family="Times,serif" font-size="14.00">//</text>
+</g>
+<!-- Div21&#45;&gt;Start2 -->
+<g id="edge15" class="edge">
+<title>Div21&#45;&gt;Start2:p1</title>
+<path fill="none" stroke="black" d="M70.68,-411.57C79.34,-429.71 94.16,-459.58 109,-484.14 139.67,-534.92 184.56,-537.17 189.54,-590.05"/>
+<polygon fill="black" stroke="black" points="186.05,-590.31 190,-600.14 193.05,-590 186.05,-590.31"/>
+<text text-anchor="middle" x="67.68" y="-414.17" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Con_22 -->
+<g id="node11" class="node">
+<title>Con_22</title>
+<ellipse fill="none" stroke="black" cx="145" cy="-466.14" rx="27" ry="18"/>
+<text text-anchor="middle" x="145" y="-462.44" font-family="Times,serif" font-size="14.00">#3</text>
+</g>
+<!-- Div21&#45;&gt;Con_22 -->
+<g id="edge16" class="edge">
+<title>Div21&#45;&gt;Con_22</title>
+<path fill="none" stroke="black" d="M79.2,-408.97C91.18,-419.2 107.69,-433.29 121.18,-444.8"/>
+<polygon fill="black" stroke="black" points="119.23,-447.75 129.11,-451.58 123.78,-442.43 119.23,-447.75"/>
+<text text-anchor="middle" x="76.2" y="-411.57" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- EQ23 -->
+<g id="node12" class="node">
+<title>EQ23</title>
+<ellipse fill="none" stroke="black" cx="389" cy="-236.14" rx="27" ry="18"/>
+<text text-anchor="middle" x="389" y="-232.44" font-family="Times,serif" font-size="14.00">==</text>
+</g>
+<!-- EQ23&#45;&gt;Phi_arg13 -->
+<g id="edge17" class="edge">
+<title>EQ23&#45;&gt;Phi_arg13</title>
+<path fill="none" stroke="black" d="M381.85,-253.54C370.11,-280.48 346.63,-334.34 332.52,-366.71"/>
+<polygon fill="black" stroke="black" points="329.25,-365.45 328.46,-376.02 335.67,-368.25 329.25,-365.45"/>
+<text text-anchor="middle" x="378.85" y="-256.14" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Con_24 -->
+<g id="node13" class="node">
+<title>Con_24</title>
+<ellipse fill="none" stroke="black" cx="402" cy="-322.14" rx="27" ry="18"/>
+<text text-anchor="middle" x="402" y="-318.44" font-family="Times,serif" font-size="14.00">#5</text>
+</g>
+<!-- EQ23&#45;&gt;Con_24 -->
+<g id="edge18" class="edge">
+<title>EQ23&#45;&gt;Con_24</title>
+<path fill="none" stroke="black" d="M391.63,-254.14C393.41,-265.64 395.8,-281.07 397.83,-294.23"/>
+<polygon fill="black" stroke="black" points="394.38,-294.82 399.37,-304.17 401.3,-293.75 394.38,-294.82"/>
+<text text-anchor="middle" x="388.63" y="-256.74" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- If25 -->
+<g id="node14" class="node">
+<title>If25</title>
+<polygon fill="yellow" stroke="transparent" points="220,-139.14 220,-164.14 314,-164.14 314,-139.14 220,-139.14"/>
+<polygon fill="none" stroke="black" points="220,-139.14 220,-164.14 314,-164.14 314,-139.14 220,-139.14"/>
+<text text-anchor="start" x="261.5" y="-147.94" font-family="Times,serif" font-size="14.00">If</text>
+<polygon fill="none" stroke="black" points="220,-108.14 220,-139.14 314,-139.14 314,-108.14 220,-108.14"/>
+<polygon fill="yellow" stroke="transparent" points="225,-113.14 225,-134.14 265,-134.14 265,-113.14 225,-113.14"/>
+<polygon fill="none" stroke="black" points="225,-113.14 225,-134.14 265,-134.14 265,-113.14 225,-113.14"/>
+<text text-anchor="start" x="228" y="-119.94" font-family="Times,serif" font-size="14.00">True</text>
+<polygon fill="yellow" stroke="transparent" points="265,-113.14 265,-134.14 309,-134.14 309,-113.14 265,-113.14"/>
+<polygon fill="none" stroke="black" points="265,-113.14 265,-134.14 309,-134.14 309,-113.14 265,-113.14"/>
+<text text-anchor="start" x="268" y="-119.94" font-family="Times,serif" font-size="14.00">False</text>
+</g>
+<!-- If25&#45;&gt;If16 -->
+<g id="edge19" class="edge">
+<title>If25&#45;&gt;If16:p0</title>
+<path fill="none" stroke="red" d="M267,-168.16C267,-178.61 267,-190.56 267,-202.13"/>
+<polygon fill="red" stroke="red" points="263.5,-202.14 267,-212.14 270.5,-202.14 263.5,-202.14"/>
+<text text-anchor="middle" x="264" y="-170.76" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- If25&#45;&gt;EQ23 -->
+<g id="edge20" class="edge">
+<title>If25&#45;&gt;EQ23</title>
+<path fill="none" stroke="black" d="M308.01,-168.43C322.36,-179.56 338.51,-192.27 353,-204.14 357.12,-207.52 361.45,-211.17 365.63,-214.73"/>
+<polygon fill="black" stroke="black" points="363.51,-217.52 373.37,-221.39 368.08,-212.22 363.51,-217.52"/>
+<text text-anchor="middle" x="305.01" y="-171.03" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_230 -->
+<g id="node15" class="node">
+<title>Phi_230</title>
+<ellipse fill="lightyellow" stroke="black" cx="141" cy="-394.14" rx="33.29" ry="18"/>
+<text text-anchor="middle" x="141" y="-390.44" font-family="Times,serif" font-size="14.00">φ_$2</text>
+</g>
+<!-- Phi_230&#45;&gt;Store10 -->
+<g id="edge22" class="edge">
+<title>Phi_230&#45;&gt;Store10</title>
+<path fill="none" stroke="blue" d="M157.33,-409.99C168.27,-419.93 182.82,-433.16 194.94,-444.18"/>
+<polygon fill="blue" stroke="blue" points="192.73,-446.9 202.48,-451.04 197.44,-441.72 192.73,-446.9"/>
+<text text-anchor="middle" x="154.33" y="-412.59" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_230&#45;&gt;Loop11 -->
+<g id="edge21" class="edge">
+<title>Phi_230&#45;&gt;Loop11</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M157.93,-378.17C167.22,-370.51 179.4,-362.14 192,-358.14 262.32,-335.82 288.38,-333.72 358,-358.14 365.14,-360.65 371.99,-364.81 378.09,-369.44"/>
+<polygon fill="black" stroke="black" points="375.99,-372.24 385.92,-375.93 380.45,-366.85 375.99,-372.24"/>
+<text text-anchor="middle" x="154.93" y="-371.77" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Phi_233 -->
+<g id="node18" class="node">
+<title>Phi_233</title>
+<ellipse fill="lightyellow" stroke="black" cx="84" cy="-50.14" rx="33.29" ry="18"/>
+<text text-anchor="middle" x="84" y="-46.44" font-family="Times,serif" font-size="14.00">φ_$2</text>
+</g>
+<!-- Store31 -->
+<g id="node16" class="node">
+<title>Store31</title>
+<ellipse fill="none" stroke="black" cx="84" cy="-322.14" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="84" y="-318.44" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store31&#45;&gt;new9 -->
+<g id="edge25" class="edge">
+<title>Store31&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M64.25,-334.88C46.61,-346.87 22.71,-367.36 17,-393.14"/>
+<text text-anchor="middle" x="61.25" y="-337.48" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store31&#45;&gt;Div21 -->
+<g id="edge26" class="edge">
+<title>Store31&#45;&gt;Div21</title>
+<path fill="none" stroke="black" d="M78.92,-340.09C76.52,-348.08 73.6,-357.81 70.92,-366.74"/>
+<polygon fill="black" stroke="black" points="67.56,-365.77 68.04,-376.35 74.26,-367.78 67.56,-365.77"/>
+<text text-anchor="middle" x="75.92" y="-342.69" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Store31&#45;&gt;Phi_230 -->
+<g id="edge24" class="edge">
+<title>Store31&#45;&gt;Phi_230</title>
+<path fill="none" stroke="blue" d="M96.37,-338.33C103.81,-347.47 113.44,-359.29 121.84,-369.62"/>
+<polygon fill="blue" stroke="blue" points="119.23,-371.95 128.26,-377.5 124.66,-367.53 119.23,-371.95"/>
+<text text-anchor="middle" x="93.37" y="-340.93" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region32&#45;&gt;If25 -->
+<g id="edge27" class="edge">
+<title>Region32&#45;&gt;If25:p0</title>
+<path fill="none" stroke="red" d="M245,-68.23C245,-77.69 245,-89.92 245,-101.83"/>
+<polygon fill="red" stroke="red" points="241.5,-102.14 245,-112.14 248.5,-102.14 241.5,-102.14"/>
+<text text-anchor="middle" x="242" y="-70.83" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region32&#45;&gt;If25 -->
+<g id="edge28" class="edge">
+<title>Region32&#45;&gt;If25:p1</title>
+<path fill="none" stroke="red" d="M265.02,-68.27C273.64,-77.2 282.48,-88.98 285.71,-101.99"/>
+<polygon fill="red" stroke="red" points="282.27,-102.66 287,-112.14 289.22,-101.78 282.27,-102.66"/>
+<text text-anchor="middle" x="262.02" y="-70.87" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_233&#45;&gt;Phi_230 -->
+<g id="edge31" class="edge">
+<title>Phi_233&#45;&gt;Phi_230</title>
+<path fill="none" stroke="blue" d="M70.91,-76.61C45.62,-129.65 -3.2,-254.21 47,-340.14 53.76,-351.71 82.3,-366.89 106.18,-378.04"/>
+<polygon fill="blue" stroke="blue" points="74.08,-78.08 75.32,-67.56 67.79,-75.01 74.08,-78.08"/>
+<polygon fill="blue" stroke="blue" points="104.83,-381.28 115.38,-382.25 107.74,-374.91 104.83,-381.28"/>
+<text text-anchor="middle" x="72.32" y="-70.16" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_233&#45;&gt;Store31 -->
+<g id="edge30" class="edge">
+<title>Phi_233&#45;&gt;Store31</title>
+<path fill="none" stroke="blue" d="M84,-68.44C84,-114.16 84,-238.47 84,-293.87"/>
+<polygon fill="blue" stroke="blue" points="80.5,-293.99 84,-303.99 87.5,-293.99 80.5,-293.99"/>
+<text text-anchor="middle" x="81" y="-71.04" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_233&#45;&gt;Region32 -->
+<g id="edge29" class="edge">
+<title>Phi_233&#45;&gt;Region32</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M97.7,-33.41C107.03,-23.4 120.31,-11.6 135,-6.14 157.5,2.22 166.32,1.7 189,-6.14 200.57,-10.14 211.56,-17.63 220.7,-25.31"/>
+<polygon fill="black" stroke="black" points="218.43,-27.97 228.22,-32.02 223.09,-22.75 218.43,-27.97"/>
+<text text-anchor="middle" x="94.7" y="-27.01" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Sub35&#45;&gt;Phi_arg13 -->
+<g id="edge32" class="edge">
+<title>Sub35&#45;&gt;Phi_arg13</title>
+<path fill="none" stroke="black" d="M244.96,-341.46C259.41,-351.29 277.23,-363.39 291.98,-373.42"/>
+<polygon fill="black" stroke="black" points="246.65,-338.38 236.41,-335.66 242.72,-344.17 246.65,-338.38"/>
+<polygon fill="black" stroke="black" points="290.03,-376.33 300.27,-379.05 293.96,-370.54 290.03,-376.33"/>
+<text text-anchor="middle" x="233.41" y="-338.26" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Con_36 -->
+<g id="node20" class="node">
+<title>Con_36</title>
+<ellipse fill="none" stroke="black" cx="219" cy="-394.14" rx="27" ry="18"/>
+<text text-anchor="middle" x="219" y="-390.44" font-family="Times,serif" font-size="14.00">#1</text>
+</g>
+<!-- Sub35&#45;&gt;Con_36 -->
+<g id="edge33" class="edge">
+<title>Sub35&#45;&gt;Con_36</title>
+<path fill="none" stroke="black" d="M218.25,-340.45C218.36,-348.16 218.49,-357.43 218.61,-366.03"/>
+<polygon fill="black" stroke="black" points="215.11,-366.09 218.76,-376.04 222.11,-365.99 215.11,-366.09"/>
+<text text-anchor="middle" x="215.25" y="-343.05" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Return37&#45;&gt;new9 -->
+<g id="edge35" class="edge">
+<title>Return37&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M146.13,-154.21C122.96,-183.41 76.06,-245.48 47,-304.14 28.47,-341.55 26.02,-352.39 17,-393.14"/>
+<path fill="none" stroke="black" d="M17,-395.14C5.47,-435.72 24.68,-483.11 39.73,-511.59"/>
+<polygon fill="black" stroke="black" points="36.74,-513.41 44.63,-520.48 42.87,-510.03 36.74,-513.41"/>
+<text text-anchor="middle" x="143.13" y="-156.81" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Return37&#45;&gt;If16 -->
+<g id="edge34" class="edge">
+<title>Return37&#45;&gt;If16:p1</title>
+<path fill="none" stroke="red" d="M181.67,-154.25C188.31,-159.08 195.77,-164.11 203,-168.14 244.24,-191.16 299.97,-165.55 308.02,-202.1"/>
+<polygon fill="red" stroke="red" points="304.54,-202.53 309,-212.14 311.51,-201.85 304.54,-202.53"/>
+<text text-anchor="middle" x="178.67" y="-156.85" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return37&#45;&gt;Phi_230 -->
+<g id="edge36" class="edge">
+<title>Return37&#45;&gt;Phi_230</title>
+<path fill="none" stroke="blue" d="M158.72,-154.34C155.49,-197.97 146.93,-313.25 143.01,-366.05"/>
+<polygon fill="blue" stroke="blue" points="139.52,-365.79 142.27,-376.02 146.5,-366.31 139.52,-365.79"/>
+<text text-anchor="middle" x="155.72" y="-156.94" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+</g>
+</svg>
diff --git a/chapter11/docs/graph5.gv b/chapter11/docs/graph5.gv
new file mode 100644
index 00000000..9ebc11cb
--- /dev/null
+++ b/chapter11/docs/graph5.gv
@@ -0,0 +1,113 @@
+digraph chapter11 {
+/*
+struct S { int f; }
+S v = new S;
+int i = arg;
+while (arg > 0) {
+ int j = i/3;
+ if (arg == 5)
+ v.f = j;
+ arg = arg - 1;
+}
+return v;
+
+*/
+ rankdir=BT;
+ concentrate="true";
+ compound="true";
+ subgraph cluster_Nodes {
+ Start2 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">Start</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD><TD PORT="p1">arg</TD><TD PORT="p2">$2</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Stop3 [ shape=box style=filled fillcolor=yellow label="Stop" ];
+ Con_4 [ label="#0" ];
+ new9 [ label="new S" ];
+ Store10 [ label=".f =" ];
+ Loop11 [ shape=box style=filled fillcolor=yellow label="Loop" ];
+ Phi_arg13 [ style=filled fillcolor=lightyellow label="&phi;_arg" ];
+ LT14 [ label="<" ];
+ If16 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Div21 [ label="//" ];
+ Con_22 [ label="#3" ];
+ EQ23 [ label="==" ];
+ Con_24 [ label="#5" ];
+ If25 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Phi_230 [ style=filled fillcolor=lightyellow label="&phi;_$2" ];
+ Store31 [ label=".f =" ];
+ Region32 [ shape=box style=filled fillcolor=yellow label="Region" ];
+ Phi_233 [ style=filled fillcolor=lightyellow label="&phi;_$2" ];
+ Sub35 [ label="-" ];
+ Con_36 [ label="#1" ];
+ Return37 [ shape=box style=filled fillcolor=yellow label="Return" ];
+ { rank=same; Loop11;Phi_230;Phi_arg13;}
+ { rank=same; Region32;Phi_233;}
+ }
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Stop3 -> Return37[taillabel=0 color=red];
+ new9 -> Start2:p0[taillabel=0 color=green];
+ Store10 -> Start2:p0[taillabel=0 color=red];
+ Store10 -> Start2:p2[taillabel=1 color=blue];
+ Store10 -> new9[taillabel=2];
+ Store10 -> Con_4[taillabel=3];
+ Loop11 -> Start2:p0[taillabel=1 color=red];
+ Loop11 -> Region32[taillabel=2 color=red constraint=false];
+ Phi_arg13 -> Loop11 [style=dotted taillabel=0];
+ Phi_arg13 -> Start2:p1[taillabel=1];
+ Phi_arg13 -> Sub35[taillabel=2 constraint=false];
+ LT14 -> Loop11[taillabel=0 color=red];
+ LT14 -> Con_4[taillabel=1];
+ LT14 -> Phi_arg13[taillabel=2];
+ If16 -> Loop11[taillabel=0 color=red];
+ If16 -> LT14[taillabel=1];
+ Div21 -> Start2[taillabel=0 color=red];
+ Div21 -> Start2:p1[taillabel=1];
+ Div21 -> Con_22[taillabel=2];
+ EQ23 -> Loop11[taillabel=0 color=red];
+ EQ23 -> Phi_arg13[taillabel=1];
+ EQ23 -> Con_24[taillabel=2];
+ If25 -> If16:p0[taillabel=0 color=red];
+ If25 -> EQ23[taillabel=1];
+ Phi_230 -> Loop11 [style=dotted taillabel=0];
+ Phi_230 -> Store10[taillabel=1 color=blue];
+ Phi_230 -> Phi_233[taillabel=2 color=blue constraint=false];
+ Store31 -> Loop11[taillabel=0 color=red];
+ Store31 -> Phi_230[taillabel=1 color=blue];
+ Store31 -> new9[taillabel=2];
+ Store31 -> Div21[taillabel=3];
+ Region32 -> If25:p0[taillabel=1 color=red];
+ Region32 -> If25:p1[taillabel=2 color=red];
+ Phi_233 -> Region32 [style=dotted taillabel=0];
+ Phi_233 -> Store31[taillabel=1 color=blue];
+ Phi_233 -> Phi_230[taillabel=2 color=blue constraint=false];
+ Sub35 -> Loop11[taillabel=0 color=red];
+ Sub35 -> Phi_arg13[taillabel=1];
+ Sub35 -> Con_36[taillabel=2];
+ Return37 -> If16:p1[taillabel=0 color=red];
+ Return37 -> new9[taillabel=1];
+ Return37 -> Phi_230[taillabel=2 color=blue];
+} \ No newline at end of file
diff --git a/chapter11/docs/graph5.svg b/chapter11/docs/graph5.svg
new file mode 100644
index 00000000..6dbf29f9
--- /dev/null
+++ b/chapter11/docs/graph5.svg
@@ -0,0 +1,452 @@
+<?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.43.0 (0)
+ -->
+<!-- Title: chapter11 Pages: 1 -->
+<svg width="474pt" height="680pt"
+ viewBox="0.00 0.00 474.00 679.67" 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 675.67)">
+<title>chapter11</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-675.67 470,-675.67 470,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_Nodes</title>
+<polygon fill="none" stroke="black" points="8,-23.67 8,-663.67 458,-663.67 458,-23.67 8,-23.67"/>
+</g>
+<!-- Start2 -->
+<g id="node1" class="node">
+<title>Start2</title>
+<polygon fill="yellow" stroke="transparent" points="109,-626.67 109,-651.67 215,-651.67 215,-626.67 109,-626.67"/>
+<polygon fill="none" stroke="black" points="109,-626.67 109,-651.67 215,-651.67 215,-626.67 109,-626.67"/>
+<text text-anchor="start" x="143.5" y="-635.47" font-family="Times,serif" font-size="14.00">Start</text>
+<polygon fill="none" stroke="black" points="109,-595.67 109,-626.67 215,-626.67 215,-595.67 109,-595.67"/>
+<polygon fill="yellow" stroke="transparent" points="114,-600.67 114,-621.67 154,-621.67 154,-600.67 114,-600.67"/>
+<polygon fill="none" stroke="black" points="114,-600.67 114,-621.67 154,-621.67 154,-600.67 114,-600.67"/>
+<text text-anchor="start" x="117" y="-607.47" font-family="Times,serif" font-size="14.00">$ctrl</text>
+<polygon fill="none" stroke="black" points="154,-600.67 154,-621.67 185,-621.67 185,-600.67 154,-600.67"/>
+<text text-anchor="start" x="157" y="-607.47" font-family="Times,serif" font-size="14.00">arg</text>
+<polygon fill="none" stroke="black" points="185,-600.67 185,-621.67 210,-621.67 210,-600.67 185,-600.67"/>
+<text text-anchor="start" x="188" y="-607.47" font-family="Times,serif" font-size="14.00">$2</text>
+</g>
+<!-- Stop3 -->
+<g id="node2" class="node">
+<title>Stop3</title>
+<polygon fill="yellow" stroke="black" points="178,-67.67 124,-67.67 124,-31.67 178,-31.67 178,-67.67"/>
+<text text-anchor="middle" x="151" y="-45.97" font-family="Times,serif" font-size="14.00">Stop</text>
+</g>
+<!-- Return37 -->
+<g id="node21" class="node">
+<title>Return37</title>
+<polygon fill="yellow" stroke="black" points="184,-153.67 118,-153.67 118,-117.67 184,-117.67 184,-153.67"/>
+<text text-anchor="middle" x="151" y="-131.97" font-family="Times,serif" font-size="14.00">Return</text>
+</g>
+<!-- Stop3&#45;&gt;Return37 -->
+<g id="edge1" class="edge">
+<title>Stop3&#45;&gt;Return37</title>
+<path fill="none" stroke="red" d="M151,-68.08C151,-79.42 151,-94.45 151,-107.36"/>
+<polygon fill="red" stroke="red" points="147.5,-107.58 151,-117.58 154.5,-107.58 147.5,-107.58"/>
+<text text-anchor="middle" x="148" y="-70.68" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_4 -->
+<g id="node3" class="node">
+<title>Con_4</title>
+<ellipse fill="none" stroke="black" cx="262" cy="-537.67" rx="27" ry="18"/>
+<text text-anchor="middle" x="262" y="-533.97" font-family="Times,serif" font-size="14.00">#0</text>
+</g>
+<!-- new9 -->
+<g id="node4" class="node">
+<title>new9</title>
+<ellipse fill="none" stroke="black" cx="127" cy="-537.67" rx="38.99" ry="18"/>
+<text text-anchor="middle" x="127" y="-533.97" font-family="Times,serif" font-size="14.00">new S</text>
+</g>
+<!-- new9&#45;&gt;Start2 -->
+<g id="edge2" class="edge">
+<title>new9&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="green" d="M130.01,-555.71C131.49,-565.24 133.09,-577.6 133.72,-589.67"/>
+<polygon fill="green" stroke="green" points="130.22,-589.78 134,-599.67 137.22,-589.58 130.22,-589.78"/>
+<text text-anchor="middle" x="127.01" y="-558.31" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store10 -->
+<g id="node5" class="node">
+<title>Store10</title>
+<ellipse fill="none" stroke="black" cx="138" cy="-465.67" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="138" y="-461.97" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store10&#45;&gt;Start2 -->
+<g id="edge3" class="edge">
+<title>Store10&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M154.15,-480.42C167.51,-493.39 184.39,-514.14 185,-536.67"/>
+<path fill="none" stroke="red" d="M185,-538.67C185.75,-566.42 153.85,-566.41 140.14,-582.26"/>
+<polygon fill="red" stroke="red" points="136.81,-581.05 135.08,-591.5 142.95,-584.41 136.81,-581.05"/>
+<text text-anchor="middle" x="151.15" y="-483.02" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store10&#45;&gt;Start2 -->
+<g id="edge4" class="edge">
+<title>Store10&#45;&gt;Start2:p2</title>
+<path fill="none" stroke="blue" d="M155.9,-479.6C167.73,-489.22 182.4,-503.45 190,-519.67 203.61,-548.75 199.22,-561.31 198.19,-589.48"/>
+<polygon fill="blue" stroke="blue" points="194.69,-589.61 198,-599.67 201.69,-589.74 194.69,-589.61"/>
+<text text-anchor="middle" x="158.9" y="-482.2" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store10&#45;&gt;Con_4 -->
+<g id="edge6" class="edge">
+<title>Store10&#45;&gt;Con_4</title>
+<path fill="none" stroke="black" d="M158.48,-478.23C178.79,-489.7 210.11,-507.38 232.98,-520.29"/>
+<polygon fill="black" stroke="black" points="231.48,-523.46 241.9,-525.33 234.92,-517.37 231.48,-523.46"/>
+<text text-anchor="middle" x="155.48" y="-471.83" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Store10&#45;&gt;new9 -->
+<g id="edge5" class="edge">
+<title>Store10&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M135.34,-483.62C134.13,-491.33 132.66,-500.65 131.3,-509.31"/>
+<polygon fill="black" stroke="black" points="127.81,-508.98 129.71,-519.4 134.72,-510.06 127.81,-508.98"/>
+<text text-anchor="middle" x="132.34" y="-486.22" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Loop11 -->
+<g id="node6" class="node">
+<title>Loop11</title>
+<polygon fill="yellow" stroke="black" points="194,-411.67 140,-411.67 140,-375.67 194,-375.67 194,-411.67"/>
+<text text-anchor="middle" x="167" y="-389.97" font-family="Times,serif" font-size="14.00">Loop</text>
+</g>
+<!-- Loop11&#45;&gt;Start2 -->
+<g id="edge7" class="edge">
+<title>Loop11&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M170.34,-412.08C175.19,-438.77 183.78,-491.46 185,-536.67"/>
+<text text-anchor="middle" x="167.34" y="-414.68" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region32 -->
+<g id="node17" class="node">
+<title>Region32</title>
+<polygon fill="yellow" stroke="black" points="268,-67.67 202,-67.67 202,-31.67 268,-31.67 268,-67.67"/>
+<text text-anchor="middle" x="235" y="-45.97" font-family="Times,serif" font-size="14.00">Region</text>
+</g>
+<!-- Loop11&#45;&gt;Region32 -->
+<g id="edge8" class="edge">
+<title>Loop11&#45;&gt;Region32</title>
+<path fill="none" stroke="red" d="M155.44,-375.36C125.2,-327.71 50.11,-192.34 109,-103.67 114.01,-96.13 157.85,-78.74 192.42,-65.93"/>
+<polygon fill="red" stroke="red" points="193.71,-69.18 201.89,-62.45 191.3,-62.61 193.71,-69.18"/>
+<text text-anchor="middle" x="152.44" y="-368.96" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_arg13 -->
+<g id="node7" class="node">
+<title>Phi_arg13</title>
+<ellipse fill="lightyellow" stroke="black" cx="341" cy="-393.67" rx="37.09" ry="18"/>
+<text text-anchor="middle" x="341" y="-389.97" font-family="Times,serif" font-size="14.00">φ_arg</text>
+</g>
+<!-- Phi_arg13&#45;&gt;Start2 -->
+<g id="edge10" class="edge">
+<title>Phi_arg13&#45;&gt;Start2:p1</title>
+<path fill="none" stroke="black" d="M341.39,-411.71C341.18,-444.06 336.07,-514.83 298,-555.67 259.62,-596.84 181.02,-546.84 171.05,-589.48"/>
+<polygon fill="black" stroke="black" points="167.54,-589.37 170,-599.67 174.5,-590.09 167.54,-589.37"/>
+<text text-anchor="middle" x="338.39" y="-414.31" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_arg13&#45;&gt;Loop11 -->
+<g id="edge9" class="edge">
+<title>Phi_arg13&#45;&gt;Loop11</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M321.44,-378.23C310.28,-370.41 295.63,-361.73 281,-357.67 251.45,-349.49 240.94,-347.52 212,-357.67 204.86,-360.18 198.01,-364.35 191.91,-368.97"/>
+<polygon fill="black" stroke="black" points="189.55,-366.38 184.08,-375.46 194.01,-371.77 189.55,-366.38"/>
+<text text-anchor="middle" x="318.44" y="-371.83" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Sub35 -->
+<g id="node19" class="node">
+<title>Sub35</title>
+<ellipse fill="none" stroke="black" cx="217" cy="-321.67" rx="27" ry="18"/>
+<text text-anchor="middle" x="217" y="-317.97" font-family="Times,serif" font-size="14.00">&#45;</text>
+</g>
+<!-- LT14 -->
+<g id="node8" class="node">
+<title>LT14</title>
+<ellipse fill="none" stroke="black" cx="289" cy="-321.67" rx="27" ry="18"/>
+<text text-anchor="middle" x="289" y="-317.97" font-family="Times,serif" font-size="14.00">&lt;</text>
+</g>
+<!-- LT14&#45;&gt;Con_4 -->
+<g id="edge13" class="edge">
+<title>LT14&#45;&gt;Con_4</title>
+<path fill="none" stroke="black" d="M286.84,-339.83C282.17,-376.84 271.11,-464.49 265.46,-509.29"/>
+<polygon fill="black" stroke="black" points="261.95,-509.08 264.17,-519.44 268.9,-509.96 261.95,-509.08"/>
+<text text-anchor="middle" x="283.84" y="-342.43" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- LT14&#45;&gt;Loop11 -->
+<g id="edge12" class="edge">
+<title>LT14&#45;&gt;Loop11</title>
+<path fill="none" stroke="red" d="M269.13,-334.08C251.28,-344.31 224.66,-359.59 203.06,-371.98"/>
+<polygon fill="red" stroke="red" points="201.09,-369.08 194.16,-377.09 204.57,-375.15 201.09,-369.08"/>
+<text text-anchor="middle" x="266.13" y="-336.68" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- LT14&#45;&gt;Phi_arg13 -->
+<g id="edge14" class="edge">
+<title>LT14&#45;&gt;Phi_arg13</title>
+<path fill="none" stroke="black" d="M300.54,-338.21C307.02,-346.93 315.26,-358.02 322.61,-367.91"/>
+<polygon fill="black" stroke="black" points="319.99,-370.27 328.77,-376.21 325.61,-366.09 319.99,-370.27"/>
+<text text-anchor="middle" x="297.54" y="-340.81" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- If16 -->
+<g id="node9" class="node">
+<title>If16</title>
+<polygon fill="yellow" stroke="transparent" points="205,-238.67 205,-263.67 299,-263.67 299,-238.67 205,-238.67"/>
+<polygon fill="none" stroke="black" points="205,-238.67 205,-263.67 299,-263.67 299,-238.67 205,-238.67"/>
+<text text-anchor="start" x="246.5" y="-247.47" font-family="Times,serif" font-size="14.00">If</text>
+<polygon fill="none" stroke="black" points="205,-207.67 205,-238.67 299,-238.67 299,-207.67 205,-207.67"/>
+<polygon fill="yellow" stroke="transparent" points="210,-212.67 210,-233.67 250,-233.67 250,-212.67 210,-212.67"/>
+<polygon fill="none" stroke="black" points="210,-212.67 210,-233.67 250,-233.67 250,-212.67 210,-212.67"/>
+<text text-anchor="start" x="213" y="-219.47" font-family="Times,serif" font-size="14.00">True</text>
+<polygon fill="yellow" stroke="transparent" points="250,-212.67 250,-233.67 294,-233.67 294,-212.67 250,-212.67"/>
+<polygon fill="none" stroke="black" points="250,-212.67 250,-233.67 294,-233.67 294,-212.67 250,-212.67"/>
+<text text-anchor="start" x="253" y="-219.47" font-family="Times,serif" font-size="14.00">False</text>
+</g>
+<!-- If16&#45;&gt;Loop11 -->
+<g id="edge15" class="edge">
+<title>If16&#45;&gt;Loop11</title>
+<path fill="none" stroke="red" d="M209.76,-267.98C198.76,-278.17 188.03,-290.33 181,-303.67 170.94,-322.76 167.65,-347.11 166.77,-365.52"/>
+<polygon fill="red" stroke="red" points="163.27,-365.49 166.49,-375.59 170.26,-365.69 163.27,-365.49"/>
+<text text-anchor="middle" x="206.76" y="-270.58" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- If16&#45;&gt;LT14 -->
+<g id="edge16" class="edge">
+<title>If16&#45;&gt;LT14</title>
+<path fill="none" stroke="black" d="M265.78,-267.95C269.68,-276.8 273.87,-286.34 277.62,-294.83"/>
+<polygon fill="black" stroke="black" points="274.52,-296.48 281.75,-304.22 280.92,-293.65 274.52,-296.48"/>
+<text text-anchor="middle" x="262.78" y="-270.55" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Div21 -->
+<g id="node10" class="node">
+<title>Div21</title>
+<ellipse fill="none" stroke="black" cx="43" cy="-537.67" rx="27" ry="18"/>
+<text text-anchor="middle" x="43" y="-533.97" font-family="Times,serif" font-size="14.00">//</text>
+</g>
+<!-- Div21&#45;&gt;Start2 -->
+<g id="edge17" class="edge">
+<title>Div21&#45;&gt;Start2</title>
+<path fill="none" stroke="red" d="M60.82,-551.25C73.8,-560.41 92.1,-573.33 109.58,-585.67"/>
+<polygon fill="red" stroke="red" points="107.88,-588.75 118.07,-591.66 111.91,-583.04 107.88,-588.75"/>
+<text text-anchor="middle" x="57.82" y="-553.85" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Div21&#45;&gt;Start2 -->
+<g id="edge18" class="edge">
+<title>Div21&#45;&gt;Start2:p1</title>
+<path fill="none" stroke="black" d="M64.54,-548.87C92.71,-562.22 140.81,-585.08 160.83,-594.93"/>
+<polygon fill="black" stroke="black" points="159.51,-598.19 170,-599.67 162.72,-591.97 159.51,-598.19"/>
+<text text-anchor="middle" x="67.54" y="-551.47" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Con_22 -->
+<g id="node11" class="node">
+<title>Con_22</title>
+<ellipse fill="none" stroke="black" cx="43" cy="-623.67" rx="27" ry="18"/>
+<text text-anchor="middle" x="43" y="-619.97" font-family="Times,serif" font-size="14.00">#3</text>
+</g>
+<!-- Div21&#45;&gt;Con_22 -->
+<g id="edge19" class="edge">
+<title>Div21&#45;&gt;Con_22</title>
+<path fill="none" stroke="black" d="M43,-556.08C43,-567.42 43,-582.45 43,-595.36"/>
+<polygon fill="black" stroke="black" points="39.5,-595.58 43,-605.58 46.5,-595.58 39.5,-595.58"/>
+<text text-anchor="middle" x="40" y="-558.68" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- EQ23 -->
+<g id="node12" class="node">
+<title>EQ23</title>
+<ellipse fill="none" stroke="black" cx="361" cy="-321.67" rx="27" ry="18"/>
+<text text-anchor="middle" x="361" y="-317.97" font-family="Times,serif" font-size="14.00">==</text>
+</g>
+<!-- EQ23&#45;&gt;Loop11 -->
+<g id="edge20" class="edge">
+<title>EQ23&#45;&gt;Loop11</title>
+<path fill="none" stroke="red" d="M339.92,-333.3C335.08,-335.55 329.91,-337.8 325,-339.67 274.96,-358.74 257.65,-355.93 203.69,-375.71"/>
+<polygon fill="red" stroke="red" points="202.46,-372.44 194.33,-379.24 204.92,-378.99 202.46,-372.44"/>
+<text text-anchor="middle" x="336.92" y="-335.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- EQ23&#45;&gt;Phi_arg13 -->
+<g id="edge21" class="edge">
+<title>EQ23&#45;&gt;Phi_arg13</title>
+<path fill="none" stroke="black" d="M356.16,-339.62C353.93,-347.41 351.23,-356.85 348.74,-365.6"/>
+<polygon fill="black" stroke="black" points="345.32,-364.82 345.94,-375.4 352.05,-366.75 345.32,-364.82"/>
+<text text-anchor="middle" x="353.16" y="-342.22" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Con_24 -->
+<g id="node13" class="node">
+<title>Con_24</title>
+<ellipse fill="none" stroke="black" cx="423" cy="-393.67" rx="27" ry="18"/>
+<text text-anchor="middle" x="423" y="-389.97" font-family="Times,serif" font-size="14.00">#5</text>
+</g>
+<!-- EQ23&#45;&gt;Con_24 -->
+<g id="edge22" class="edge">
+<title>EQ23&#45;&gt;Con_24</title>
+<path fill="none" stroke="black" d="M374.15,-337.52C382.53,-346.99 393.56,-359.44 403.02,-370.11"/>
+<polygon fill="black" stroke="black" points="400.62,-372.69 409.87,-377.85 405.86,-368.04 400.62,-372.69"/>
+<text text-anchor="middle" x="371.15" y="-340.12" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- If25 -->
+<g id="node14" class="node">
+<title>If25</title>
+<polygon fill="yellow" stroke="transparent" points="210,-138.67 210,-163.67 304,-163.67 304,-138.67 210,-138.67"/>
+<polygon fill="none" stroke="black" points="210,-138.67 210,-163.67 304,-163.67 304,-138.67 210,-138.67"/>
+<text text-anchor="start" x="251.5" y="-147.47" font-family="Times,serif" font-size="14.00">If</text>
+<polygon fill="none" stroke="black" points="210,-107.67 210,-138.67 304,-138.67 304,-107.67 210,-107.67"/>
+<polygon fill="yellow" stroke="transparent" points="215,-112.67 215,-133.67 255,-133.67 255,-112.67 215,-112.67"/>
+<polygon fill="none" stroke="black" points="215,-112.67 215,-133.67 255,-133.67 255,-112.67 215,-112.67"/>
+<text text-anchor="start" x="218" y="-119.47" font-family="Times,serif" font-size="14.00">True</text>
+<polygon fill="yellow" stroke="transparent" points="255,-112.67 255,-133.67 299,-133.67 299,-112.67 255,-112.67"/>
+<polygon fill="none" stroke="black" points="255,-112.67 255,-133.67 299,-133.67 299,-112.67 255,-112.67"/>
+<text text-anchor="start" x="258" y="-119.47" font-family="Times,serif" font-size="14.00">False</text>
+</g>
+<!-- If25&#45;&gt;If16 -->
+<g id="edge23" class="edge">
+<title>If25&#45;&gt;If16:p0</title>
+<path fill="none" stroke="red" d="M240.36,-167.91C236.06,-178.07 232.22,-189.75 230.69,-201.44"/>
+<polygon fill="red" stroke="red" points="227.18,-201.46 230,-211.67 234.17,-201.93 227.18,-201.46"/>
+<text text-anchor="middle" x="237.36" y="-170.51" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- If25&#45;&gt;EQ23 -->
+<g id="edge24" class="edge">
+<title>If25&#45;&gt;EQ23</title>
+<path fill="none" stroke="black" d="M288.6,-167.9C298.28,-178.61 308.37,-191.08 316,-203.67 333.46,-232.5 346.27,-269.27 353.66,-293.82"/>
+<polygon fill="black" stroke="black" points="350.33,-294.92 356.49,-303.54 357.05,-292.96 350.33,-294.92"/>
+<text text-anchor="middle" x="285.6" y="-170.5" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_230 -->
+<g id="node15" class="node">
+<title>Phi_230</title>
+<ellipse fill="lightyellow" stroke="black" cx="89" cy="-393.67" rx="33.29" ry="18"/>
+<text text-anchor="middle" x="89" y="-389.97" font-family="Times,serif" font-size="14.00">φ_$2</text>
+</g>
+<!-- Phi_230&#45;&gt;Store10 -->
+<g id="edge26" class="edge">
+<title>Phi_230&#45;&gt;Store10</title>
+<path fill="none" stroke="blue" d="M100.36,-410.91C106.57,-419.78 114.38,-430.94 121.28,-440.78"/>
+<polygon fill="blue" stroke="blue" points="118.43,-442.82 127.03,-449.01 124.17,-438.81 118.43,-442.82"/>
+<text text-anchor="middle" x="97.36" y="-413.51" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_230&#45;&gt;Loop11 -->
+<g id="edge25" class="edge">
+<title>Phi_230&#45;&gt;Loop11</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M122.21,-393.67C124.67,-393.67 127.13,-393.67 129.59,-393.67"/>
+<polygon fill="black" stroke="black" points="129.71,-397.17 139.71,-393.67 129.71,-390.17 129.71,-397.17"/>
+<text text-anchor="middle" x="125.21" y="-387.27" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Phi_233 -->
+<g id="node18" class="node">
+<title>Phi_233</title>
+<ellipse fill="lightyellow" stroke="black" cx="61" cy="-49.67" rx="33.29" ry="18"/>
+<text text-anchor="middle" x="61" y="-45.97" font-family="Times,serif" font-size="14.00">φ_$2</text>
+</g>
+<!-- Store31 -->
+<g id="node16" class="node">
+<title>Store31</title>
+<ellipse fill="none" stroke="black" cx="44" cy="-321.67" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="44" y="-317.97" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store31&#45;&gt;new9 -->
+<g id="edge30" class="edge">
+<title>Store31&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M30,-466.67C39.91,-492.39 65.61,-510.26 88.07,-521.5"/>
+<polygon fill="black" stroke="black" points="86.58,-524.67 97.12,-525.77 89.57,-518.34 86.58,-524.67"/>
+<text text-anchor="middle" x="27" y="-460.27" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store31&#45;&gt;Loop11 -->
+<g id="edge28" class="edge">
+<title>Store31&#45;&gt;Loop11</title>
+<path fill="none" stroke="red" d="M64.31,-334.23C82.34,-344.49 109.11,-359.73 130.8,-372.07"/>
+<polygon fill="red" stroke="red" points="129.32,-375.26 139.75,-377.16 132.79,-369.18 129.32,-375.26"/>
+<text text-anchor="middle" x="61.31" y="-336.83" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store31&#45;&gt;Div21 -->
+<g id="edge31" class="edge">
+<title>Store31&#45;&gt;Div21</title>
+<path fill="none" stroke="black" d="M37.26,-339.26C27.22,-366.66 11.4,-422.52 30,-464.67"/>
+<path fill="none" stroke="black" d="M30,-466.67C35.26,-480.33 38.43,-496.32 40.33,-509.57"/>
+<polygon fill="black" stroke="black" points="36.86,-510.03 41.59,-519.51 43.8,-509.15 36.86,-510.03"/>
+<text text-anchor="middle" x="34.26" y="-341.86" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Store31&#45;&gt;Phi_230 -->
+<g id="edge29" class="edge">
+<title>Store31&#45;&gt;Phi_230</title>
+<path fill="none" stroke="blue" d="M54.21,-338.56C59.77,-347.21 66.77,-358.1 73.04,-367.84"/>
+<polygon fill="blue" stroke="blue" points="70.17,-369.85 78.52,-376.37 76.05,-366.06 70.17,-369.85"/>
+<text text-anchor="middle" x="51.21" y="-341.16" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region32&#45;&gt;If25 -->
+<g id="edge32" class="edge">
+<title>Region32&#45;&gt;If25:p0</title>
+<path fill="none" stroke="red" d="M235,-67.77C235,-77.22 235,-89.45 235,-101.36"/>
+<polygon fill="red" stroke="red" points="231.5,-101.67 235,-111.67 238.5,-101.67 231.5,-101.67"/>
+<text text-anchor="middle" x="232" y="-70.37" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region32&#45;&gt;If25 -->
+<g id="edge33" class="edge">
+<title>Region32&#45;&gt;If25:p1</title>
+<path fill="none" stroke="red" d="M255.02,-67.8C263.64,-76.74 272.48,-88.51 275.71,-101.52"/>
+<polygon fill="red" stroke="red" points="272.27,-102.19 277,-111.67 279.22,-101.31 272.27,-102.19"/>
+<text text-anchor="middle" x="252.02" y="-70.4" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_233&#45;&gt;Phi_230 -->
+<g id="edge36" class="edge">
+<title>Phi_233&#45;&gt;Phi_230</title>
+<path fill="none" stroke="blue" d="M63.28,-78.47C68.55,-142.92 81.57,-301.9 86.79,-365.62"/>
+<polygon fill="blue" stroke="blue" points="66.73,-77.79 62.43,-68.1 59.75,-78.36 66.73,-77.79"/>
+<polygon fill="blue" stroke="blue" points="83.3,-366 87.61,-375.69 90.28,-365.43 83.3,-366"/>
+<text text-anchor="middle" x="59.43" y="-70.7" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_233&#45;&gt;Store31 -->
+<g id="edge35" class="edge">
+<title>Phi_233&#45;&gt;Store31</title>
+<path fill="none" stroke="blue" d="M59.91,-67.97C57.03,-113.69 49.21,-238 45.72,-293.4"/>
+<polygon fill="blue" stroke="blue" points="42.22,-293.32 45.08,-303.52 49.2,-293.76 42.22,-293.32"/>
+<text text-anchor="middle" x="56.91" y="-70.57" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_233&#45;&gt;Region32 -->
+<g id="edge34" class="edge">
+<title>Phi_233&#45;&gt;Region32</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M77.36,-33.99C89.26,-23.73 106.31,-11.24 124,-5.67 146.89,1.53 155.28,2.07 178,-5.67 189.71,-9.67 200.89,-17.16 210.2,-24.83"/>
+<polygon fill="black" stroke="black" points="208.03,-27.59 217.86,-31.55 212.65,-22.33 208.03,-27.59"/>
+<text text-anchor="middle" x="74.36" y="-27.59" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Sub35&#45;&gt;Loop11 -->
+<g id="edge37" class="edge">
+<title>Sub35&#45;&gt;Loop11</title>
+<path fill="none" stroke="red" d="M205.9,-338.21C199.85,-346.68 192.2,-357.39 185.3,-367.06"/>
+<polygon fill="red" stroke="red" points="182.44,-365.04 179.47,-375.21 188.13,-369.11 182.44,-365.04"/>
+<text text-anchor="middle" x="202.9" y="-340.81" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Sub35&#45;&gt;Phi_arg13 -->
+<g id="edge38" class="edge">
+<title>Sub35&#45;&gt;Phi_arg13</title>
+<path fill="none" stroke="black" d="M245.77,-338.92C264.66,-349.58 289.38,-363.54 308.91,-374.56"/>
+<polygon fill="black" stroke="black" points="247.35,-335.79 236.92,-333.92 243.91,-341.89 247.35,-335.79"/>
+<polygon fill="black" stroke="black" points="307.32,-377.68 317.75,-379.55 310.76,-371.58 307.32,-377.68"/>
+<text text-anchor="middle" x="233.92" y="-336.52" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Con_36 -->
+<g id="node20" class="node">
+<title>Con_36</title>
+<ellipse fill="none" stroke="black" cx="239" cy="-393.67" rx="27" ry="18"/>
+<text text-anchor="middle" x="239" y="-389.97" font-family="Times,serif" font-size="14.00">#1</text>
+</g>
+<!-- Sub35&#45;&gt;Con_36 -->
+<g id="edge39" class="edge">
+<title>Sub35&#45;&gt;Con_36</title>
+<path fill="none" stroke="black" d="M222.33,-339.62C224.84,-347.62 227.9,-357.34 230.7,-366.27"/>
+<polygon fill="black" stroke="black" points="227.39,-367.39 233.72,-375.89 234.06,-365.3 227.39,-367.39"/>
+<text text-anchor="middle" x="219.33" y="-342.22" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Return37&#45;&gt;new9 -->
+<g id="edge41" class="edge">
+<title>Return37&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M152.88,-153.84C154.6,-173.54 156.18,-206.74 151,-234.67"/>
+<path fill="none" stroke="black" d="M151,-236.67C140.92,-291.1 115.67,-296.53 81,-339.67 67.22,-356.83 55.13,-355.22 47,-375.67 26.8,-426.48 71.69,-483.13 102.06,-513.85"/>
+<polygon fill="black" stroke="black" points="99.83,-516.56 109.42,-521.08 104.74,-511.57 99.83,-516.56"/>
+<text text-anchor="middle" x="149.88" y="-156.44" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Return37&#45;&gt;If16 -->
+<g id="edge40" class="edge">
+<title>Return37&#45;&gt;If16:p1</title>
+<path fill="none" stroke="red" d="M173.3,-153.95C179.56,-158.57 186.45,-163.46 193,-167.67 223.49,-187.31 263.28,-174.61 270.76,-201.47"/>
+<polygon fill="red" stroke="red" points="267.32,-202.17 272,-211.67 274.27,-201.33 267.32,-202.17"/>
+<text text-anchor="middle" x="170.3" y="-156.55" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return37&#45;&gt;Phi_230 -->
+<g id="edge42" class="edge">
+<title>Return37&#45;&gt;Phi_230</title>
+<path fill="none" stroke="blue" d="M151,-236.67C145.42,-285.27 120.51,-337.2 104.01,-367.2"/>
+<polygon fill="blue" stroke="blue" points="100.84,-365.71 98.99,-376.14 106.94,-369.14 100.84,-365.71"/>
+<text text-anchor="middle" x="148" y="-230.27" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+</g>
+</svg>
diff --git a/chapter11/docs/graph6.gv b/chapter11/docs/graph6.gv
new file mode 100644
index 00000000..b108c44d
--- /dev/null
+++ b/chapter11/docs/graph6.gv
@@ -0,0 +1,113 @@
+digraph chapter11 {
+/*
+struct S { int f; }
+S v = new S;
+int i = arg;
+while (arg > 0) {
+ int j = i/3;
+ if (arg == 5)
+ v.f = j;
+ arg = arg - 1;
+}
+return v;
+
+*/
+ rankdir=BT;
+ concentrate="true";
+ compound="true";
+ subgraph cluster_Nodes {
+ Start2 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">Start</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD><TD PORT="p1">arg</TD><TD PORT="p2">$2</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Stop3 [ shape=box style=filled fillcolor=yellow label="Stop" ];
+ Con_4 [ label="#0" ];
+ new9 [ label="new S" ];
+ Store10 [ label=".f =" ];
+ Loop11 [ shape=box style=filled fillcolor=yellow label="Loop" ];
+ Phi_arg13 [ style=filled fillcolor=lightyellow label="&phi;_arg" ];
+ LT14 [ label="<" ];
+ If16 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Div21 [ label="//" ];
+ Con_22 [ label="#3" ];
+ EQ23 [ label="==" ];
+ Con_24 [ label="#5" ];
+ If25 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Phi_230 [ style=filled fillcolor=lightyellow label="&phi;_$2" ];
+ Store31 [ label=".f =" ];
+ Region32 [ shape=box style=filled fillcolor=yellow label="Region" ];
+ Phi_233 [ style=filled fillcolor=lightyellow label="&phi;_$2" ];
+ Sub35 [ label="-" ];
+ Con_36 [ label="#1" ];
+ Return37 [ shape=box style=filled fillcolor=yellow label="Return" ];
+ { rank=same; Loop11;Phi_230;Phi_arg13;}
+ { rank=same; Region32;Phi_233;}
+ }
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Stop3 -> Return37[taillabel=0 color=red];
+ new9 -> Start2:p0[taillabel=0 color=green];
+ Store10 -> Start2:p0[taillabel=0 color=red];
+ Store10 -> Start2:p2[taillabel=1 color=blue];
+ Store10 -> new9[taillabel=2];
+ Store10 -> Con_4[taillabel=3];
+ Loop11 -> Start2:p0[taillabel=1 color=red];
+ Loop11 -> Region32[taillabel=2 color=red constraint=false];
+ Phi_arg13 -> Loop11 [style=dotted taillabel=0];
+ Phi_arg13 -> Start2:p1[taillabel=1];
+ Phi_arg13 -> Sub35[taillabel=2 constraint=false];
+ LT14 -> Loop11[taillabel=0 color=red];
+ LT14 -> Con_4[taillabel=1];
+ LT14 -> Phi_arg13[taillabel=2];
+ If16 -> Loop11[taillabel=0 color=red];
+ If16 -> LT14[taillabel=1];
+ Div21 -> Start2:p0[taillabel=0 color=red];
+ Div21 -> Start2:p1[taillabel=1];
+ Div21 -> Con_22[taillabel=2];
+ EQ23 -> If16:p0[taillabel=0 color=red];
+ EQ23 -> Phi_arg13[taillabel=1];
+ EQ23 -> Con_24[taillabel=2];
+ If25 -> If16:p0[taillabel=0 color=red];
+ If25 -> EQ23[taillabel=1];
+ Phi_230 -> Loop11 [style=dotted taillabel=0];
+ Phi_230 -> Store10[taillabel=1 color=blue];
+ Phi_230 -> Phi_233[taillabel=2 color=blue constraint=false];
+ Store31 -> If25:p0[taillabel=0 color=red];
+ Store31 -> Phi_230[taillabel=1 color=blue];
+ Store31 -> new9[taillabel=2];
+ Store31 -> Div21[taillabel=3];
+ Region32 -> If25:p0[taillabel=1 color=red];
+ Region32 -> If25:p1[taillabel=2 color=red];
+ Phi_233 -> Region32 [style=dotted taillabel=0];
+ Phi_233 -> Store31[taillabel=1 color=blue];
+ Phi_233 -> Phi_230[taillabel=2 color=blue constraint=false];
+ Sub35 -> Region32[taillabel=0 color=red];
+ Sub35 -> Phi_arg13[taillabel=1];
+ Sub35 -> Con_36[taillabel=2];
+ Return37 -> If16:p1[taillabel=0 color=red];
+ Return37 -> new9[taillabel=1];
+ Return37 -> Phi_230[taillabel=2 color=blue];
+} \ No newline at end of file
diff --git a/chapter11/docs/graph6.svg b/chapter11/docs/graph6.svg
new file mode 100644
index 00000000..354f5d2f
--- /dev/null
+++ b/chapter11/docs/graph6.svg
@@ -0,0 +1,437 @@
+<?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.43.0 (0)
+ -->
+<!-- Title: chapter11 Pages: 1 -->
+<svg width="382pt" height="880pt"
+ viewBox="0.00 0.00 382.00 880.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 876)">
+<title>chapter11</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-876 378,-876 378,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_Nodes</title>
+<polygon fill="none" stroke="black" points="8,-8 8,-864 366,-864 366,-8 8,-8"/>
+</g>
+<!-- Start2 -->
+<g id="node1" class="node">
+<title>Start2</title>
+<polygon fill="yellow" stroke="transparent" points="160,-827 160,-852 266,-852 266,-827 160,-827"/>
+<polygon fill="none" stroke="black" points="160,-827 160,-852 266,-852 266,-827 160,-827"/>
+<text text-anchor="start" x="194.5" y="-835.8" font-family="Times,serif" font-size="14.00">Start</text>
+<polygon fill="none" stroke="black" points="160,-796 160,-827 266,-827 266,-796 160,-796"/>
+<polygon fill="yellow" stroke="transparent" points="165,-801 165,-822 205,-822 205,-801 165,-801"/>
+<polygon fill="none" stroke="black" points="165,-801 165,-822 205,-822 205,-801 165,-801"/>
+<text text-anchor="start" x="168" y="-807.8" font-family="Times,serif" font-size="14.00">$ctrl</text>
+<polygon fill="none" stroke="black" points="205,-801 205,-822 236,-822 236,-801 205,-801"/>
+<text text-anchor="start" x="208" y="-807.8" font-family="Times,serif" font-size="14.00">arg</text>
+<polygon fill="none" stroke="black" points="236,-801 236,-822 261,-822 261,-801 236,-801"/>
+<text text-anchor="start" x="239" y="-807.8" font-family="Times,serif" font-size="14.00">$2</text>
+</g>
+<!-- Stop3 -->
+<g id="node2" class="node">
+<title>Stop3</title>
+<polygon fill="yellow" stroke="black" points="150,-282 96,-282 96,-246 150,-246 150,-282"/>
+<text text-anchor="middle" x="123" y="-260.3" font-family="Times,serif" font-size="14.00">Stop</text>
+</g>
+<!-- Return37 -->
+<g id="node21" class="node">
+<title>Return37</title>
+<polygon fill="yellow" stroke="black" points="142,-368 76,-368 76,-332 142,-332 142,-368"/>
+<text text-anchor="middle" x="109" y="-346.3" font-family="Times,serif" font-size="14.00">Return</text>
+</g>
+<!-- Stop3&#45;&gt;Return37 -->
+<g id="edge1" class="edge">
+<title>Stop3&#45;&gt;Return37</title>
+<path fill="none" stroke="red" d="M120.1,-282.4C118.21,-293.74 115.7,-308.77 113.55,-321.68"/>
+<polygon fill="red" stroke="red" points="110.04,-321.47 111.85,-331.9 116.95,-322.62 110.04,-321.47"/>
+<text text-anchor="middle" x="117.1" y="-285" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_4 -->
+<g id="node3" class="node">
+<title>Con_4</title>
+<ellipse fill="none" stroke="black" cx="231" cy="-738" rx="27" ry="18"/>
+<text text-anchor="middle" x="231" y="-734.3" font-family="Times,serif" font-size="14.00">#0</text>
+</g>
+<!-- new9 -->
+<g id="node4" class="node">
+<title>new9</title>
+<ellipse fill="none" stroke="black" cx="127" cy="-738" rx="38.99" ry="18"/>
+<text text-anchor="middle" x="127" y="-734.3" font-family="Times,serif" font-size="14.00">new S</text>
+</g>
+<!-- new9&#45;&gt;Start2 -->
+<g id="edge2" class="edge">
+<title>new9&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="green" d="M128.38,-756.06C130.74,-774.19 137.07,-801.28 154.09,-808.93"/>
+<polygon fill="green" stroke="green" points="153.5,-812.38 164,-811 154.93,-805.53 153.5,-812.38"/>
+<text text-anchor="middle" x="125.38" y="-758.66" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store10 -->
+<g id="node5" class="node">
+<title>Store10</title>
+<ellipse fill="none" stroke="black" cx="157" cy="-666" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="157" y="-662.3" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store10&#45;&gt;Start2 -->
+<g id="edge3" class="edge">
+<title>Store10&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M163.73,-683.93C167.57,-694.21 172.17,-707.69 175,-720 182.21,-751.38 184.54,-762.02 184.93,-789.85"/>
+<polygon fill="red" stroke="red" points="181.44,-790.02 185,-800 188.44,-789.98 181.44,-790.02"/>
+<text text-anchor="middle" x="160.73" y="-686.53" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store10&#45;&gt;Con_4 -->
+<g id="edge6" class="edge">
+<title>Store10&#45;&gt;Con_4</title>
+<path fill="none" stroke="black" d="M172.33,-681.5C182.82,-691.42 196.89,-704.74 208.63,-715.84"/>
+<polygon fill="black" stroke="black" points="206.27,-718.42 215.94,-722.75 211.08,-713.34 206.27,-718.42"/>
+<text text-anchor="middle" x="169.33" y="-684.1" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Store10&#45;&gt;new9 -->
+<g id="edge5" class="edge">
+<title>Store10&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M149.89,-683.59C146.43,-691.66 142.18,-701.57 138.29,-710.65"/>
+<polygon fill="black" stroke="black" points="134.99,-709.47 134.27,-720.04 141.42,-712.23 134.99,-709.47"/>
+<text text-anchor="middle" x="146.89" y="-686.19" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Loop11 -->
+<g id="node6" class="node">
+<title>Loop11</title>
+<polygon fill="yellow" stroke="black" points="246,-612 192,-612 192,-576 246,-576 246,-612"/>
+<text text-anchor="middle" x="219" y="-590.3" font-family="Times,serif" font-size="14.00">Loop</text>
+</g>
+<!-- Loop11&#45;&gt;Start2 -->
+<g id="edge7" class="edge">
+<title>Loop11&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M232.6,-612.1C255.23,-642.79 295.45,-708.44 267,-756 247.84,-788.03 196.49,-764.41 186.65,-789.87"/>
+<polygon fill="red" stroke="red" points="183.15,-789.57 185,-800 190.06,-790.69 183.15,-789.57"/>
+<text text-anchor="middle" x="229.6" y="-614.7" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region32 -->
+<g id="node17" class="node">
+<title>Region32</title>
+<polygon fill="yellow" stroke="black" points="266,-124 200,-124 200,-88 266,-88 266,-124"/>
+<text text-anchor="middle" x="233" y="-102.3" font-family="Times,serif" font-size="14.00">Region</text>
+</g>
+<!-- Loop11&#45;&gt;Region32 -->
+<g id="edge8" class="edge">
+<title>Loop11&#45;&gt;Region32</title>
+<path fill="none" stroke="red" d="M191.95,-583.41C149.79,-568.45 73.1,-541.12 72,-540 38.13,-505.5 37,-485.35 37,-437 37,-349 37,-349 37,-349 37,-292.45 45.93,-270.87 87,-232 121.01,-199.82 150.7,-226.76 186,-196 204.96,-179.48 217.45,-153.41 224.76,-133.74"/>
+<polygon fill="red" stroke="red" points="228.13,-134.72 228.12,-124.13 221.52,-132.42 228.13,-134.72"/>
+<text text-anchor="middle" x="188.95" y="-577.01" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_arg13 -->
+<g id="node7" class="node">
+<title>Phi_arg13</title>
+<ellipse fill="lightyellow" stroke="black" cx="321" cy="-594" rx="37.09" ry="18"/>
+<text text-anchor="middle" x="321" y="-590.3" font-family="Times,serif" font-size="14.00">φ_arg</text>
+</g>
+<!-- Phi_arg13&#45;&gt;Start2 -->
+<g id="edge10" class="edge">
+<title>Phi_arg13&#45;&gt;Start2:p1</title>
+<path fill="none" stroke="black" d="M319.63,-612.41C316.47,-643.6 306.42,-710.01 276,-756 261.03,-778.64 230.66,-771.56 222.86,-789.7"/>
+<polygon fill="black" stroke="black" points="219.33,-789.54 221,-800 226.22,-790.78 219.33,-789.54"/>
+<text text-anchor="middle" x="316.63" y="-615.01" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_arg13&#45;&gt;Loop11 -->
+<g id="edge9" class="edge">
+<title>Phi_arg13&#45;&gt;Loop11</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M283.84,-594C274.6,-594 265.36,-594 256.12,-594"/>
+<polygon fill="black" stroke="black" points="256.09,-590.5 246.09,-594 256.09,-597.5 256.09,-590.5"/>
+<text text-anchor="middle" x="280.84" y="-587.6" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Sub35 -->
+<g id="node19" class="node">
+<title>Sub35</title>
+<ellipse fill="none" stroke="black" cx="285" cy="-34" rx="27" ry="18"/>
+<text text-anchor="middle" x="285" y="-30.3" font-family="Times,serif" font-size="14.00">&#45;</text>
+</g>
+<!-- LT14 -->
+<g id="node8" class="node">
+<title>LT14</title>
+<ellipse fill="none" stroke="black" cx="265" cy="-522" rx="27" ry="18"/>
+<text text-anchor="middle" x="265" y="-518.3" font-family="Times,serif" font-size="14.00">&lt;</text>
+</g>
+<!-- LT14&#45;&gt;Con_4 -->
+<g id="edge13" class="edge">
+<title>LT14&#45;&gt;Con_4</title>
+<path fill="none" stroke="black" d="M263.48,-540.11C261.78,-558.07 258.78,-587.1 255,-612 249.83,-646.03 242.07,-684.92 236.78,-710.16"/>
+<polygon fill="black" stroke="black" points="233.33,-709.58 234.68,-720.09 240.17,-711.03 233.33,-709.58"/>
+<text text-anchor="middle" x="260.48" y="-542.71" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- LT14&#45;&gt;Loop11 -->
+<g id="edge12" class="edge">
+<title>LT14&#45;&gt;Loop11</title>
+<path fill="none" stroke="red" d="M254.56,-538.88C249.04,-547.28 242.13,-557.8 235.87,-567.33"/>
+<polygon fill="red" stroke="red" points="232.93,-565.43 230.36,-575.71 238.78,-569.27 232.93,-565.43"/>
+<text text-anchor="middle" x="251.56" y="-541.48" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- LT14&#45;&gt;Phi_arg13 -->
+<g id="edge14" class="edge">
+<title>LT14&#45;&gt;Phi_arg13</title>
+<path fill="none" stroke="black" d="M277.15,-538.19C284.36,-547.2 293.66,-558.82 301.84,-569.05"/>
+<polygon fill="black" stroke="black" points="299.11,-571.24 308.09,-576.87 304.58,-566.87 299.11,-571.24"/>
+<text text-anchor="middle" x="274.15" y="-540.79" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- If16 -->
+<g id="node9" class="node">
+<title>If16</title>
+<polygon fill="yellow" stroke="transparent" points="144,-439 144,-464 238,-464 238,-439 144,-439"/>
+<polygon fill="none" stroke="black" points="144,-439 144,-464 238,-464 238,-439 144,-439"/>
+<text text-anchor="start" x="185.5" y="-447.8" font-family="Times,serif" font-size="14.00">If</text>
+<polygon fill="none" stroke="black" points="144,-408 144,-439 238,-439 238,-408 144,-408"/>
+<polygon fill="yellow" stroke="transparent" points="149,-413 149,-434 189,-434 189,-413 149,-413"/>
+<polygon fill="none" stroke="black" points="149,-413 149,-434 189,-434 189,-413 149,-413"/>
+<text text-anchor="start" x="152" y="-419.8" font-family="Times,serif" font-size="14.00">True</text>
+<polygon fill="yellow" stroke="transparent" points="189,-413 189,-434 233,-434 233,-413 189,-413"/>
+<polygon fill="none" stroke="black" points="189,-413 189,-434 233,-434 233,-413 189,-413"/>
+<text text-anchor="start" x="192" y="-419.8" font-family="Times,serif" font-size="14.00">False</text>
+</g>
+<!-- If16&#45;&gt;Loop11 -->
+<g id="edge15" class="edge">
+<title>If16&#45;&gt;Loop11</title>
+<path fill="none" stroke="red" d="M196.6,-468.19C201.73,-496.77 209.24,-538.64 214.13,-565.86"/>
+<polygon fill="red" stroke="red" points="210.71,-566.63 215.92,-575.86 217.6,-565.4 210.71,-566.63"/>
+<text text-anchor="middle" x="193.6" y="-470.79" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- If16&#45;&gt;LT14 -->
+<g id="edge16" class="edge">
+<title>If16&#45;&gt;LT14</title>
+<path fill="none" stroke="black" d="M218.55,-468.28C227.33,-478.24 236.86,-489.05 244.99,-498.29"/>
+<polygon fill="black" stroke="black" points="242.49,-500.74 251.72,-505.93 247.74,-496.11 242.49,-500.74"/>
+<text text-anchor="middle" x="215.55" y="-470.88" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Div21 -->
+<g id="node10" class="node">
+<title>Div21</title>
+<ellipse fill="none" stroke="black" cx="43" cy="-738" rx="27" ry="18"/>
+<text text-anchor="middle" x="43" y="-734.3" font-family="Times,serif" font-size="14.00">//</text>
+</g>
+<!-- Div21&#45;&gt;Start2 -->
+<g id="edge17" class="edge">
+<title>Div21&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M56.68,-753.92C76,-773.4 113.45,-805.6 153.93,-810.4"/>
+<polygon fill="red" stroke="red" points="153.81,-813.89 164,-811 154.23,-806.91 153.81,-813.89"/>
+<text text-anchor="middle" x="53.68" y="-756.52" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Div21&#45;&gt;Start2 -->
+<g id="edge18" class="edge">
+<title>Div21&#45;&gt;Start2:p1</title>
+<path fill="none" stroke="black" d="M64.1,-749.57C68.94,-751.82 74.1,-754.1 79,-756 137.09,-778.59 211.95,-738.92 220.24,-789.82"/>
+<polygon fill="black" stroke="black" points="216.77,-790.29 221,-800 223.75,-789.77 216.77,-790.29"/>
+<text text-anchor="middle" x="61.1" y="-752.17" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Con_22 -->
+<g id="node11" class="node">
+<title>Con_22</title>
+<ellipse fill="none" stroke="black" cx="43" cy="-824" rx="27" ry="18"/>
+<text text-anchor="middle" x="43" y="-820.3" font-family="Times,serif" font-size="14.00">#3</text>
+</g>
+<!-- Div21&#45;&gt;Con_22 -->
+<g id="edge19" class="edge">
+<title>Div21&#45;&gt;Con_22</title>
+<path fill="none" stroke="black" d="M43,-756.4C43,-767.74 43,-782.77 43,-795.68"/>
+<polygon fill="black" stroke="black" points="39.5,-795.9 43,-805.9 46.5,-795.9 39.5,-795.9"/>
+<text text-anchor="middle" x="40" y="-759" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- EQ23 -->
+<g id="node12" class="node">
+<title>EQ23</title>
+<ellipse fill="none" stroke="black" cx="284" cy="-350" rx="27" ry="18"/>
+<text text-anchor="middle" x="284" y="-346.3" font-family="Times,serif" font-size="14.00">==</text>
+</g>
+<!-- EQ23&#45;&gt;Phi_arg13 -->
+<g id="edge21" class="edge">
+<title>EQ23&#45;&gt;Phi_arg13</title>
+<path fill="none" stroke="black" d="M299.94,-365.01C309.81,-374.8 321.61,-388.81 327,-404 346.42,-458.77 336.12,-528.17 327.91,-565.78"/>
+<polygon fill="black" stroke="black" points="324.4,-565.41 325.57,-575.94 331.22,-566.98 324.4,-565.41"/>
+<text text-anchor="middle" x="296.94" y="-367.61" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- EQ23&#45;&gt;If16 -->
+<g id="edge20" class="edge">
+<title>EQ23&#45;&gt;If16:p0</title>
+<path fill="none" stroke="red" d="M259.89,-358.47C231.44,-367.9 186.29,-385 172.88,-402.37"/>
+<polygon fill="red" stroke="red" points="169.49,-401.42 169,-412 175.98,-404.03 169.49,-401.42"/>
+<text text-anchor="middle" x="256.89" y="-352.07" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_24 -->
+<g id="node13" class="node">
+<title>Con_24</title>
+<ellipse fill="none" stroke="black" cx="291" cy="-436" rx="27" ry="18"/>
+<text text-anchor="middle" x="291" y="-432.3" font-family="Times,serif" font-size="14.00">#5</text>
+</g>
+<!-- EQ23&#45;&gt;Con_24 -->
+<g id="edge22" class="edge">
+<title>EQ23&#45;&gt;Con_24</title>
+<path fill="none" stroke="black" d="M285.42,-368C286.36,-379.31 287.62,-394.42 288.7,-407.43"/>
+<polygon fill="black" stroke="black" points="285.24,-408.06 289.56,-417.74 292.22,-407.48 285.24,-408.06"/>
+<text text-anchor="middle" x="282.42" y="-370.6" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- If25 -->
+<g id="node14" class="node">
+<title>If25</title>
+<polygon fill="yellow" stroke="transparent" points="208,-267 208,-292 302,-292 302,-267 208,-267"/>
+<polygon fill="none" stroke="black" points="208,-267 208,-292 302,-292 302,-267 208,-267"/>
+<text text-anchor="start" x="249.5" y="-275.8" font-family="Times,serif" font-size="14.00">If</text>
+<polygon fill="none" stroke="black" points="208,-236 208,-267 302,-267 302,-236 208,-236"/>
+<polygon fill="yellow" stroke="transparent" points="213,-241 213,-262 253,-262 253,-241 213,-241"/>
+<polygon fill="none" stroke="black" points="213,-241 213,-262 253,-262 253,-241 213,-241"/>
+<text text-anchor="start" x="216" y="-247.8" font-family="Times,serif" font-size="14.00">True</text>
+<polygon fill="yellow" stroke="transparent" points="253,-241 253,-262 297,-262 297,-241 253,-241"/>
+<polygon fill="none" stroke="black" points="253,-241 253,-262 297,-262 297,-241 253,-241"/>
+<text text-anchor="start" x="256" y="-247.8" font-family="Times,serif" font-size="14.00">False</text>
+</g>
+<!-- If25&#45;&gt;If16 -->
+<g id="edge23" class="edge">
+<title>If25&#45;&gt;If16:p0</title>
+<path fill="none" stroke="red" d="M234.4,-296.29C213.03,-329.21 181.43,-379.35 171.85,-402.21"/>
+<polygon fill="red" stroke="red" points="168.44,-401.42 169,-412 175.16,-403.38 168.44,-401.42"/>
+<text text-anchor="middle" x="231.4" y="-298.89" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- If25&#45;&gt;EQ23 -->
+<g id="edge24" class="edge">
+<title>If25&#45;&gt;EQ23</title>
+<path fill="none" stroke="black" d="M265.8,-296.28C268.78,-304.9 271.97,-314.17 274.85,-322.49"/>
+<polygon fill="black" stroke="black" points="271.58,-323.76 278.16,-332.07 278.2,-321.48 271.58,-323.76"/>
+<text text-anchor="middle" x="262.8" y="-298.88" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_230 -->
+<g id="node15" class="node">
+<title>Phi_230</title>
+<ellipse fill="lightyellow" stroke="black" cx="129" cy="-594" rx="33.29" ry="18"/>
+<text text-anchor="middle" x="129" y="-590.3" font-family="Times,serif" font-size="14.00">φ_$2</text>
+</g>
+<!-- Phi_230&#45;&gt;Store10 -->
+<g id="edge26" class="edge">
+<title>Phi_230&#45;&gt;Store10</title>
+<path fill="none" stroke="blue" d="M135.78,-611.95C139.01,-620.03 142.95,-629.88 146.56,-638.89"/>
+<polygon fill="blue" stroke="blue" points="143.32,-640.23 150.28,-648.21 149.82,-637.63 143.32,-640.23"/>
+<text text-anchor="middle" x="132.78" y="-614.55" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_230&#45;&gt;Loop11 -->
+<g id="edge25" class="edge">
+<title>Phi_230&#45;&gt;Loop11</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M162.4,-594C168.78,-594 175.17,-594 181.55,-594"/>
+<polygon fill="black" stroke="black" points="181.58,-597.5 191.58,-594 181.58,-590.5 181.58,-597.5"/>
+<text text-anchor="middle" x="165.4" y="-587.6" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Phi_233 -->
+<g id="node18" class="node">
+<title>Phi_233</title>
+<ellipse fill="lightyellow" stroke="black" cx="149" cy="-106" rx="33.29" ry="18"/>
+<text text-anchor="middle" x="149" y="-102.3" font-family="Times,serif" font-size="14.00">φ_$2</text>
+</g>
+<!-- Store31 -->
+<g id="node16" class="node">
+<title>Store31</title>
+<ellipse fill="none" stroke="black" cx="149" cy="-178" rx="27.9" ry="18"/>
+<text text-anchor="middle" x="149" y="-174.3" font-family="Times,serif" font-size="14.00">.f =</text>
+</g>
+<!-- Store31&#45;&gt;new9 -->
+<g id="edge30" class="edge">
+<title>Store31&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M125.79,-188.29C107.7,-196.82 83.59,-211.3 71,-232 43.78,-276.74 57,-296.63 57,-349 57,-349 57,-349 57,-437 57,-506.9 72.18,-523.27 77,-593"/>
+<path fill="none" stroke="black" d="M77,-595C78.62,-637.52 98.4,-683.39 112.59,-711.15"/>
+<polygon fill="black" stroke="black" points="109.59,-712.96 117.34,-720.18 115.78,-709.7 109.59,-712.96"/>
+<text text-anchor="middle" x="122.79" y="-190.89" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store31&#45;&gt;Div21 -->
+<g id="edge31" class="edge">
+<title>Store31&#45;&gt;Div21</title>
+<path fill="none" stroke="black" d="M122.62,-184.31C96.9,-190.92 58.72,-204.83 38,-232 5.97,-274.01 17,-296.17 17,-349 17,-349 17,-349 17,-595 17,-635.67 27.45,-681.83 35.1,-710.19"/>
+<polygon fill="black" stroke="black" points="31.81,-711.44 37.86,-720.13 38.55,-709.56 31.81,-711.44"/>
+<text text-anchor="middle" x="119.62" y="-177.91" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Store31&#45;&gt;If25 -->
+<g id="edge28" class="edge">
+<title>Store31&#45;&gt;If25:p0</title>
+<path fill="none" stroke="red" d="M160.65,-194.62C172.83,-210.67 191.77,-234.77 203.47,-245.51"/>
+<polygon fill="red" stroke="red" points="201.7,-248.53 212,-251 205.49,-242.64 201.7,-248.53"/>
+<text text-anchor="middle" x="157.65" y="-197.22" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Store31&#45;&gt;Phi_230 -->
+<g id="edge29" class="edge">
+<title>Store31&#45;&gt;Phi_230</title>
+<path fill="none" stroke="blue" d="M153.06,-196.07C155.31,-206.4 157.87,-219.88 159,-232 161.65,-260.32 160.57,-267.6 159,-296 157.22,-328.15 162.02,-337.75 151,-368 144.42,-386.07 132.57,-385.6 127,-404 118.76,-431.22 126.77,-439.56 127,-468 127.27,-501.46 127.94,-539.96 128.43,-565.29"/>
+<polygon fill="blue" stroke="blue" points="124.94,-565.68 128.63,-575.61 131.94,-565.54 124.94,-565.68"/>
+<text text-anchor="middle" x="150.06" y="-198.67" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region32&#45;&gt;If25 -->
+<g id="edge32" class="edge">
+<title>Region32&#45;&gt;If25:p0</title>
+<path fill="none" stroke="red" d="M233,-124.22C233,-147.49 233,-190.58 233,-229.64"/>
+<polygon fill="red" stroke="red" points="229.5,-230 233,-240 236.5,-230 229.5,-230"/>
+<text text-anchor="middle" x="230" y="-126.82" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_233&#45;&gt;Phi_230 -->
+<g id="edge36" class="edge">
+<title>Phi_233&#45;&gt;Phi_230</title>
+<path fill="none" stroke="blue" d="M170.5,-129.96C185.43,-148.79 200.3,-175.58 186,-196 159.14,-234.35 113.86,-193.65 87,-232 70.68,-255.3 72.64,-271.45 87,-296 103.48,-324.17 134.52,-303.83 151,-332 159.08,-345.81 156.69,-353.04 151,-368 143.39,-388.01 126.61,-383.99 119,-404 98.19,-458.74 111.2,-528.88 121.03,-566.43"/>
+<polygon fill="blue" stroke="blue" points="173.07,-127.58 163.96,-122.17 167.71,-132.08 173.07,-127.58"/>
+<polygon fill="blue" stroke="blue" points="117.67,-567.4 123.69,-576.12 124.42,-565.55 117.67,-567.4"/>
+<text text-anchor="middle" x="160.96" y="-124.77" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_233&#45;&gt;Store31 -->
+<g id="edge35" class="edge">
+<title>Phi_233&#45;&gt;Store31</title>
+<path fill="none" stroke="blue" d="M149,-124.3C149,-132.02 149,-141.29 149,-149.89"/>
+<polygon fill="blue" stroke="blue" points="145.5,-149.9 149,-159.9 152.5,-149.9 145.5,-149.9"/>
+<text text-anchor="middle" x="146" y="-126.9" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_233&#45;&gt;Region32 -->
+<g id="edge34" class="edge">
+<title>Phi_233&#45;&gt;Region32</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M182.47,-106C184.91,-106 187.35,-106 189.8,-106"/>
+<polygon fill="black" stroke="black" points="189.84,-109.5 199.84,-106 189.84,-102.5 189.84,-109.5"/>
+<text text-anchor="middle" x="185.47" y="-99.6" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Sub35&#45;&gt;Phi_arg13 -->
+<g id="edge38" class="edge">
+<title>Sub35&#45;&gt;Phi_arg13</title>
+<path fill="none" stroke="black" d="M287.31,-62.31C288.99,-79.97 291.57,-103.42 295,-124 303.09,-172.5 311.09,-183.47 319,-232 331.36,-307.86 331.84,-327.31 337,-404 339.98,-448.36 339.33,-459.54 340,-504 340.24,-520 342.74,-524.24 340,-540 338.44,-549 335.48,-558.49 332.36,-566.91"/>
+<polygon fill="black" stroke="black" points="290.77,-61.78 286.38,-52.14 283.8,-62.41 290.77,-61.78"/>
+<polygon fill="black" stroke="black" points="329.1,-565.63 328.7,-576.22 335.62,-568.2 329.1,-565.63"/>
+<text text-anchor="middle" x="283.38" y="-54.74" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Sub35&#45;&gt;Region32 -->
+<g id="edge37" class="edge">
+<title>Sub35&#45;&gt;Region32</title>
+<path fill="none" stroke="red" d="M273.46,-50.54C267.16,-59.01 259.21,-69.71 252.03,-79.39"/>
+<polygon fill="red" stroke="red" points="249.12,-77.42 245.97,-87.54 254.74,-81.6 249.12,-77.42"/>
+<text text-anchor="middle" x="270.46" y="-53.14" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_36 -->
+<g id="node20" class="node">
+<title>Con_36</title>
+<ellipse fill="none" stroke="black" cx="331" cy="-106" rx="27" ry="18"/>
+<text text-anchor="middle" x="331" y="-102.3" font-family="Times,serif" font-size="14.00">#1</text>
+</g>
+<!-- Sub35&#45;&gt;Con_36 -->
+<g id="edge39" class="edge">
+<title>Sub35&#45;&gt;Con_36</title>
+<path fill="none" stroke="black" d="M295.44,-50.88C301.2,-59.66 308.48,-70.74 314.96,-80.58"/>
+<polygon fill="black" stroke="black" points="312.19,-82.74 320.6,-89.18 318.04,-78.9 312.19,-82.74"/>
+<text text-anchor="middle" x="292.44" y="-53.48" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Return37&#45;&gt;new9 -->
+<g id="edge41" class="edge">
+<title>Return37&#45;&gt;new9</title>
+<path fill="none" stroke="black" d="M101.56,-368.35C89.32,-399.07 67.21,-465.09 77,-521"/>
+<path fill="none" stroke="black" d="M77,-523C81.47,-553.79 74.85,-561.96 77,-593"/>
+<text text-anchor="middle" x="98.56" y="-370.95" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Return37&#45;&gt;If16 -->
+<g id="edge40" class="edge">
+<title>Return37&#45;&gt;If16:p1</title>
+<path fill="none" stroke="red" d="M142.12,-356.57C168.64,-362.93 202.56,-375.99 209.66,-401.87"/>
+<polygon fill="red" stroke="red" points="206.22,-402.55 211,-412 213.16,-401.63 206.22,-402.55"/>
+<text text-anchor="middle" x="145.12" y="-350.17" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return37&#45;&gt;Phi_230 -->
+<g id="edge42" class="edge">
+<title>Return37&#45;&gt;Phi_230</title>
+<path fill="none" stroke="blue" d="M77,-523C80.24,-541.52 92.58,-558.55 104.43,-571.18"/>
+<polygon fill="blue" stroke="blue" points="102.12,-573.82 111.65,-578.44 107.08,-568.88 102.12,-573.82"/>
+<text text-anchor="middle" x="74" y="-516.6" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+</g>
+</svg>
diff --git a/chapter11/docs/graph7.gv b/chapter11/docs/graph7.gv
new file mode 100644
index 00000000..e9e380ff
--- /dev/null
+++ b/chapter11/docs/graph7.gv
@@ -0,0 +1,23 @@
+digraph chapter11 {
+ rankdir=BT;
+ concentrate="true";
+ compound="true";
+ subgraph cluster_Nodes {
+ Start2 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">Start</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Con_4 [ label="#0" ];
+ Loop8 [ shape=box style=filled fillcolor=yellow label="Loop" ];
+ { rank=same; Loop8;}
+ }
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Loop8 -> Start2:p0[taillabel=1 color=red];
+ Loop8 -> Loop8[taillabel=2 color=red constraint=false];
+} \ No newline at end of file
diff --git a/chapter11/docs/graph7.svg b/chapter11/docs/graph7.svg
new file mode 100644
index 00000000..854660ec
--- /dev/null
+++ b/chapter11/docs/graph7.svg
@@ -0,0 +1,54 @@
+<?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.43.0 (0)
+ -->
+<!-- Title: chapter11 Pages: 1 -->
+<svg width="184pt" height="176pt"
+ viewBox="0.00 0.00 184.00 176.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 172)">
+<title>chapter11</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-172 180,-172 180,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_Nodes</title>
+<polygon fill="none" stroke="black" points="8,-8 8,-160 168,-160 168,-8 8,-8"/>
+</g>
+<!-- Start2 -->
+<g id="node1" class="node">
+<title>Start2</title>
+<polygon fill="yellow" stroke="transparent" points="24,-123 24,-148 74,-148 74,-123 24,-123"/>
+<polygon fill="none" stroke="black" points="24,-123 24,-148 74,-148 74,-123 24,-123"/>
+<text text-anchor="start" x="30.5" y="-131.8" font-family="Times,serif" font-size="14.00">Start</text>
+<polygon fill="none" stroke="black" points="24,-92 24,-123 74,-123 74,-92 24,-92"/>
+<polygon fill="yellow" stroke="transparent" points="29,-97 29,-118 69,-118 69,-97 29,-97"/>
+<polygon fill="none" stroke="black" points="29,-97 29,-118 69,-118 69,-97 29,-97"/>
+<text text-anchor="start" x="32" y="-103.8" font-family="Times,serif" font-size="14.00">$ctrl</text>
+</g>
+<!-- Con_4 -->
+<g id="node2" class="node">
+<title>Con_4</title>
+<ellipse fill="none" stroke="black" cx="133" cy="-34" rx="27" ry="18"/>
+<text text-anchor="middle" x="133" y="-30.3" font-family="Times,serif" font-size="14.00">#0</text>
+</g>
+<!-- Loop8 -->
+<g id="node3" class="node">
+<title>Loop8</title>
+<polygon fill="yellow" stroke="black" points="70,-52 16,-52 16,-16 70,-16 70,-52"/>
+<text text-anchor="middle" x="43" y="-30.3" font-family="Times,serif" font-size="14.00">Loop</text>
+</g>
+<!-- Loop8&#45;&gt;Start2 -->
+<g id="edge1" class="edge">
+<title>Loop8&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M45.58,-52.05C46.84,-61.49 48.2,-73.71 48.75,-85.65"/>
+<polygon fill="red" stroke="red" points="45.26,-86.09 49,-96 52.25,-85.92 45.26,-86.09"/>
+<text text-anchor="middle" x="42.58" y="-54.65" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Loop8&#45;&gt;Loop8 -->
+<g id="edge2" class="edge">
+<title>Loop8&#45;&gt;Loop8</title>
+<path fill="none" stroke="red" d="M70.24,-17.89C80.02,-17.54 88,-22.91 88,-34 88,-40.93 84.88,-45.62 80.16,-48.09"/>
+<polygon fill="red" stroke="red" points="79.34,-44.68 70.24,-50.11 80.74,-51.54 79.34,-44.68"/>
+<text text-anchor="middle" x="73.24" y="-11.49" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+</g>
+</svg>
diff --git a/chapter11/docs/graph8.gv b/chapter11/docs/graph8.gv
new file mode 100644
index 00000000..4189dae8
--- /dev/null
+++ b/chapter11/docs/graph8.gv
@@ -0,0 +1,45 @@
+digraph chapter11 {
+/*
+while (1) {}
+return 0;
+
+*/
+ rankdir=BT;
+ concentrate="true";
+ compound="true";
+ subgraph cluster_Nodes {
+ Never18 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">Never</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Start2 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">Start</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Stop3 [ shape=box style=filled fillcolor=yellow label="Stop" ];
+ Con_4 [ label="#0" ];
+ Return21 [ shape=box style=filled fillcolor=yellow label="Return" ];
+ Loop8 [ shape=box style=filled fillcolor=yellow label="Loop" ];
+ { rank=same; Loop8;}
+ }
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Never18 -> Loop8[taillabel=0 color=red];
+ Never18 -> Con_4[taillabel=1];
+ Stop3 -> Return21[taillabel=0 color=red];
+ Return21 -> Never18:p0[taillabel=0 color=red];
+ Return21 -> Con_4[taillabel=1];
+ Loop8 -> Start2:p0[taillabel=1 color=red];
+ Loop8 -> Never18:p1[taillabel=2 color=red constraint=false];
+} \ No newline at end of file
diff --git a/chapter11/docs/graph8.svg b/chapter11/docs/graph8.svg
new file mode 100644
index 00000000..c577cf84
--- /dev/null
+++ b/chapter11/docs/graph8.svg
@@ -0,0 +1,115 @@
+<?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.43.0 (0)
+ -->
+<!-- Title: chapter11 Pages: 1 -->
+<svg width="170pt" height="420pt"
+ viewBox="0.00 0.00 170.00 420.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 416)">
+<title>chapter11</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-416 166,-416 166,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_Nodes</title>
+<polygon fill="none" stroke="black" points="8,-8 8,-404 154,-404 154,-8 8,-8"/>
+</g>
+<!-- Never18 -->
+<g id="node1" class="node">
+<title>Never18</title>
+<polygon fill="yellow" stroke="transparent" points="24,-195 24,-220 118,-220 118,-195 24,-195"/>
+<polygon fill="none" stroke="black" points="24,-195 24,-220 118,-220 118,-195 24,-195"/>
+<text text-anchor="start" x="49" y="-203.8" font-family="Times,serif" font-size="14.00">Never</text>
+<polygon fill="none" stroke="black" points="24,-164 24,-195 118,-195 118,-164 24,-164"/>
+<polygon fill="yellow" stroke="transparent" points="29,-169 29,-190 69,-190 69,-169 29,-169"/>
+<polygon fill="none" stroke="black" points="29,-169 29,-190 69,-190 69,-169 29,-169"/>
+<text text-anchor="start" x="32" y="-175.8" font-family="Times,serif" font-size="14.00">True</text>
+<polygon fill="yellow" stroke="transparent" points="69,-169 69,-190 113,-190 113,-169 69,-169"/>
+<polygon fill="none" stroke="black" points="69,-169 69,-190 113,-190 113,-169 69,-169"/>
+<text text-anchor="start" x="72" y="-175.8" font-family="Times,serif" font-size="14.00">False</text>
+</g>
+<!-- Con_4 -->
+<g id="node4" class="node">
+<title>Con_4</title>
+<ellipse fill="none" stroke="black" cx="119" cy="-278" rx="27" ry="18"/>
+<text text-anchor="middle" x="119" y="-274.3" font-family="Times,serif" font-size="14.00">#0</text>
+</g>
+<!-- Never18&#45;&gt;Con_4 -->
+<g id="edge2" class="edge">
+<title>Never18&#45;&gt;Con_4</title>
+<path fill="none" stroke="black" d="M88.87,-224.28C94.12,-233.46 99.78,-243.37 104.77,-252.1"/>
+<polygon fill="black" stroke="black" points="101.86,-254.06 109.86,-261.01 107.94,-250.59 101.86,-254.06"/>
+<text text-anchor="middle" x="85.87" y="-226.88" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Loop8 -->
+<g id="node6" class="node">
+<title>Loop8</title>
+<polygon fill="yellow" stroke="black" points="74,-296 20,-296 20,-260 74,-260 74,-296"/>
+<text text-anchor="middle" x="47" y="-274.3" font-family="Times,serif" font-size="14.00">Loop</text>
+</g>
+<!-- Never18&#45;&gt;Loop8 -->
+<g id="edge1" class="edge">
+<title>Never18&#45;&gt;Loop8</title>
+<path fill="none" stroke="red" d="M62.06,-224.28C59.66,-232.67 57.09,-241.68 54.76,-249.84"/>
+<polygon fill="red" stroke="red" points="51.35,-249.02 51.97,-259.6 58.09,-250.94 51.35,-249.02"/>
+<text text-anchor="middle" x="59.06" y="-226.88" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Start2 -->
+<g id="node2" class="node">
+<title>Start2</title>
+<polygon fill="yellow" stroke="transparent" points="24,-367 24,-392 74,-392 74,-367 24,-367"/>
+<polygon fill="none" stroke="black" points="24,-367 24,-392 74,-392 74,-367 24,-367"/>
+<text text-anchor="start" x="30.5" y="-375.8" font-family="Times,serif" font-size="14.00">Start</text>
+<polygon fill="none" stroke="black" points="24,-336 24,-367 74,-367 74,-336 24,-336"/>
+<polygon fill="yellow" stroke="transparent" points="29,-341 29,-362 69,-362 69,-341 29,-341"/>
+<polygon fill="none" stroke="black" points="29,-341 29,-362 69,-362 69,-341 29,-341"/>
+<text text-anchor="start" x="32" y="-347.8" font-family="Times,serif" font-size="14.00">$ctrl</text>
+</g>
+<!-- Stop3 -->
+<g id="node3" class="node">
+<title>Stop3</title>
+<polygon fill="yellow" stroke="black" points="108,-52 54,-52 54,-16 108,-16 108,-52"/>
+<text text-anchor="middle" x="81" y="-30.3" font-family="Times,serif" font-size="14.00">Stop</text>
+</g>
+<!-- Return21 -->
+<g id="node5" class="node">
+<title>Return21</title>
+<polygon fill="yellow" stroke="black" points="114,-124 48,-124 48,-88 114,-88 114,-124"/>
+<text text-anchor="middle" x="81" y="-102.3" font-family="Times,serif" font-size="14.00">Return</text>
+</g>
+<!-- Stop3&#45;&gt;Return21 -->
+<g id="edge3" class="edge">
+<title>Stop3&#45;&gt;Return21</title>
+<path fill="none" stroke="red" d="M81,-52.3C81,-60.02 81,-69.29 81,-77.89"/>
+<polygon fill="red" stroke="red" points="77.5,-77.9 81,-87.9 84.5,-77.9 77.5,-77.9"/>
+<text text-anchor="middle" x="78" y="-54.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return21&#45;&gt;Never18 -->
+<g id="edge4" class="edge">
+<title>Return21&#45;&gt;Never18:p0</title>
+<path fill="none" stroke="red" d="M66.31,-124.18C59.67,-133.33 52.73,-145.27 50.1,-157.83"/>
+<polygon fill="red" stroke="red" points="46.6,-157.68 49,-168 53.56,-158.43 46.6,-157.68"/>
+<text text-anchor="middle" x="63.31" y="-126.78" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return21&#45;&gt;Con_4 -->
+<g id="edge5" class="edge">
+<title>Return21&#45;&gt;Con_4</title>
+<path fill="none" stroke="black" d="M105.93,-124.14C117.06,-133.33 129,-145.71 135,-160 147.36,-189.44 138.76,-226.37 130.12,-250.77"/>
+<polygon fill="black" stroke="black" points="126.74,-249.81 126.48,-260.41 133.29,-252.29 126.74,-249.81"/>
+<text text-anchor="middle" x="102.93" y="-126.74" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Loop8&#45;&gt;Never18 -->
+<g id="edge7" class="edge">
+<title>Loop8&#45;&gt;Never18:p1</title>
+<path fill="none" stroke="red" d="M74.25,-262.42C94.74,-250.81 120.25,-234.78 126,-224 137.5,-202.43 143.04,-186.53 126,-169 118.29,-161.07 103.85,-156.04 96.15,-159.39"/>
+<polygon fill="red" stroke="red" points="93.13,-157.62 91,-168 99.14,-161.22 93.13,-157.62"/>
+<text text-anchor="middle" x="77.25" y="-256.02" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Loop8&#45;&gt;Start2 -->
+<g id="edge6" class="edge">
+<title>Loop8&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M47.86,-296.09C48.28,-305.54 48.73,-317.77 48.92,-329.68"/>
+<polygon fill="red" stroke="red" points="45.42,-330.03 49,-340 52.42,-329.97 45.42,-330.03"/>
+<text text-anchor="middle" x="44.86" y="-298.69" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+</g>
+</svg>