diff options
Diffstat (limited to 'chapter04')
| -rw-r--r-- | chapter04/docs/lattice.gv | 29 | ||||
| -rw-r--r-- | chapter04/docs/lattice.svg | 390 |
2 files changed, 210 insertions, 209 deletions
diff --git a/chapter04/docs/lattice.gv b/chapter04/docs/lattice.gv index 1f286530..29a53b0a 100644 --- a/chapter04/docs/lattice.gv +++ b/chapter04/docs/lattice.gv @@ -4,13 +4,13 @@ digraph Lattice { node [shape=circle, style=filled, fillcolor=lightblue]; nodesep=0.6; - TOP [label="⊤"]; - BOT [label="⊥"]; + TOP [label="⊤" , fillcolor=black, fontcolor=white]; + BOT [label="⊥", fillcolor=black, fontcolor=white]; - CTRL [label="Ctrl"]; + CTRL [label="Ctrl", fillcolor=yellow]; - INT_TOP [label="IntTop"]; - INT_BOT [label="IntBot"]; + INT_TOP [label="⊤ :Int"]; + INT_BOT [label="⊥ :Int"]; INT_MIN [label="-n"]; INT_MINDOTS [label="..." shape=none style=none]; @@ -20,7 +20,7 @@ digraph Lattice { INT_MAXDOTS [label="..." shape=none style=none]; INT_MAX [label="+n"]; - TUPLE [label="TUPLE"]; + TUPLE [label="TUPLE", fillcolor=pink]; // Define edges edge [arrowhead=none]; @@ -44,20 +44,21 @@ digraph Lattice { INT_MIN -> INT_MINDOTS -> INT_MINUS -> INT_ZERO -> INT_PLUS -> INT_MAXDOTS -> INT_MAX [style=invis]; - TOP -> TUPLE; - TUPLE -> BOT; + TOP -> TUPLE; + TUPLE -> BOT; - TOP -> CTRL; - CTRL -> BOT; + TOP -> CTRL; + CTRL -> BOT; // Additional customization {rank=same; TOP} {rank=same; INT_TOP} - {rank=same; CTRL; INT_MIN; INT_MINDOTS; - INT_MINUS; INT_ZERO; - INT_PLUS; INT_MAXDOTS; - INT_MAX; TUPLE} + {rank=same; + CTRL; + INT_MIN; INT_MINDOTS; INT_MINUS; INT_ZERO; INT_PLUS; INT_MAXDOTS; INT_MAX; + TUPLE + } {rank=same; INT_BOT} {rank=same; BOT;} } diff --git a/chapter04/docs/lattice.svg b/chapter04/docs/lattice.svg index 0d403c20..1cab7681 100644 --- a/chapter04/docs/lattice.svg +++ b/chapter04/docs/lattice.svg @@ -1,195 +1,195 @@ -<?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: Lattice Pages: 1 --> -<svg width="802pt" height="478pt" - viewBox="0.00 0.00 802.14 478.27" 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 474.27)"> -<title>Lattice</title> -<polygon fill="white" stroke="transparent" points="-4,4 -4,-474.27 798.14,-474.27 798.14,4 -4,4"/> -<!-- TOP --> -<g id="node1" class="node"> -<title>TOP</title> -<ellipse fill="lightblue" stroke="black" cx="377.6" cy="-450.77" rx="19.5" ry="19.5"/> -<text text-anchor="middle" x="377.6" y="-447.07" font-family="Times,serif" font-size="14.00">⊤</text> -</g> -<!-- CTRL --> -<g id="node3" class="node"> -<title>CTRL</title> -<ellipse fill="lightblue" stroke="black" cx="28.6" cy="-235.14" rx="28.7" ry="28.7"/> -<text text-anchor="middle" x="28.6" y="-231.44" font-family="Times,serif" font-size="14.00">Ctrl</text> -</g> -<!-- TOP->CTRL --> -<g id="edge25" class="edge"> -<title>TOP->CTRL</title> -<path fill="none" stroke="black" d="M360.76,-440.37C304.12,-405.37 120.24,-291.76 53.28,-250.38"/> -</g> -<!-- INT_TOP --> -<g id="node4" class="node"> -<title>INT_TOP</title> -<ellipse fill="lightblue" stroke="black" cx="377.6" cy="-354.98" rx="40.09" ry="40.09"/> -<text text-anchor="middle" x="377.6" y="-351.28" font-family="Times,serif" font-size="14.00">IntTop</text> -</g> -<!-- TOP->INT_TOP --> -<g id="edge1" class="edge"> -<title>TOP->INT_TOP</title> -<path fill="none" stroke="black" d="M377.6,-431.24C377.6,-420.99 377.6,-407.84 377.6,-395.42"/> -</g> -<!-- TUPLE --> -<g id="node13" class="node"> -<title>TUPLE</title> -<ellipse fill="lightblue" stroke="black" cx="750.6" cy="-235.14" rx="43.59" ry="43.59"/> -<text text-anchor="middle" x="750.6" y="-231.44" font-family="Times,serif" font-size="14.00">TUPLE</text> -</g> -<!-- TOP->TUPLE --> -<g id="edge23" class="edge"> -<title>TOP->TUPLE</title> -<path fill="none" stroke="black" d="M394.59,-440.95C451.03,-408.32 633.13,-303.05 712.75,-257.02"/> -</g> -<!-- BOT --> -<g id="node2" class="node"> -<title>BOT</title> -<ellipse fill="lightblue" stroke="black" cx="377.6" cy="-19.5" rx="19.5" ry="19.5"/> -<text text-anchor="middle" x="377.6" y="-15.8" font-family="Times,serif" font-size="14.00">⊥</text> -</g> -<!-- CTRL->BOT --> -<g id="edge26" class="edge"> -<title>CTRL->BOT</title> -<path fill="none" stroke="black" d="M53.14,-219.97C120.01,-178.65 304.22,-64.84 360.83,-29.86"/> -</g> -<!-- INT_MIN --> -<g id="node6" class="node"> -<title>INT_MIN</title> -<ellipse fill="lightblue" stroke="black" cx="119.6" cy="-235.14" rx="19.5" ry="19.5"/> -<text text-anchor="middle" x="119.6" y="-231.44" font-family="Times,serif" font-size="14.00">-n</text> -</g> -<!-- INT_TOP->INT_MIN --> -<g id="edge2" class="edge"> -<title>INT_TOP->INT_MIN</title> -<path fill="none" stroke="black" d="M341.18,-337.34C284.92,-311.65 179.02,-263.28 137.21,-244.18"/> -</g> -<!-- INT_MINDOTS --> -<g id="node7" class="node"> -<title>INT_MINDOTS</title> -<text text-anchor="middle" x="208.6" y="-231.44" font-family="Times,serif" font-size="14.00">...</text> -</g> -<!-- INT_TOP->INT_MINDOTS --> -<g id="edge3" class="edge"> -<title>INT_TOP->INT_MINDOTS</title> -<path fill="none" stroke="black" d="M345.01,-331.26C312.3,-308.45 262.65,-273.83 233.14,-253.25"/> -</g> -<!-- INT_MINUS --> -<g id="node8" class="node"> -<title>INT_MINUS</title> -<ellipse fill="lightblue" stroke="black" cx="297.6" cy="-235.14" rx="19.5" ry="19.5"/> -<text text-anchor="middle" x="297.6" y="-231.44" font-family="Times,serif" font-size="14.00">-1</text> -</g> -<!-- INT_TOP->INT_MINUS --> -<g id="edge4" class="edge"> -<title>INT_TOP->INT_MINUS</title> -<path fill="none" stroke="black" d="M355.31,-321.15C339.96,-298.54 320.25,-269.51 308.29,-251.89"/> -</g> -<!-- INT_ZERO --> -<g id="node9" class="node"> -<title>INT_ZERO</title> -<ellipse fill="lightblue" stroke="black" cx="377.6" cy="-235.14" rx="18" ry="18"/> -<text text-anchor="middle" x="377.6" y="-231.44" font-family="Times,serif" font-size="14.00">0</text> -</g> -<!-- INT_TOP->INT_ZERO --> -<g id="edge5" class="edge"> -<title>INT_TOP->INT_ZERO</title> -<path fill="none" stroke="black" d="M377.6,-314.41C377.6,-293.68 377.6,-269.36 377.6,-253.39"/> -</g> -<!-- INT_PLUS --> -<g id="node10" class="node"> -<title>INT_PLUS</title> -<ellipse fill="lightblue" stroke="black" cx="456.6" cy="-235.14" rx="18" ry="18"/> -<text text-anchor="middle" x="456.6" y="-231.44" font-family="Times,serif" font-size="14.00">1</text> -</g> -<!-- INT_TOP->INT_PLUS --> -<g id="edge6" class="edge"> -<title>INT_TOP->INT_PLUS</title> -<path fill="none" stroke="black" d="M399.6,-321.15C415.13,-298 435.17,-268.1 446.88,-250.63"/> -</g> -<!-- INT_MAXDOTS --> -<g id="node11" class="node"> -<title>INT_MAXDOTS</title> -<text text-anchor="middle" x="544.6" y="-231.44" font-family="Times,serif" font-size="14.00">...</text> -</g> -<!-- INT_TOP->INT_MAXDOTS --> -<g id="edge7" class="edge"> -<title>INT_TOP->INT_MAXDOTS</title> -<path fill="none" stroke="black" d="M410.19,-330.98C442.56,-308.14 491.43,-273.65 520.47,-253.16"/> -</g> -<!-- INT_MAX --> -<g id="node12" class="node"> -<title>INT_MAX</title> -<ellipse fill="lightblue" stroke="black" cx="639.6" cy="-235.14" rx="24.9" ry="24.9"/> -<text text-anchor="middle" x="639.6" y="-231.44" font-family="Times,serif" font-size="14.00">+n</text> -</g> -<!-- INT_TOP->INT_MAX --> -<g id="edge8" class="edge"> -<title>INT_TOP->INT_MAX</title> -<path fill="none" stroke="black" d="M414.03,-337.59C469.15,-312.8 572.09,-266.5 617.32,-246.16"/> -</g> -<!-- INT_BOT --> -<g id="node5" class="node"> -<title>INT_BOT</title> -<ellipse fill="lightblue" stroke="black" cx="377.6" cy="-115.29" rx="40.09" ry="40.09"/> -<text text-anchor="middle" x="377.6" y="-111.59" font-family="Times,serif" font-size="14.00">IntBot</text> -</g> -<!-- INT_BOT->BOT --> -<g id="edge16" class="edge"> -<title>INT_BOT->BOT</title> -<path fill="none" stroke="black" d="M377.6,-74.79C377.6,-62.37 377.6,-49.25 377.6,-39.01"/> -</g> -<!-- INT_MIN->INT_BOT --> -<g id="edge9" class="edge"> -<title>INT_MIN->INT_BOT</title> -<path fill="none" stroke="black" d="M137.33,-226.04C179.23,-206.9 285.02,-158.58 341.21,-132.91"/> -</g> -<!-- INT_MIN->INT_MINDOTS --> -<!-- INT_MINDOTS->INT_BOT --> -<g id="edge10" class="edge"> -<title>INT_MINDOTS->INT_BOT</title> -<path fill="none" stroke="black" d="M233.17,-217C262.65,-196.45 312.17,-161.91 344.87,-139.11"/> -</g> -<!-- INT_MINDOTS->INT_MINUS --> -<!-- INT_MINUS->INT_BOT --> -<g id="edge11" class="edge"> -<title>INT_MINUS->INT_BOT</title> -<path fill="none" stroke="black" d="M308.39,-218.24C320.33,-200.65 339.91,-171.81 355.2,-149.29"/> -</g> -<!-- INT_MINUS->INT_ZERO --> -<!-- INT_ZERO->INT_BOT --> -<g id="edge12" class="edge"> -<title>INT_ZERO->INT_BOT</title> -<path fill="none" stroke="black" d="M377.6,-217C377.6,-201.04 377.6,-176.66 377.6,-155.88"/> -</g> -<!-- INT_ZERO->INT_PLUS --> -<!-- INT_PLUS->INT_BOT --> -<g id="edge13" class="edge"> -<title>INT_PLUS->INT_BOT</title> -<path fill="none" stroke="black" d="M446.91,-219.69C435.21,-202.23 415.16,-172.33 399.63,-149.16"/> -</g> -<!-- INT_PLUS->INT_MAXDOTS --> -<!-- INT_MAXDOTS->INT_BOT --> -<g id="edge14" class="edge"> -<title>INT_MAXDOTS->INT_BOT</title> -<path fill="none" stroke="black" d="M520.31,-217C491.28,-196.51 442.55,-162.13 410.24,-139.33"/> -</g> -<!-- INT_MAXDOTS->INT_MAX --> -<!-- INT_MAX->INT_BOT --> -<g id="edge15" class="edge"> -<title>INT_MAX->INT_BOT</title> -<path fill="none" stroke="black" d="M617.26,-224.09C572.09,-203.77 469.52,-157.64 414.35,-132.82"/> -</g> -<!-- TUPLE->BOT --> -<g id="edge24" class="edge"> -<title>TUPLE->BOT</title> -<path fill="none" stroke="black" d="M712.78,-213.27C633.14,-167.23 450.85,-61.85 394.51,-29.27"/> -</g> -</g> -</svg> +<?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 12.2.0 (20241103.1931)
+ -->
+<!-- Title: Lattice Pages: 1 -->
+<svg width="780pt" height="468pt"
+ viewBox="0.00 0.00 779.83 467.88" 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 463.88)">
+<title>Lattice</title>
+<polygon fill="white" stroke="none" points="-4,4 -4,-463.88 775.83,-463.88 775.83,4 -4,4"/>
+<!-- TOP -->
+<g id="node1" class="node">
+<title>TOP</title>
+<ellipse fill="black" stroke="black" cx="370.25" cy="-438.75" rx="21.12" ry="21.12"/>
+<text text-anchor="middle" x="370.25" y="-433.33" font-family="Times New Roman,serif" font-size="14.00" fill="white">⊤</text>
+</g>
+<!-- CTRL -->
+<g id="node3" class="node">
+<title>CTRL</title>
+<ellipse fill="yellow" stroke="black" cx="25.25" cy="-229.94" rx="25.25" ry="25.25"/>
+<text text-anchor="middle" x="25.25" y="-224.89" font-family="Times New Roman,serif" font-size="14.00">Ctrl</text>
+</g>
+<!-- TOP->CTRL -->
+<g id="edge25" class="edge">
+<title>TOP->CTRL</title>
+<path fill="none" stroke="black" d="M352.19,-427.82C293.82,-392.49 110.39,-281.47 47.03,-243.12"/>
+</g>
+<!-- INT_TOP -->
+<g id="node4" class="node">
+<title>INT_TOP</title>
+<ellipse fill="lightblue" stroke="black" cx="370.25" cy="-343.57" rx="38.06" ry="38.06"/>
+<text text-anchor="middle" x="370.25" y="-338.9" font-family="Times New Roman,serif" font-size="14.00">⊤ :Int</text>
+</g>
+<!-- TOP->INT_TOP -->
+<g id="edge1" class="edge">
+<title>TOP->INT_TOP</title>
+<path fill="none" stroke="black" d="M370.25,-417.53C370.25,-407.15 370.25,-394.16 370.25,-382.03"/>
+</g>
+<!-- TUPLE -->
+<g id="node13" class="node">
+<title>TUPLE</title>
+<ellipse fill="pink" stroke="black" cx="732.25" cy="-229.94" rx="39.58" ry="39.58"/>
+<text text-anchor="middle" x="732.25" y="-224.89" font-family="Times New Roman,serif" font-size="14.00">TUPLE</text>
+</g>
+<!-- TOP->TUPLE -->
+<g id="edge23" class="edge">
+<title>TOP->TUPLE</title>
+<path fill="none" stroke="black" d="M388.95,-427.97C446.64,-394.69 622.49,-293.25 697.62,-249.91"/>
+</g>
+<!-- BOT -->
+<g id="node2" class="node">
+<title>BOT</title>
+<ellipse fill="black" stroke="black" cx="370.25" cy="-21.12" rx="21.12" ry="21.12"/>
+<text text-anchor="middle" x="370.25" y="-15.7" font-family="Times New Roman,serif" font-size="14.00" fill="white">⊥</text>
+</g>
+<!-- CTRL->BOT -->
+<g id="edge26" class="edge">
+<title>CTRL->BOT</title>
+<path fill="none" stroke="black" d="M47.09,-216.72C110.49,-178.35 293.71,-67.45 352.13,-32.09"/>
+</g>
+<!-- INT_MIN -->
+<g id="node6" class="node">
+<title>INT_MIN</title>
+<ellipse fill="lightblue" stroke="black" cx="112.25" cy="-229.94" rx="18.6" ry="18.6"/>
+<text text-anchor="middle" x="112.25" y="-224.89" font-family="Times New Roman,serif" font-size="14.00">-n</text>
+</g>
+<!-- INT_TOP->INT_MIN -->
+<g id="edge2" class="edge">
+<title>INT_TOP->INT_MIN</title>
+<path fill="none" stroke="black" d="M335.45,-327.52C279.34,-303.24 170.92,-256.32 129.19,-238.27"/>
+</g>
+<!-- INT_MINDOTS -->
+<g id="node7" class="node">
+<title>INT_MINDOTS</title>
+<text text-anchor="middle" x="201.25" y="-224.89" font-family="Times New Roman,serif" font-size="14.00">...</text>
+</g>
+<!-- INT_TOP->INT_MINDOTS -->
+<g id="edge3" class="edge">
+<title>INT_TOP->INT_MINDOTS</title>
+<path fill="none" stroke="black" d="M338.86,-321.84C306.59,-300.53 256.96,-267.74 226.95,-247.91"/>
+</g>
+<!-- INT_MINUS -->
+<g id="node8" class="node">
+<title>INT_MINUS</title>
+<ellipse fill="lightblue" stroke="black" cx="290.25" cy="-229.94" rx="18.6" ry="18.6"/>
+<text text-anchor="middle" x="290.25" y="-224.89" font-family="Times New Roman,serif" font-size="14.00">-1</text>
+</g>
+<!-- INT_TOP->INT_MINUS -->
+<g id="edge4" class="edge">
+<title>INT_TOP->INT_MINUS</title>
+<path fill="none" stroke="black" d="M348.39,-312.07C332.94,-290.51 312.9,-262.55 300.84,-245.72"/>
+</g>
+<!-- INT_ZERO -->
+<g id="node9" class="node">
+<title>INT_ZERO</title>
+<ellipse fill="lightblue" stroke="black" cx="370.25" cy="-229.94" rx="18" ry="18"/>
+<text text-anchor="middle" x="370.25" y="-224.89" font-family="Times New Roman,serif" font-size="14.00">0</text>
+</g>
+<!-- INT_TOP->INT_ZERO -->
+<g id="edge5" class="edge">
+<title>INT_TOP->INT_ZERO</title>
+<path fill="none" stroke="black" d="M370.25,-305.09C370.25,-285.83 370.25,-263.3 370.25,-248.18"/>
+</g>
+<!-- INT_PLUS -->
+<g id="node10" class="node">
+<title>INT_PLUS</title>
+<ellipse fill="lightblue" stroke="black" cx="449.25" cy="-229.94" rx="18" ry="18"/>
+<text text-anchor="middle" x="449.25" y="-224.89" font-family="Times New Roman,serif" font-size="14.00">1</text>
+</g>
+<!-- INT_TOP->INT_PLUS -->
+<g id="edge6" class="edge">
+<title>INT_TOP->INT_PLUS</title>
+<path fill="none" stroke="black" d="M392.05,-311.77C407.39,-290.09 427.23,-262.05 439.06,-245.34"/>
+</g>
+<!-- INT_MAXDOTS -->
+<g id="node11" class="node">
+<title>INT_MAXDOTS</title>
+<text text-anchor="middle" x="537.25" y="-224.89" font-family="Times New Roman,serif" font-size="14.00">...</text>
+</g>
+<!-- INT_TOP->INT_MAXDOTS -->
+<g id="edge7" class="edge">
+<title>INT_TOP->INT_MAXDOTS</title>
+<path fill="none" stroke="black" d="M401.66,-321.58C433.6,-300.23 482.46,-267.57 511.98,-247.83"/>
+</g>
+<!-- INT_MAX -->
+<g id="node12" class="node">
+<title>INT_MAX</title>
+<ellipse fill="lightblue" stroke="black" cx="628.25" cy="-229.94" rx="21.15" ry="21.15"/>
+<text text-anchor="middle" x="628.25" y="-224.89" font-family="Times New Roman,serif" font-size="14.00">+n</text>
+</g>
+<!-- INT_TOP->INT_MAX -->
+<g id="edge8" class="edge">
+<title>INT_TOP->INT_MAX</title>
+<path fill="none" stroke="black" d="M405.04,-327.52C460.06,-303.71 565.35,-258.16 608.78,-239.36"/>
+</g>
+<!-- INT_BOT -->
+<g id="node5" class="node">
+<title>INT_BOT</title>
+<ellipse fill="lightblue" stroke="black" cx="370.25" cy="-116.3" rx="38.06" ry="38.06"/>
+<text text-anchor="middle" x="370.25" y="-111.63" font-family="Times New Roman,serif" font-size="14.00">⊥ :Int</text>
+</g>
+<!-- INT_BOT->BOT -->
+<g id="edge16" class="edge">
+<title>INT_BOT->BOT</title>
+<path fill="none" stroke="black" d="M370.25,-77.94C370.25,-65.89 370.25,-52.98 370.25,-42.62"/>
+</g>
+<!-- INT_MIN->INT_BOT -->
+<g id="edge9" class="edge">
+<title>INT_MIN->INT_BOT</title>
+<path fill="none" stroke="black" d="M129.18,-221.61C170.88,-203.57 279.24,-156.68 335.39,-132.39"/>
+</g>
+<!-- INT_MIN->INT_MINDOTS -->
+<!-- INT_MINDOTS->INT_BOT -->
+<g id="edge10" class="edge">
+<title>INT_MINDOTS->INT_BOT</title>
+<path fill="none" stroke="black" d="M226.92,-211.98C256.83,-192.22 306.29,-159.56 338.57,-138.23"/>
+</g>
+<!-- INT_MINDOTS->INT_MINUS -->
+<!-- INT_MINUS->INT_BOT -->
+<g id="edge11" class="edge">
+<title>INT_MINUS->INT_BOT</title>
+<path fill="none" stroke="black" d="M300.71,-214.34C312.74,-197.56 332.82,-169.54 348.32,-147.91"/>
+</g>
+<!-- INT_MINUS->INT_ZERO -->
+<!-- INT_ZERO->INT_BOT -->
+<g id="edge12" class="edge">
+<title>INT_ZERO->INT_BOT</title>
+<path fill="none" stroke="black" d="M370.25,-211.5C370.25,-196.29 370.25,-173.71 370.25,-154.48"/>
+</g>
+<!-- INT_ZERO->INT_PLUS -->
+<!-- INT_PLUS->INT_BOT -->
+<g id="edge13" class="edge">
+<title>INT_PLUS->INT_BOT</title>
+<path fill="none" stroke="black" d="M439.24,-214.8C427.37,-198.02 407.23,-169.57 391.77,-147.71"/>
+</g>
+<!-- INT_PLUS->INT_MAXDOTS -->
+<!-- INT_MAXDOTS->INT_BOT -->
+<g id="edge14" class="edge">
+<title>INT_MAXDOTS->INT_BOT</title>
+<path fill="none" stroke="black" d="M511.89,-211.98C482.32,-192.22 433.46,-159.56 401.56,-138.23"/>
+</g>
+<!-- INT_MAXDOTS->INT_MAX -->
+<!-- INT_MAX->INT_BOT -->
+<g id="edge15" class="edge">
+<title>INT_MAX->INT_BOT</title>
+<path fill="none" stroke="black" d="M608.86,-220.55C565.5,-201.79 460.2,-156.22 405.12,-132.39"/>
+</g>
+<!-- TUPLE->BOT -->
+<g id="edge24" class="edge">
+<title>TUPLE->BOT</title>
+<path fill="none" stroke="black" d="M697.54,-209.92C622.33,-166.53 446.47,-65.09 388.87,-31.87"/>
+</g>
+</g>
+</svg>
|
