aboutsummaryrefslogtreecommitdiff
path: root/doc/talks/2023-01-18-tocatta
diff options
context:
space:
mode:
Diffstat (limited to 'doc/talks/2023-01-18-tocatta')
-rw-r--r--doc/talks/2023-01-18-tocatta/Makefile14
-rw-r--r--doc/talks/2023-01-18-tocatta/assets/lattice8.svg112
-rw-r--r--doc/talks/2023-01-18-tocatta/assets/latticeB_1.svg576
-rw-r--r--doc/talks/2023-01-18-tocatta/assets/latticeB_10.svg715
-rw-r--r--doc/talks/2023-01-18-tocatta/assets/latticeB_2.svg (renamed from doc/talks/2023-01-18-tocatta/assets/latticeC.svg)116
-rw-r--r--doc/talks/2023-01-18-tocatta/assets/latticeB_3.svg (renamed from doc/talks/2023-01-18-tocatta/assets/latticeA.svg)109
-rw-r--r--doc/talks/2023-01-18-tocatta/assets/latticeB_4.svg (renamed from doc/talks/2023-01-18-tocatta/assets/lattice9.svg)114
-rw-r--r--doc/talks/2023-01-18-tocatta/assets/latticeB_5.svg (renamed from doc/talks/2023-01-18-tocatta/assets/latticeB.svg)140
-rw-r--r--doc/talks/2023-01-18-tocatta/assets/latticeB_6.svg632
-rw-r--r--doc/talks/2023-01-18-tocatta/assets/latticeB_7.svg654
-rw-r--r--doc/talks/2023-01-18-tocatta/assets/latticeB_8.svg671
-rw-r--r--doc/talks/2023-01-18-tocatta/assets/latticeB_9.svg699
-rw-r--r--doc/talks/2023-01-18-tocatta/talk.pdfbin2494390 -> 2488793 bytes
-rw-r--r--doc/talks/2023-01-18-tocatta/talk.tex66
14 files changed, 4269 insertions, 349 deletions
diff --git a/doc/talks/2023-01-18-tocatta/Makefile b/doc/talks/2023-01-18-tocatta/Makefile
index a1f76e15..554f7b97 100644
--- a/doc/talks/2023-01-18-tocatta/Makefile
+++ b/doc/talks/2023-01-18-tocatta/Makefile
@@ -12,10 +12,16 @@ ASSETS=assets/consistent_hashing_1.pdf \
assets/lattice6.pdf_tex \
assets/lattice7.pdf_tex \
assets/lattice8.pdf_tex \
- assets/lattice9.pdf_tex \
- assets/latticeA.pdf_tex \
- assets/latticeB.pdf_tex \
- assets/latticeC.pdf_tex \
+ assets/latticeB_1.pdf_tex \
+ assets/latticeB_2.pdf_tex \
+ assets/latticeB_3.pdf_tex \
+ assets/latticeB_4.pdf_tex \
+ assets/latticeB_5.pdf_tex \
+ assets/latticeB_6.pdf_tex \
+ assets/latticeB_7.pdf_tex \
+ assets/latticeB_8.pdf_tex \
+ assets/latticeB_9.pdf_tex \
+ assets/latticeB_10.pdf_tex \
assets/deuxfleurs.pdf
talk.pdf: talk.tex $(ASSETS)
diff --git a/doc/talks/2023-01-18-tocatta/assets/lattice8.svg b/doc/talks/2023-01-18-tocatta/assets/lattice8.svg
index 3bada791..c94a69b2 100644
--- a/doc/talks/2023-01-18-tocatta/assets/lattice8.svg
+++ b/doc/talks/2023-01-18-tocatta/assets/lattice8.svg
@@ -25,8 +25,8 @@
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.4734708"
- inkscape:cx="451.65469"
- inkscape:cy="272.14655"
+ inkscape:cx="399.39712"
+ inkscape:cy="248.39311"
inkscape:window-width="1920"
inkscape:window-height="999"
inkscape:window-x="0"
@@ -433,8 +433,8 @@
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663"
- cx="147.35568"
- cy="95.24971"
+ cx="132.33408"
+ cy="68.007973"
r="2.7302806" />
<circle
style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
@@ -480,6 +480,17 @@
<text
xml:space="preserve"
style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.261436"
+ id="text3707-1"><tspan
+ sodipodi:role="line"
+ id="tspan3705-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.261436">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
x="23.457415"
y="24.042637"
id="text3750"><tspan
@@ -501,15 +512,32 @@
y="33.02087">$\sqsupseteq \{a\} \to$ OK</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
x="23.457415"
y="41.972523"
id="text3750-0"><tspan
sodipodi:role="line"
id="tspan3748-6"
- style="fill:#999999;stroke-width:0.264583"
+ style="fill:#000000;stroke-width:0.264583"
x="23.457415"
- y="41.972523">$\not\sqsupseteq \{a\}$</tspan></text>
+ y="41.972523">$\sqsupseteq \{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-4"
+ cx="18.004833"
+ cy="70.942116"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="73.643356"
+ id="text3750-7"><tspan
+ sodipodi:role="line"
+ id="tspan3748-65"
+ style="fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="73.643356">$\to \{\}$</tspan></text>
<text
xml:space="preserve"
style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
@@ -521,67 +549,33 @@
style="fill:#000000;stroke-width:0.264583"
x="14.395845"
y="52.022549">return OK</tspan></text>
- <circle
- style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
- id="path3663-1-4"
- cx="18.004833"
- cy="90.979645"
- r="2.7302806" />
- <circle
- style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
- id="path3663-3-0-5"
- cx="18.004833"
- cy="81.949104"
- r="2.7302806" />
- <circle
- style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
- id="path3663-6-6-2"
- cx="18.004833"
- cy="72.918564"
- r="2.7302806" />
<text
xml:space="preserve"
style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
- x="6.9525447"
- y="65.279381"
- id="text3707-5"><tspan
+ x="14.395845"
+ y="92.005798"
+ id="text4280-3"><tspan
sodipodi:role="line"
- id="tspan3705-4"
+ id="tspan4278-7"
style="fill:#000000;stroke-width:0.264583"
- x="6.9525447"
- y="65.279381">$write(\{b\})$:</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
- x="23.457415"
- y="75.619804"
- id="text3750-7"><tspan
- sodipodi:role="line"
- id="tspan3748-4"
- style="fill:#999999;stroke-width:0.264583"
- x="23.457415"
- y="75.619804">$\not\sqsupseteq \{b\}$</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
- x="23.457415"
- y="84.598038"
- id="text3750-3-4"><tspan
- sodipodi:role="line"
- id="tspan3748-2-3"
- style="fill:#999999;stroke-width:0.264583"
- x="23.457415"
- y="84.598038">$\not\sqsupseteq \{b\}$</tspan></text>
+ x="14.395845"
+ y="92.005798">return $\{\}\sqcup\{a\}=\{a\}$</tspan></text>
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1-5"
+ cx="18.004833"
+ cy="81.007744"
+ r="2.7302806" />
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
x="23.457415"
- y="93.54969"
- id="text3750-0-0"><tspan
+ y="83.577797"
+ id="text3750-0-6"><tspan
sodipodi:role="line"
- id="tspan3748-6-7"
- style="fill:#999999;stroke-width:0.264583"
+ id="tspan3748-6-9"
+ style="fill:#000000;stroke-width:0.264583"
x="23.457415"
- y="93.54969">$\not\sqsupseteq \{b\}$</tspan></text>
+ y="83.577797">$\to \{a\}$</tspan></text>
</g>
</svg>
diff --git a/doc/talks/2023-01-18-tocatta/assets/latticeB_1.svg b/doc/talks/2023-01-18-tocatta/assets/latticeB_1.svg
new file mode 100644
index 00000000..92232a1b
--- /dev/null
+++ b/doc/talks/2023-01-18-tocatta/assets/latticeB_1.svg
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="1000"
+ height="600"
+ viewBox="0 0 264.58333 158.75"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ sodipodi:docname="latticeB_1.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="1.0419012"
+ inkscape:cx="469.81422"
+ inkscape:cy="257.22209"
+ inkscape:window-width="1920"
+ inkscape:window-height="999"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer2" />
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="Arrow2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3-2" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1-4"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8-7" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2-8"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6-4" />
+ </marker>
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ sodipodi:insensitive="true">
+ <rect
+ style="fill:#ffffff;stroke:none;stroke-width:0.999998;stop-color:#000000"
+ id="rect288"
+ width="262.58151"
+ height="156.82782"
+ x="0.77790999"
+ y="0.93738818" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Layer 2">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442"
+ id="text951"><tspan
+ sodipodi:role="line"
+ id="tspan949"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442">$\{\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893"
+ id="text1005"><tspan
+ sodipodi:role="line"
+ id="tspan1003"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893">$\{a,b,c\}$</tspan></text>
+ <g
+ id="g1175"
+ transform="translate(51.996784,3.5774043)">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698"
+ id="text1009"><tspan
+ sodipodi:role="line"
+ id="tspan1007"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698">$\{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166"
+ id="text1009-3"><tspan
+ sodipodi:role="line"
+ id="tspan1007-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166">$\{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698"
+ id="text1009-7"><tspan
+ sodipodi:role="line"
+ id="tspan1007-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698">$\{c\}$</tspan></text>
+ </g>
+ <g
+ id="g1183"
+ transform="translate(51.996784,1.0317046)"
+ style="fill:#000000">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526"
+ id="text1117"><tspan
+ sodipodi:role="line"
+ id="tspan1115"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526">$\{a,c\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526"
+ id="text1117-3"><tspan
+ sodipodi:role="line"
+ id="tspan1115-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526">$\{a,b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526"
+ id="text1117-6"><tspan
+ sodipodi:role="line"
+ id="tspan1115-2"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526">$\{b,c\}$</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2)"
+ d="M 153.33622,90.367682 118.34198,73.428915"
+ id="path1300" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9)"
+ d="M 177.46016,90.367682 212.4544,73.428915"
+ id="path1300-2" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93)"
+ d="M 153.33622,61.655656 118.34198,44.716889"
+ id="path1300-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7)"
+ d="M 177.46016,61.655656 212.4544,44.716889"
+ id="path1300-2-6" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1)"
+ d="M 118.34198,61.655656 153.33622,44.716889"
+ id="path1300-0-7" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2)"
+ d="M 212.4544,61.655656 177.46016,44.716889"
+ id="path1300-2-6-9" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1-4)"
+ d="M 118.34198,34.227412 153.33622,17.288645"
+ id="path1300-0-7-5" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2-8)"
+ d="M 212.4544,34.227412 177.46016,17.288645"
+ id="path1300-2-6-9-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75)"
+ d="m 228.52843,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-2)"
+ d="m 101.90418,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-9"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7)"
+ d="m 165.29305,89.571762 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7-1)"
+ d="m 165.29305,32.445235 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6-9"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663"
+ cx="147.35568"
+ cy="95.24971"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3"
+ cx="141.05479"
+ cy="95.316383"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6"
+ cx="134.56244"
+ cy="94.993034"
+ r="2.7302806" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1"
+ cx="18.004833"
+ cy="39.402473"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0"
+ cx="18.004833"
+ cy="30.371933"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6"
+ cx="18.004833"
+ cy="21.341394"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217"
+ id="text3707"><tspan
+ sodipodi:role="line"
+ id="tspan3705"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217">$write(\{a\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637"
+ id="text3750"><tspan
+ sodipodi:role="line"
+ id="tspan3748"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637">$\not\sqsupseteq \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087"
+ id="text3750-3"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087">$\not\sqsupseteq \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523"
+ id="text3750-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523">$\not\sqsupseteq \{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1-4"
+ cx="18.004833"
+ cy="90.979645"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-5"
+ cx="18.004833"
+ cy="81.949104"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-2"
+ cx="18.004833"
+ cy="72.918564"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381"
+ id="text3707-5"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381">$write(\{b\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804"
+ id="text3750-7"><tspan
+ sodipodi:role="line"
+ id="tspan3748-4"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804">$\not\sqsupseteq \{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038"
+ id="text3750-3-4"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-3"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038">$\not\sqsupseteq \{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969"
+ id="text3750-0-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6-7"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969">$\not\sqsupseteq \{b\}$</tspan></text>
+ </g>
+</svg>
diff --git a/doc/talks/2023-01-18-tocatta/assets/latticeB_10.svg b/doc/talks/2023-01-18-tocatta/assets/latticeB_10.svg
new file mode 100644
index 00000000..34c24e0d
--- /dev/null
+++ b/doc/talks/2023-01-18-tocatta/assets/latticeB_10.svg
@@ -0,0 +1,715 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="1000"
+ height="600"
+ viewBox="0 0 264.58333 158.75"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ sodipodi:docname="latticeB_10.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="1.0419012"
+ inkscape:cx="664.65036"
+ inkscape:cy="366.63745"
+ inkscape:window-width="1920"
+ inkscape:window-height="999"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer2" />
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="Arrow2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3-2" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1-4"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8-7" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2-8"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6-4" />
+ </marker>
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ sodipodi:insensitive="true">
+ <rect
+ style="fill:#ffffff;stroke:none;stroke-width:0.999998;stop-color:#000000"
+ id="rect288"
+ width="262.58151"
+ height="156.82782"
+ x="0.77790999"
+ y="0.93738818" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Layer 2">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442"
+ id="text951"><tspan
+ sodipodi:role="line"
+ id="tspan949"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442">$\{\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893"
+ id="text1005"><tspan
+ sodipodi:role="line"
+ id="tspan1003"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893">$\{a,b,c\}$</tspan></text>
+ <g
+ id="g1175"
+ transform="translate(51.996784,3.5774043)">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698"
+ id="text1009"><tspan
+ sodipodi:role="line"
+ id="tspan1007"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698">$\{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166"
+ id="text1009-3"><tspan
+ sodipodi:role="line"
+ id="tspan1007-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166">$\{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698"
+ id="text1009-7"><tspan
+ sodipodi:role="line"
+ id="tspan1007-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698">$\{c\}$</tspan></text>
+ </g>
+ <g
+ id="g1183"
+ transform="translate(51.996784,1.0317046)"
+ style="fill:#000000">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526"
+ id="text1117"><tspan
+ sodipodi:role="line"
+ id="tspan1115"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526">$\{a,c\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526"
+ id="text1117-3"><tspan
+ sodipodi:role="line"
+ id="tspan1115-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526">$\{a,b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526"
+ id="text1117-6"><tspan
+ sodipodi:role="line"
+ id="tspan1115-2"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526">$\{b,c\}$</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2)"
+ d="M 153.33622,90.367682 118.34198,73.428915"
+ id="path1300" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9)"
+ d="M 177.46016,90.367682 212.4544,73.428915"
+ id="path1300-2" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93)"
+ d="M 153.33622,61.655656 118.34198,44.716889"
+ id="path1300-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7)"
+ d="M 177.46016,61.655656 212.4544,44.716889"
+ id="path1300-2-6" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1)"
+ d="M 118.34198,61.655656 153.33622,44.716889"
+ id="path1300-0-7" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2)"
+ d="M 212.4544,61.655656 177.46016,44.716889"
+ id="path1300-2-6-9" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1-4)"
+ d="M 118.34198,34.227412 153.33622,17.288645"
+ id="path1300-0-7-5" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2-8)"
+ d="M 212.4544,34.227412 177.46016,17.288645"
+ id="path1300-2-6-9-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75)"
+ d="m 228.52843,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-2)"
+ d="m 101.90418,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-9"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7)"
+ d="m 165.29305,89.571762 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7-1)"
+ d="m 165.29305,32.445235 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6-9"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663"
+ cx="147.35568"
+ cy="95.24971"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3"
+ cx="176.97627"
+ cy="68.155472"
+ r="2.7302806" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1"
+ cx="18.004833"
+ cy="39.402473"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0"
+ cx="18.004833"
+ cy="30.371933"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6"
+ cx="18.004833"
+ cy="21.341394"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217"
+ id="text3707"><tspan
+ sodipodi:role="line"
+ id="tspan3705"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217">$write(\{a\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637"
+ id="text3750"><tspan
+ sodipodi:role="line"
+ id="tspan3748"
+ style="fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637">$\sqsupseteq \{a\} \to$ OK</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087"
+ id="text3750-3"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087">$\not\sqsupseteq \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523"
+ id="text3750-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523">$\not\sqsupseteq \{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1-4"
+ cx="18.004833"
+ cy="90.979645"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-5"
+ cx="18.004833"
+ cy="81.949104"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-2"
+ cx="18.004833"
+ cy="72.918564"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381"
+ id="text3707-5"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381">$write(\{b\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403"
+ id="text3707-5-3"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804"
+ id="text3750-7"><tspan
+ sodipodi:role="line"
+ id="tspan3748-4"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804">$\not\sqsupseteq \{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038"
+ id="text3750-3-4"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-3"
+ style="fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038">$\sqsupseteq \{b\} \to$ OK</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969"
+ id="text3750-0-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6-7"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969">$\not\sqsupseteq \{b\}$</tspan></text>
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6"
+ cx="118.63729"
+ cy="67.630196"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-0"
+ cx="67.201363"
+ cy="124.91125"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125"
+ id="text3750-9"><tspan
+ sodipodi:role="line"
+ id="tspan3748-3"
+ style="fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125">$\to \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="62.764446"
+ y="146.3129"
+ id="text4280-6"><tspan
+ sodipodi:role="line"
+ style="fill:#000000;stroke-width:0.264583"
+ x="62.764446"
+ y="146.3129"
+ id="tspan2630">return $\{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-7"
+ cx="67.201363"
+ cy="133.94179"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="136.59073"
+ id="text3750-3-6"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-0"
+ style="fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="136.59073">$\to \{\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-0-6"
+ cx="174.36296"
+ cy="124.91125"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="179.81555"
+ y="127.6125"
+ id="text3750-9-1"><tspan
+ sodipodi:role="line"
+ id="tspan3748-3-8"
+ style="fill:#000000;stroke-width:0.264583"
+ x="179.81555"
+ y="127.6125">$\to \{\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="162.7999"
+ y="118.94403"
+ id="text3707-5-3-7"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4-6-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="162.7999"
+ y="118.94403">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
+ x="134.97845"
+ y="132.58472"
+ id="text3899"><tspan
+ sodipodi:role="line"
+ id="tspan3897"
+ style="stroke-width:0.264583"
+ x="134.97845"
+ y="132.58472">;</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="169.92604"
+ y="146.3129"
+ id="text4280-6-7"><tspan
+ sodipodi:role="line"
+ style="fill:#000000;stroke-width:0.264583"
+ x="169.92604"
+ y="146.3129"
+ id="tspan2630-9">return $\{b\}$</tspan></text>
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-7-2"
+ cx="174.36296"
+ cy="133.94179"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="179.81555"
+ y="136.59073"
+ id="text3750-3-6-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-0-2"
+ style="fill:#000000;stroke-width:0.264583"
+ x="179.81555"
+ y="136.59073">$\to \{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:end;text-anchor:end;fill:#ff0000;stroke-width:0.264583"
+ x="259.75"
+ y="135.53111"
+ id="text9043"><tspan
+ sodipodi:role="line"
+ id="tspan9041"
+ style="fill:#ff0000;stroke-width:0.264583"
+ x="259.75"
+ y="135.53111">${\Large\textbf{??!}}$~~~~~</tspan><tspan
+ sodipodi:role="line"
+ style="fill:#ff0000;stroke-width:0.264583"
+ x="259.75"
+ y="146.11446"
+ id="tspan9372">$\{a\} \not\sqsubseteq \{b\}$</tspan></text>
+ </g>
+</svg>
diff --git a/doc/talks/2023-01-18-tocatta/assets/latticeC.svg b/doc/talks/2023-01-18-tocatta/assets/latticeB_2.svg
index c815af94..c07cba2b 100644
--- a/doc/talks/2023-01-18-tocatta/assets/latticeC.svg
+++ b/doc/talks/2023-01-18-tocatta/assets/latticeB_2.svg
@@ -3,12 +3,12 @@
<svg
width="1000"
- height="400"
- viewBox="0 0 264.58333 105.83333"
+ height="600"
+ viewBox="0 0 264.58333 158.75"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
- sodipodi:docname="latticeC.svg"
+ sodipodi:docname="latticeB_2.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
@@ -25,8 +25,8 @@
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.4734708"
- inkscape:cx="450.97602"
- inkscape:cy="272.14655"
+ inkscape:cx="586.70996"
+ inkscape:cy="321.01077"
inkscape:window-width="1920"
inkscape:window-height="999"
inkscape:window-x="0"
@@ -270,10 +270,10 @@
id="layer1"
sodipodi:insensitive="true">
<rect
- style="fill:#ffffff;stroke:none;stroke-width:1;stop-color:#000000"
+ style="fill:#ffffff;stroke:none;stroke-width:0.999998;stop-color:#000000"
id="rect288"
- width="209.84705"
- height="104.42732"
+ width="262.58151"
+ height="156.82782"
x="0.77790999"
y="0.93738818" />
</g>
@@ -283,24 +283,24 @@
inkscape:label="Layer 2">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="164.56372"
y="99.307442"
id="text951"><tspan
sodipodi:role="line"
id="tspan949"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="164.56372"
y="99.307442">$\{\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="164.56372"
y="13.151893"
id="text1005"><tspan
sodipodi:role="line"
id="tspan1003"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="164.56372"
y="13.151893">$\{a,b,c\}$</tspan></text>
<g
@@ -308,35 +308,35 @@
transform="translate(51.996784,3.5774043)">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="49.27084"
y="67.008698"
id="text1009"><tspan
sodipodi:role="line"
id="tspan1007"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="49.27084"
y="67.008698">$\{a\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="112.90984"
y="67.017166"
id="text1009-3"><tspan
sodipodi:role="line"
id="tspan1007-6"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="112.90984"
y="67.017166">$\{b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="176.20593"
y="67.008698"
id="text1009-7"><tspan
sodipodi:role="line"
id="tspan1007-5"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="176.20593"
y="67.008698">$\{c\}$</tspan></text>
</g>
@@ -346,35 +346,35 @@
style="fill:#000000">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="112.90984"
y="40.841526"
id="text1117"><tspan
sodipodi:role="line"
id="tspan1115"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="112.90984"
y="40.841526">$\{a,c\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="49.27084"
y="40.841526"
id="text1117-3"><tspan
sodipodi:role="line"
id="tspan1115-5"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="49.27084"
y="40.841526">$\{a,b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="176.20593"
y="40.841526"
id="text1117-6"><tspan
sodipodi:role="line"
id="tspan1115-2"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="176.20593"
y="40.841526">$\{b,c\}$</tspan></text>
</g>
@@ -433,20 +433,20 @@
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663"
- cx="117.08417"
- cy="38.792969"
+ cx="147.35568"
+ cy="95.24971"
r="2.7302806" />
<circle
style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663-3"
- cx="123.57843"
- cy="39.100433"
+ cx="141.05479"
+ cy="95.316383"
r="2.7302806" />
<circle
style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663-6"
- cx="130.27556"
- cy="39.441635"
+ cx="118.63729"
+ cy="67.630196"
r="2.7302806" />
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
@@ -468,13 +468,13 @@
r="2.7302806" />
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
x="6.9525447"
y="13.702217"
id="text3707"><tspan
sodipodi:role="line"
id="tspan3705"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="6.9525447"
y="13.702217">$write(\{a\})$:</tspan></text>
<text
@@ -490,48 +490,26 @@
y="24.042637">$\sqsupseteq \{a\} \to$ OK</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="33.02087"
id="text3750-3"><tspan
sodipodi:role="line"
id="tspan3748-2"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="33.02087">$\sqsupseteq \{a\} \to$ OK</tspan></text>
+ y="33.02087">$\not\sqsupseteq \{a\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="41.972523"
id="text3750-0"><tspan
sodipodi:role="line"
id="tspan3748-6"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="41.972523">$\sqsupseteq \{a\}$</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="52.022549"
- id="text4280"><tspan
- sodipodi:role="line"
- id="tspan4278"
- style="fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="52.022549">return OK</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="102.48464"
- id="text4280-8"><tspan
- sodipodi:role="line"
- id="tspan4278-8"
- style="fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="102.48464">return OK</tspan></text>
+ y="41.972523">$\not\sqsupseteq \{a\}$</tspan></text>
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663-1-4"
@@ -563,36 +541,36 @@
y="65.279381">$write(\{b\})$:</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="75.619804"
id="text3750-7"><tspan
sodipodi:role="line"
id="tspan3748-4"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="75.619804">$\sqsupseteq \{b\}$</tspan></text>
+ y="75.619804">$\not\sqsupseteq \{b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="84.598038"
id="text3750-3-4"><tspan
sodipodi:role="line"
id="tspan3748-2-3"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="84.598038">$\sqsupseteq \{b\} \to$ OK</tspan></text>
+ y="84.598038">$\not\sqsupseteq \{b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="93.54969"
id="text3750-0-0"><tspan
sodipodi:role="line"
id="tspan3748-6-7"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="93.54969">$\sqsupseteq \{b\} \to$ OK</tspan></text>
+ y="93.54969">$\not\sqsupseteq \{b\}$</tspan></text>
</g>
</svg>
diff --git a/doc/talks/2023-01-18-tocatta/assets/latticeA.svg b/doc/talks/2023-01-18-tocatta/assets/latticeB_3.svg
index 400ccff8..198d1f5d 100644
--- a/doc/talks/2023-01-18-tocatta/assets/latticeA.svg
+++ b/doc/talks/2023-01-18-tocatta/assets/latticeB_3.svg
@@ -3,12 +3,12 @@
<svg
width="1000"
- height="400"
- viewBox="0 0 264.58333 105.83333"
+ height="600"
+ viewBox="0 0 264.58333 158.75"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
- sodipodi:docname="latticeA.svg"
+ sodipodi:docname="latticeB_3.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
@@ -24,9 +24,9 @@
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
- inkscape:zoom="1.4734708"
- inkscape:cx="450.97602"
- inkscape:cy="272.14655"
+ inkscape:zoom="2.0838024"
+ inkscape:cx="465.25525"
+ inkscape:cy="269.21938"
inkscape:window-width="1920"
inkscape:window-height="999"
inkscape:window-x="0"
@@ -270,10 +270,10 @@
id="layer1"
sodipodi:insensitive="true">
<rect
- style="fill:#ffffff;stroke:none;stroke-width:1;stop-color:#000000"
+ style="fill:#ffffff;stroke:none;stroke-width:0.999998;stop-color:#000000"
id="rect288"
- width="209.84705"
- height="104.42732"
+ width="262.58151"
+ height="156.82782"
x="0.77790999"
y="0.93738818" />
</g>
@@ -283,24 +283,24 @@
inkscape:label="Layer 2">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="164.56372"
y="99.307442"
id="text951"><tspan
sodipodi:role="line"
id="tspan949"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="164.56372"
y="99.307442">$\{\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="164.56372"
y="13.151893"
id="text1005"><tspan
sodipodi:role="line"
id="tspan1003"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="164.56372"
y="13.151893">$\{a,b,c\}$</tspan></text>
<g
@@ -308,35 +308,35 @@
transform="translate(51.996784,3.5774043)">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="49.27084"
y="67.008698"
id="text1009"><tspan
sodipodi:role="line"
id="tspan1007"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="49.27084"
y="67.008698">$\{a\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="112.90984"
y="67.017166"
id="text1009-3"><tspan
sodipodi:role="line"
id="tspan1007-6"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="112.90984"
y="67.017166">$\{b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="176.20593"
y="67.008698"
id="text1009-7"><tspan
sodipodi:role="line"
id="tspan1007-5"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="176.20593"
y="67.008698">$\{c\}$</tspan></text>
</g>
@@ -346,35 +346,35 @@
style="fill:#000000">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="112.90984"
y="40.841526"
id="text1117"><tspan
sodipodi:role="line"
id="tspan1115"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="112.90984"
y="40.841526">$\{a,c\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="49.27084"
y="40.841526"
id="text1117-3"><tspan
sodipodi:role="line"
id="tspan1115-5"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="49.27084"
y="40.841526">$\{a,b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="176.20593"
y="40.841526"
id="text1117-6"><tspan
sodipodi:role="line"
id="tspan1115-2"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="176.20593"
y="40.841526">$\{b,c\}$</tspan></text>
</g>
@@ -433,20 +433,14 @@
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663"
- cx="117.08417"
- cy="38.792969"
+ cx="147.35568"
+ cy="95.24971"
r="2.7302806" />
<circle
style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663-3"
- cx="126.08154"
- cy="67.968384"
- r="2.7302806" />
- <circle
- style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
- id="path3663-6"
- cx="119.58919"
- cy="67.645035"
+ cx="176.97627"
+ cy="68.155472"
r="2.7302806" />
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
@@ -468,13 +462,13 @@
r="2.7302806" />
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
x="6.9525447"
y="13.702217"
id="text3707"><tspan
sodipodi:role="line"
id="tspan3705"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="6.9525447"
y="13.702217">$write(\{a\})$:</tspan></text>
<text
@@ -490,37 +484,26 @@
y="24.042637">$\sqsupseteq \{a\} \to$ OK</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="33.02087"
id="text3750-3"><tspan
sodipodi:role="line"
id="tspan3748-2"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="33.02087">$\sqsupseteq \{a\} \to$ OK</tspan></text>
+ y="33.02087">$\not\sqsupseteq \{a\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="41.972523"
id="text3750-0"><tspan
sodipodi:role="line"
id="tspan3748-6"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="41.972523">$\sqsupseteq \{a\}$</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="52.022549"
- id="text4280"><tspan
- sodipodi:role="line"
- id="tspan4278"
- style="fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="52.022549">return OK</tspan></text>
+ y="41.972523">$\not\sqsupseteq \{a\}$</tspan></text>
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663-1-4"
@@ -563,25 +546,31 @@
y="75.619804">$\not\sqsupseteq \{b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
x="23.457415"
y="84.598038"
id="text3750-3-4"><tspan
sodipodi:role="line"
id="tspan3748-2-3"
- style="fill:#999999;stroke-width:0.264583"
+ style="fill:#000000;stroke-width:0.264583"
x="23.457415"
- y="84.598038">$\not\sqsupseteq \{b\}$</tspan></text>
+ y="84.598038">$\sqsupseteq \{b\} \to$ OK</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="93.54969"
id="text3750-0-0"><tspan
sodipodi:role="line"
id="tspan3748-6-7"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="93.54969">$\sqsupseteq \{b\} \to$ OK</tspan></text>
+ y="93.54969">$\not\sqsupseteq \{b\}$</tspan></text>
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6"
+ cx="118.63729"
+ cy="67.630196"
+ r="2.7302806" />
</g>
</svg>
diff --git a/doc/talks/2023-01-18-tocatta/assets/lattice9.svg b/doc/talks/2023-01-18-tocatta/assets/latticeB_4.svg
index 8b3c6585..c5f6148d 100644
--- a/doc/talks/2023-01-18-tocatta/assets/lattice9.svg
+++ b/doc/talks/2023-01-18-tocatta/assets/latticeB_4.svg
@@ -3,12 +3,12 @@
<svg
width="1000"
- height="400"
- viewBox="0 0 264.58333 105.83333"
+ height="600"
+ viewBox="0 0 264.58333 158.75"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
- sodipodi:docname="lattice9.svg"
+ sodipodi:docname="latticeB_4.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
@@ -24,9 +24,9 @@
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
- inkscape:zoom="1.4734708"
- inkscape:cx="451.65469"
- inkscape:cy="272.14655"
+ inkscape:zoom="1.0419012"
+ inkscape:cx="505.32622"
+ inkscape:cy="316.72869"
inkscape:window-width="1920"
inkscape:window-height="999"
inkscape:window-x="0"
@@ -270,10 +270,10 @@
id="layer1"
sodipodi:insensitive="true">
<rect
- style="fill:#ffffff;stroke:none;stroke-width:1;stop-color:#000000"
+ style="fill:#ffffff;stroke:none;stroke-width:0.999998;stop-color:#000000"
id="rect288"
- width="209.84705"
- height="104.42732"
+ width="262.58151"
+ height="156.82782"
x="0.77790999"
y="0.93738818" />
</g>
@@ -283,24 +283,24 @@
inkscape:label="Layer 2">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="164.56372"
y="99.307442"
id="text951"><tspan
sodipodi:role="line"
id="tspan949"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="164.56372"
y="99.307442">$\{\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="164.56372"
y="13.151893"
id="text1005"><tspan
sodipodi:role="line"
id="tspan1003"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="164.56372"
y="13.151893">$\{a,b,c\}$</tspan></text>
<g
@@ -308,35 +308,35 @@
transform="translate(51.996784,3.5774043)">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="49.27084"
y="67.008698"
id="text1009"><tspan
sodipodi:role="line"
id="tspan1007"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="49.27084"
y="67.008698">$\{a\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="112.90984"
y="67.017166"
id="text1009-3"><tspan
sodipodi:role="line"
id="tspan1007-6"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="112.90984"
y="67.017166">$\{b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="176.20593"
y="67.008698"
id="text1009-7"><tspan
sodipodi:role="line"
id="tspan1007-5"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="176.20593"
y="67.008698">$\{c\}$</tspan></text>
</g>
@@ -346,35 +346,35 @@
style="fill:#000000">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="112.90984"
y="40.841526"
id="text1117"><tspan
sodipodi:role="line"
id="tspan1115"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="112.90984"
y="40.841526">$\{a,c\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="49.27084"
y="40.841526"
id="text1117-3"><tspan
sodipodi:role="line"
id="tspan1115-5"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="49.27084"
y="40.841526">$\{a,b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="176.20593"
y="40.841526"
id="text1117-6"><tspan
sodipodi:role="line"
id="tspan1115-2"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="176.20593"
y="40.841526">$\{b,c\}$</tspan></text>
</g>
@@ -433,20 +433,14 @@
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663"
- cx="177.03145"
- cy="67.991631"
+ cx="147.35568"
+ cy="95.24971"
r="2.7302806" />
<circle
style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663-3"
- cx="126.08154"
- cy="67.968384"
- r="2.7302806" />
- <circle
- style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
- id="path3663-6"
- cx="119.58919"
- cy="67.645035"
+ cx="176.97627"
+ cy="68.155472"
r="2.7302806" />
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
@@ -468,13 +462,13 @@
r="2.7302806" />
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
x="6.9525447"
y="13.702217"
id="text3707"><tspan
sodipodi:role="line"
id="tspan3705"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="6.9525447"
y="13.702217">$write(\{a\})$:</tspan></text>
<text
@@ -490,15 +484,15 @@
y="24.042637">$\sqsupseteq \{a\} \to$ OK</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="33.02087"
id="text3750-3"><tspan
sodipodi:role="line"
id="tspan3748-2"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="33.02087">$\sqsupseteq \{a\} \to$ OK</tspan></text>
+ y="33.02087">$\not\sqsupseteq \{a\}$</tspan></text>
<text
xml:space="preserve"
style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
@@ -510,17 +504,6 @@
style="fill:#999999;stroke-width:0.264583"
x="23.457415"
y="41.972523">$\not\sqsupseteq \{a\}$</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="52.022549"
- id="text4280"><tspan
- sodipodi:role="line"
- id="tspan4278"
- style="fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="52.022549">return OK</tspan></text>
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663-1-4"
@@ -552,6 +535,17 @@
y="65.279381">$write(\{b\})$:</tspan></text>
<text
xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403"
+ id="text3707-5-3"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="75.619804"
@@ -563,25 +557,31 @@
y="75.619804">$\not\sqsupseteq \{b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
x="23.457415"
y="84.598038"
id="text3750-3-4"><tspan
sodipodi:role="line"
id="tspan3748-2-3"
- style="fill:#999999;stroke-width:0.264583"
+ style="fill:#000000;stroke-width:0.264583"
x="23.457415"
- y="84.598038">$\not\sqsupseteq \{b\}$</tspan></text>
+ y="84.598038">$\sqsupseteq \{b\} \to$ OK</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="93.54969"
id="text3750-0-0"><tspan
sodipodi:role="line"
id="tspan3748-6-7"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="93.54969">$\sqsupseteq \{b\} \to$ OK</tspan></text>
+ y="93.54969">$\not\sqsupseteq \{b\}$</tspan></text>
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6"
+ cx="118.63729"
+ cy="67.630196"
+ r="2.7302806" />
</g>
</svg>
diff --git a/doc/talks/2023-01-18-tocatta/assets/latticeB.svg b/doc/talks/2023-01-18-tocatta/assets/latticeB_5.svg
index 06725d75..c2b668be 100644
--- a/doc/talks/2023-01-18-tocatta/assets/latticeB.svg
+++ b/doc/talks/2023-01-18-tocatta/assets/latticeB_5.svg
@@ -3,12 +3,12 @@
<svg
width="1000"
- height="400"
- viewBox="0 0 264.58333 105.83333"
+ height="600"
+ viewBox="0 0 264.58333 158.75"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
- sodipodi:docname="latticeB.svg"
+ sodipodi:docname="latticeB_5.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
@@ -25,8 +25,8 @@
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.4734708"
- inkscape:cx="450.97602"
- inkscape:cy="272.14655"
+ inkscape:cx="408.21983"
+ inkscape:cy="319.65343"
inkscape:window-width="1920"
inkscape:window-height="999"
inkscape:window-x="0"
@@ -270,10 +270,10 @@
id="layer1"
sodipodi:insensitive="true">
<rect
- style="fill:#ffffff;stroke:none;stroke-width:1;stop-color:#000000"
+ style="fill:#ffffff;stroke:none;stroke-width:0.999998;stop-color:#000000"
id="rect288"
- width="209.84705"
- height="104.42732"
+ width="262.58151"
+ height="156.82782"
x="0.77790999"
y="0.93738818" />
</g>
@@ -283,24 +283,24 @@
inkscape:label="Layer 2">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="164.56372"
y="99.307442"
id="text951"><tspan
sodipodi:role="line"
id="tspan949"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="164.56372"
y="99.307442">$\{\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="164.56372"
y="13.151893"
id="text1005"><tspan
sodipodi:role="line"
id="tspan1003"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="164.56372"
y="13.151893">$\{a,b,c\}$</tspan></text>
<g
@@ -308,35 +308,35 @@
transform="translate(51.996784,3.5774043)">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="49.27084"
y="67.008698"
id="text1009"><tspan
sodipodi:role="line"
id="tspan1007"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="49.27084"
y="67.008698">$\{a\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="112.90984"
y="67.017166"
id="text1009-3"><tspan
sodipodi:role="line"
id="tspan1007-6"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="112.90984"
y="67.017166">$\{b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="176.20593"
y="67.008698"
id="text1009-7"><tspan
sodipodi:role="line"
id="tspan1007-5"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="176.20593"
y="67.008698">$\{c\}$</tspan></text>
</g>
@@ -346,35 +346,35 @@
style="fill:#000000">
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="112.90984"
y="40.841526"
id="text1117"><tspan
sodipodi:role="line"
id="tspan1115"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="112.90984"
y="40.841526">$\{a,c\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="49.27084"
y="40.841526"
id="text1117-3"><tspan
sodipodi:role="line"
id="tspan1115-5"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="49.27084"
y="40.841526">$\{a,b\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
x="176.20593"
y="40.841526"
id="text1117-6"><tspan
sodipodi:role="line"
id="tspan1115-2"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="176.20593"
y="40.841526">$\{b,c\}$</tspan></text>
</g>
@@ -433,20 +433,14 @@
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663"
- cx="117.08417"
- cy="38.792969"
+ cx="147.35568"
+ cy="95.24971"
r="2.7302806" />
<circle
style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663-3"
- cx="123.57843"
- cy="39.100433"
- r="2.7302806" />
- <circle
- style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
- id="path3663-6"
- cx="119.58919"
- cy="67.645035"
+ cx="176.97627"
+ cy="68.155472"
r="2.7302806" />
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
@@ -468,13 +462,13 @@
r="2.7302806" />
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583;fill:#000000"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
x="6.9525447"
y="13.702217"
id="text3707"><tspan
sodipodi:role="line"
id="tspan3705"
- style="stroke-width:0.264583;fill:#000000"
+ style="fill:#000000;stroke-width:0.264583"
x="6.9525447"
y="13.702217">$write(\{a\})$:</tspan></text>
<text
@@ -490,48 +484,26 @@
y="24.042637">$\sqsupseteq \{a\} \to$ OK</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="33.02087"
id="text3750-3"><tspan
sodipodi:role="line"
id="tspan3748-2"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="33.02087">$\sqsupseteq \{a\} \to$ OK</tspan></text>
+ y="33.02087">$\not\sqsupseteq \{a\}$</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="41.972523"
id="text3750-0"><tspan
sodipodi:role="line"
id="tspan3748-6"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="41.972523">$\sqsupseteq \{a\}$</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="52.022549"
- id="text4280"><tspan
- sodipodi:role="line"
- id="tspan4278"
- style="fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="52.022549">return OK</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="102.48464"
- id="text4280-8"><tspan
- sodipodi:role="line"
- id="tspan4278-8"
- style="fill:#000000;stroke-width:0.264583"
- x="14.395845"
- y="102.48464">return OK</tspan></text>
+ y="41.972523">$\not\sqsupseteq \{a\}$</tspan></text>
<circle
style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
id="path3663-1-4"
@@ -563,6 +535,17 @@
y="65.279381">$write(\{b\})$:</tspan></text>
<text
xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403"
+ id="text3707-5-3"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="75.619804"
@@ -585,14 +568,37 @@
y="84.598038">$\sqsupseteq \{b\} \to$ OK</tspan></text>
<text
xml:space="preserve"
- style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
x="23.457415"
y="93.54969"
id="text3750-0-0"><tspan
sodipodi:role="line"
id="tspan3748-6-7"
- style="fill:#000000;stroke-width:0.264583"
+ style="fill:#999999;stroke-width:0.264583"
x="23.457415"
- y="93.54969">$\sqsupseteq \{b\} \to$ OK</tspan></text>
+ y="93.54969">$\not\sqsupseteq \{b\}$</tspan></text>
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6"
+ cx="118.63729"
+ cy="67.630196"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-0"
+ cx="67.201363"
+ cy="124.91125"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125"
+ id="text3750-9"><tspan
+ sodipodi:role="line"
+ id="tspan3748-3"
+ style="fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125">$\to \{a\}$</tspan></text>
</g>
</svg>
diff --git a/doc/talks/2023-01-18-tocatta/assets/latticeB_6.svg b/doc/talks/2023-01-18-tocatta/assets/latticeB_6.svg
new file mode 100644
index 00000000..980823fc
--- /dev/null
+++ b/doc/talks/2023-01-18-tocatta/assets/latticeB_6.svg
@@ -0,0 +1,632 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="1000"
+ height="600"
+ viewBox="0 0 264.58333 158.75"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ sodipodi:docname="latticeB_6.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="1.4734708"
+ inkscape:cx="408.21983"
+ inkscape:cy="319.65343"
+ inkscape:window-width="1920"
+ inkscape:window-height="999"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer2" />
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="Arrow2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3-2" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1-4"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8-7" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2-8"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6-4" />
+ </marker>
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ sodipodi:insensitive="true">
+ <rect
+ style="fill:#ffffff;stroke:none;stroke-width:0.999998;stop-color:#000000"
+ id="rect288"
+ width="262.58151"
+ height="156.82782"
+ x="0.77790999"
+ y="0.93738818" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Layer 2">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442"
+ id="text951"><tspan
+ sodipodi:role="line"
+ id="tspan949"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442">$\{\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893"
+ id="text1005"><tspan
+ sodipodi:role="line"
+ id="tspan1003"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893">$\{a,b,c\}$</tspan></text>
+ <g
+ id="g1175"
+ transform="translate(51.996784,3.5774043)">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698"
+ id="text1009"><tspan
+ sodipodi:role="line"
+ id="tspan1007"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698">$\{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166"
+ id="text1009-3"><tspan
+ sodipodi:role="line"
+ id="tspan1007-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166">$\{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698"
+ id="text1009-7"><tspan
+ sodipodi:role="line"
+ id="tspan1007-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698">$\{c\}$</tspan></text>
+ </g>
+ <g
+ id="g1183"
+ transform="translate(51.996784,1.0317046)"
+ style="fill:#000000">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526"
+ id="text1117"><tspan
+ sodipodi:role="line"
+ id="tspan1115"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526">$\{a,c\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526"
+ id="text1117-3"><tspan
+ sodipodi:role="line"
+ id="tspan1115-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526">$\{a,b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526"
+ id="text1117-6"><tspan
+ sodipodi:role="line"
+ id="tspan1115-2"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526">$\{b,c\}$</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2)"
+ d="M 153.33622,90.367682 118.34198,73.428915"
+ id="path1300" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9)"
+ d="M 177.46016,90.367682 212.4544,73.428915"
+ id="path1300-2" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93)"
+ d="M 153.33622,61.655656 118.34198,44.716889"
+ id="path1300-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7)"
+ d="M 177.46016,61.655656 212.4544,44.716889"
+ id="path1300-2-6" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1)"
+ d="M 118.34198,61.655656 153.33622,44.716889"
+ id="path1300-0-7" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2)"
+ d="M 212.4544,61.655656 177.46016,44.716889"
+ id="path1300-2-6-9" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1-4)"
+ d="M 118.34198,34.227412 153.33622,17.288645"
+ id="path1300-0-7-5" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2-8)"
+ d="M 212.4544,34.227412 177.46016,17.288645"
+ id="path1300-2-6-9-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75)"
+ d="m 228.52843,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-2)"
+ d="m 101.90418,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-9"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7)"
+ d="m 165.29305,89.571762 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7-1)"
+ d="m 165.29305,32.445235 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6-9"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663"
+ cx="147.35568"
+ cy="95.24971"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3"
+ cx="176.97627"
+ cy="68.155472"
+ r="2.7302806" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1"
+ cx="18.004833"
+ cy="39.402473"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0"
+ cx="18.004833"
+ cy="30.371933"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6"
+ cx="18.004833"
+ cy="21.341394"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217"
+ id="text3707"><tspan
+ sodipodi:role="line"
+ id="tspan3705"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217">$write(\{a\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637"
+ id="text3750"><tspan
+ sodipodi:role="line"
+ id="tspan3748"
+ style="fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637">$\sqsupseteq \{a\} \to$ OK</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087"
+ id="text3750-3"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087">$\not\sqsupseteq \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523"
+ id="text3750-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523">$\not\sqsupseteq \{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1-4"
+ cx="18.004833"
+ cy="90.979645"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-5"
+ cx="18.004833"
+ cy="81.949104"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-2"
+ cx="18.004833"
+ cy="72.918564"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381"
+ id="text3707-5"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381">$write(\{b\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403"
+ id="text3707-5-3"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804"
+ id="text3750-7"><tspan
+ sodipodi:role="line"
+ id="tspan3748-4"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804">$\not\sqsupseteq \{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038"
+ id="text3750-3-4"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-3"
+ style="fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038">$\sqsupseteq \{b\} \to$ OK</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969"
+ id="text3750-0-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6-7"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969">$\not\sqsupseteq \{b\}$</tspan></text>
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6"
+ cx="118.63729"
+ cy="67.630196"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-0"
+ cx="67.201363"
+ cy="124.91125"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125"
+ id="text3750-9"><tspan
+ sodipodi:role="line"
+ id="tspan3748-3"
+ style="fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125">$\to \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="62.764446"
+ y="146.3129"
+ id="text4280-6"><tspan
+ sodipodi:role="line"
+ style="fill:#000000;stroke-width:0.264583"
+ x="62.764446"
+ y="146.3129"
+ id="tspan2630">return $\{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-7"
+ cx="67.201363"
+ cy="133.94179"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="136.59073"
+ id="text3750-3-6"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-0"
+ style="fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="136.59073">$\to \{\}$</tspan></text>
+ </g>
+</svg>
diff --git a/doc/talks/2023-01-18-tocatta/assets/latticeB_7.svg b/doc/talks/2023-01-18-tocatta/assets/latticeB_7.svg
new file mode 100644
index 00000000..154c0b7d
--- /dev/null
+++ b/doc/talks/2023-01-18-tocatta/assets/latticeB_7.svg
@@ -0,0 +1,654 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="1000"
+ height="600"
+ viewBox="0 0 264.58333 158.75"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ sodipodi:docname="latticeB_7.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="1.4734708"
+ inkscape:cx="553.45515"
+ inkscape:cy="346.80022"
+ inkscape:window-width="1920"
+ inkscape:window-height="999"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer2" />
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="Arrow2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3-2" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1-4"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8-7" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2-8"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6-4" />
+ </marker>
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ sodipodi:insensitive="true">
+ <rect
+ style="fill:#ffffff;stroke:none;stroke-width:0.999998;stop-color:#000000"
+ id="rect288"
+ width="262.58151"
+ height="156.82782"
+ x="0.77790999"
+ y="0.93738818" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Layer 2">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442"
+ id="text951"><tspan
+ sodipodi:role="line"
+ id="tspan949"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442">$\{\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893"
+ id="text1005"><tspan
+ sodipodi:role="line"
+ id="tspan1003"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893">$\{a,b,c\}$</tspan></text>
+ <g
+ id="g1175"
+ transform="translate(51.996784,3.5774043)">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698"
+ id="text1009"><tspan
+ sodipodi:role="line"
+ id="tspan1007"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698">$\{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166"
+ id="text1009-3"><tspan
+ sodipodi:role="line"
+ id="tspan1007-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166">$\{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698"
+ id="text1009-7"><tspan
+ sodipodi:role="line"
+ id="tspan1007-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698">$\{c\}$</tspan></text>
+ </g>
+ <g
+ id="g1183"
+ transform="translate(51.996784,1.0317046)"
+ style="fill:#000000">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526"
+ id="text1117"><tspan
+ sodipodi:role="line"
+ id="tspan1115"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526">$\{a,c\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526"
+ id="text1117-3"><tspan
+ sodipodi:role="line"
+ id="tspan1115-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526">$\{a,b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526"
+ id="text1117-6"><tspan
+ sodipodi:role="line"
+ id="tspan1115-2"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526">$\{b,c\}$</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2)"
+ d="M 153.33622,90.367682 118.34198,73.428915"
+ id="path1300" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9)"
+ d="M 177.46016,90.367682 212.4544,73.428915"
+ id="path1300-2" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93)"
+ d="M 153.33622,61.655656 118.34198,44.716889"
+ id="path1300-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7)"
+ d="M 177.46016,61.655656 212.4544,44.716889"
+ id="path1300-2-6" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1)"
+ d="M 118.34198,61.655656 153.33622,44.716889"
+ id="path1300-0-7" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2)"
+ d="M 212.4544,61.655656 177.46016,44.716889"
+ id="path1300-2-6-9" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1-4)"
+ d="M 118.34198,34.227412 153.33622,17.288645"
+ id="path1300-0-7-5" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2-8)"
+ d="M 212.4544,34.227412 177.46016,17.288645"
+ id="path1300-2-6-9-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75)"
+ d="m 228.52843,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-2)"
+ d="m 101.90418,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-9"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7)"
+ d="m 165.29305,89.571762 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7-1)"
+ d="m 165.29305,32.445235 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6-9"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663"
+ cx="147.35568"
+ cy="95.24971"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3"
+ cx="176.97627"
+ cy="68.155472"
+ r="2.7302806" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1"
+ cx="18.004833"
+ cy="39.402473"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0"
+ cx="18.004833"
+ cy="30.371933"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6"
+ cx="18.004833"
+ cy="21.341394"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217"
+ id="text3707"><tspan
+ sodipodi:role="line"
+ id="tspan3705"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217">$write(\{a\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637"
+ id="text3750"><tspan
+ sodipodi:role="line"
+ id="tspan3748"
+ style="fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637">$\sqsupseteq \{a\} \to$ OK</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087"
+ id="text3750-3"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087">$\not\sqsupseteq \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523"
+ id="text3750-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523">$\not\sqsupseteq \{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1-4"
+ cx="18.004833"
+ cy="90.979645"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-5"
+ cx="18.004833"
+ cy="81.949104"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-2"
+ cx="18.004833"
+ cy="72.918564"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381"
+ id="text3707-5"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381">$write(\{b\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403"
+ id="text3707-5-3"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804"
+ id="text3750-7"><tspan
+ sodipodi:role="line"
+ id="tspan3748-4"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804">$\not\sqsupseteq \{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038"
+ id="text3750-3-4"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-3"
+ style="fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038">$\sqsupseteq \{b\} \to$ OK</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969"
+ id="text3750-0-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6-7"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969">$\not\sqsupseteq \{b\}$</tspan></text>
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6"
+ cx="118.63729"
+ cy="67.630196"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-0"
+ cx="67.201363"
+ cy="124.91125"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125"
+ id="text3750-9"><tspan
+ sodipodi:role="line"
+ id="tspan3748-3"
+ style="fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125">$\to \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="62.764446"
+ y="146.3129"
+ id="text4280-6"><tspan
+ sodipodi:role="line"
+ style="fill:#000000;stroke-width:0.264583"
+ x="62.764446"
+ y="146.3129"
+ id="tspan2630">return $\{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-7"
+ cx="67.201363"
+ cy="133.94179"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="136.59073"
+ id="text3750-3-6"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-0"
+ style="fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="136.59073">$\to \{\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="162.7999"
+ y="118.94403"
+ id="text3707-5-3-7"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4-6-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="162.7999"
+ y="118.94403">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
+ x="134.97845"
+ y="132.58472"
+ id="text3899"><tspan
+ sodipodi:role="line"
+ id="tspan3897"
+ style="stroke-width:0.264583"
+ x="134.97845"
+ y="132.58472">;</tspan></text>
+ </g>
+</svg>
diff --git a/doc/talks/2023-01-18-tocatta/assets/latticeB_8.svg b/doc/talks/2023-01-18-tocatta/assets/latticeB_8.svg
new file mode 100644
index 00000000..21766415
--- /dev/null
+++ b/doc/talks/2023-01-18-tocatta/assets/latticeB_8.svg
@@ -0,0 +1,671 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="1000"
+ height="600"
+ viewBox="0 0 264.58333 158.75"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ sodipodi:docname="latticeB_8.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="1.4734708"
+ inkscape:cx="448.94001"
+ inkscape:cy="322.36811"
+ inkscape:window-width="1920"
+ inkscape:window-height="999"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer2" />
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="Arrow2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3-2" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1-4"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8-7" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2-8"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6-4" />
+ </marker>
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ sodipodi:insensitive="true">
+ <rect
+ style="fill:#ffffff;stroke:none;stroke-width:0.999998;stop-color:#000000"
+ id="rect288"
+ width="262.58151"
+ height="156.82782"
+ x="0.77790999"
+ y="0.93738818" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Layer 2">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442"
+ id="text951"><tspan
+ sodipodi:role="line"
+ id="tspan949"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442">$\{\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893"
+ id="text1005"><tspan
+ sodipodi:role="line"
+ id="tspan1003"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893">$\{a,b,c\}$</tspan></text>
+ <g
+ id="g1175"
+ transform="translate(51.996784,3.5774043)">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698"
+ id="text1009"><tspan
+ sodipodi:role="line"
+ id="tspan1007"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698">$\{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166"
+ id="text1009-3"><tspan
+ sodipodi:role="line"
+ id="tspan1007-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166">$\{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698"
+ id="text1009-7"><tspan
+ sodipodi:role="line"
+ id="tspan1007-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698">$\{c\}$</tspan></text>
+ </g>
+ <g
+ id="g1183"
+ transform="translate(51.996784,1.0317046)"
+ style="fill:#000000">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526"
+ id="text1117"><tspan
+ sodipodi:role="line"
+ id="tspan1115"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526">$\{a,c\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526"
+ id="text1117-3"><tspan
+ sodipodi:role="line"
+ id="tspan1115-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526">$\{a,b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526"
+ id="text1117-6"><tspan
+ sodipodi:role="line"
+ id="tspan1115-2"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526">$\{b,c\}$</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2)"
+ d="M 153.33622,90.367682 118.34198,73.428915"
+ id="path1300" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9)"
+ d="M 177.46016,90.367682 212.4544,73.428915"
+ id="path1300-2" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93)"
+ d="M 153.33622,61.655656 118.34198,44.716889"
+ id="path1300-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7)"
+ d="M 177.46016,61.655656 212.4544,44.716889"
+ id="path1300-2-6" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1)"
+ d="M 118.34198,61.655656 153.33622,44.716889"
+ id="path1300-0-7" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2)"
+ d="M 212.4544,61.655656 177.46016,44.716889"
+ id="path1300-2-6-9" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1-4)"
+ d="M 118.34198,34.227412 153.33622,17.288645"
+ id="path1300-0-7-5" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2-8)"
+ d="M 212.4544,34.227412 177.46016,17.288645"
+ id="path1300-2-6-9-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75)"
+ d="m 228.52843,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-2)"
+ d="m 101.90418,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-9"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7)"
+ d="m 165.29305,89.571762 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7-1)"
+ d="m 165.29305,32.445235 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6-9"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663"
+ cx="147.35568"
+ cy="95.24971"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3"
+ cx="176.97627"
+ cy="68.155472"
+ r="2.7302806" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1"
+ cx="18.004833"
+ cy="39.402473"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0"
+ cx="18.004833"
+ cy="30.371933"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6"
+ cx="18.004833"
+ cy="21.341394"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217"
+ id="text3707"><tspan
+ sodipodi:role="line"
+ id="tspan3705"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217">$write(\{a\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637"
+ id="text3750"><tspan
+ sodipodi:role="line"
+ id="tspan3748"
+ style="fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637">$\sqsupseteq \{a\} \to$ OK</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087"
+ id="text3750-3"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087">$\not\sqsupseteq \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523"
+ id="text3750-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523">$\not\sqsupseteq \{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1-4"
+ cx="18.004833"
+ cy="90.979645"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-5"
+ cx="18.004833"
+ cy="81.949104"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-2"
+ cx="18.004833"
+ cy="72.918564"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381"
+ id="text3707-5"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381">$write(\{b\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403"
+ id="text3707-5-3"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804"
+ id="text3750-7"><tspan
+ sodipodi:role="line"
+ id="tspan3748-4"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804">$\not\sqsupseteq \{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038"
+ id="text3750-3-4"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-3"
+ style="fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038">$\sqsupseteq \{b\} \to$ OK</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969"
+ id="text3750-0-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6-7"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969">$\not\sqsupseteq \{b\}$</tspan></text>
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6"
+ cx="118.63729"
+ cy="67.630196"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-0"
+ cx="67.201363"
+ cy="124.91125"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125"
+ id="text3750-9"><tspan
+ sodipodi:role="line"
+ id="tspan3748-3"
+ style="fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125">$\to \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="62.764446"
+ y="146.3129"
+ id="text4280-6"><tspan
+ sodipodi:role="line"
+ style="fill:#000000;stroke-width:0.264583"
+ x="62.764446"
+ y="146.3129"
+ id="tspan2630">return $\{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-7"
+ cx="67.201363"
+ cy="133.94179"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="136.59073"
+ id="text3750-3-6"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-0"
+ style="fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="136.59073">$\to \{\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-0-6"
+ cx="174.36296"
+ cy="124.91125"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="179.81555"
+ y="127.6125"
+ id="text3750-9-1"><tspan
+ sodipodi:role="line"
+ id="tspan3748-3-8"
+ style="fill:#000000;stroke-width:0.264583"
+ x="179.81555"
+ y="127.6125">$\to \{\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="162.7999"
+ y="118.94403"
+ id="text3707-5-3-7"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4-6-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="162.7999"
+ y="118.94403">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
+ x="134.97845"
+ y="132.58472"
+ id="text3899"><tspan
+ sodipodi:role="line"
+ id="tspan3897"
+ style="stroke-width:0.264583"
+ x="134.97845"
+ y="132.58472">;</tspan></text>
+ </g>
+</svg>
diff --git a/doc/talks/2023-01-18-tocatta/assets/latticeB_9.svg b/doc/talks/2023-01-18-tocatta/assets/latticeB_9.svg
new file mode 100644
index 00000000..b60f8afe
--- /dev/null
+++ b/doc/talks/2023-01-18-tocatta/assets/latticeB_9.svg
@@ -0,0 +1,699 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="1000"
+ height="600"
+ viewBox="0 0 264.58333 158.75"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ sodipodi:docname="latticeB_9.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="1.0419012"
+ inkscape:cx="664.65036"
+ inkscape:cy="366.63745"
+ inkscape:window-width="1920"
+ inkscape:window-height="999"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer2" />
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="Arrow2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-2"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-8" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-75-7-1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-9-3-2" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-93-1-4"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-6-8-7" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2-9-7-2-8"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow2"
+ markerWidth="7.6999998"
+ markerHeight="5.5999999"
+ viewBox="0 0 7.7 5.6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.7)"
+ d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
+ style="fill:context-stroke;fill-rule:evenodd;stroke:none"
+ id="arrow2L-1-0-6-4" />
+ </marker>
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ sodipodi:insensitive="true">
+ <rect
+ style="fill:#ffffff;stroke:none;stroke-width:0.999998;stop-color:#000000"
+ id="rect288"
+ width="262.58151"
+ height="156.82782"
+ x="0.77790999"
+ y="0.93738818" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Layer 2">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442"
+ id="text951"><tspan
+ sodipodi:role="line"
+ id="tspan949"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="99.307442">$\{\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893"
+ id="text1005"><tspan
+ sodipodi:role="line"
+ id="tspan1003"
+ style="fill:#000000;stroke-width:0.264583"
+ x="164.56372"
+ y="13.151893">$\{a,b,c\}$</tspan></text>
+ <g
+ id="g1175"
+ transform="translate(51.996784,3.5774043)">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698"
+ id="text1009"><tspan
+ sodipodi:role="line"
+ id="tspan1007"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="67.008698">$\{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166"
+ id="text1009-3"><tspan
+ sodipodi:role="line"
+ id="tspan1007-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="67.017166">$\{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698"
+ id="text1009-7"><tspan
+ sodipodi:role="line"
+ id="tspan1007-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="67.008698">$\{c\}$</tspan></text>
+ </g>
+ <g
+ id="g1183"
+ transform="translate(51.996784,1.0317046)"
+ style="fill:#000000">
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526"
+ id="text1117"><tspan
+ sodipodi:role="line"
+ id="tspan1115"
+ style="fill:#000000;stroke-width:0.264583"
+ x="112.90984"
+ y="40.841526">$\{a,c\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526"
+ id="text1117-3"><tspan
+ sodipodi:role="line"
+ id="tspan1115-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="49.27084"
+ y="40.841526">$\{a,b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526"
+ id="text1117-6"><tspan
+ sodipodi:role="line"
+ id="tspan1115-2"
+ style="fill:#000000;stroke-width:0.264583"
+ x="176.20593"
+ y="40.841526">$\{b,c\}$</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2)"
+ d="M 153.33622,90.367682 118.34198,73.428915"
+ id="path1300" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9)"
+ d="M 177.46016,90.367682 212.4544,73.428915"
+ id="path1300-2" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93)"
+ d="M 153.33622,61.655656 118.34198,44.716889"
+ id="path1300-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7)"
+ d="M 177.46016,61.655656 212.4544,44.716889"
+ id="path1300-2-6" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1)"
+ d="M 118.34198,61.655656 153.33622,44.716889"
+ id="path1300-0-7" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2)"
+ d="M 212.4544,61.655656 177.46016,44.716889"
+ id="path1300-2-6-9" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-93-1-4)"
+ d="M 118.34198,34.227412 153.33622,17.288645"
+ id="path1300-0-7-5" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-7-2-8)"
+ d="M 212.4544,34.227412 177.46016,17.288645"
+ id="path1300-2-6-9-0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75)"
+ d="m 228.52843,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-2)"
+ d="m 101.90418,61.091809 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-9"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7)"
+ d="m 165.29305,89.571762 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2-9-75-7-1)"
+ d="m 165.29305,32.445235 0.33313,-12.554874 m -0.33313,12.554874 0.33313,-12.554874"
+ id="path1300-2-2-6-9"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663"
+ cx="147.35568"
+ cy="95.24971"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3"
+ cx="176.97627"
+ cy="68.155472"
+ r="2.7302806" />
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1"
+ cx="18.004833"
+ cy="39.402473"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0"
+ cx="18.004833"
+ cy="30.371933"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6"
+ cx="18.004833"
+ cy="21.341394"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217"
+ id="text3707"><tspan
+ sodipodi:role="line"
+ id="tspan3705"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="13.702217">$write(\{a\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637"
+ id="text3750"><tspan
+ sodipodi:role="line"
+ id="tspan3748"
+ style="fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="24.042637">$\sqsupseteq \{a\} \to$ OK</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087"
+ id="text3750-3"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="33.02087">$\not\sqsupseteq \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523"
+ id="text3750-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="41.972523">$\not\sqsupseteq \{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-1-4"
+ cx="18.004833"
+ cy="90.979645"
+ r="2.7302806" />
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-5"
+ cx="18.004833"
+ cy="81.949104"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-2"
+ cx="18.004833"
+ cy="72.918564"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381"
+ id="text3707-5"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4"
+ style="fill:#000000;stroke-width:0.264583"
+ x="6.9525447"
+ y="65.279381">$write(\{b\})$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403"
+ id="text3707-5-3"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4-6"
+ style="fill:#000000;stroke-width:0.264583"
+ x="59.340172"
+ y="118.94403">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804"
+ id="text3750-7"><tspan
+ sodipodi:role="line"
+ id="tspan3748-4"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="75.619804">$\not\sqsupseteq \{b\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038"
+ id="text3750-3-4"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-3"
+ style="fill:#000000;stroke-width:0.264583"
+ x="23.457415"
+ y="84.598038">$\sqsupseteq \{b\} \to$ OK</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969"
+ id="text3750-0-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-6-7"
+ style="fill:#999999;stroke-width:0.264583"
+ x="23.457415"
+ y="93.54969">$\not\sqsupseteq \{b\}$</tspan></text>
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6"
+ cx="118.63729"
+ cy="67.630196"
+ r="2.7302806" />
+ <circle
+ style="fill:#800080;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-0"
+ cx="67.201363"
+ cy="124.91125"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125"
+ id="text3750-9"><tspan
+ sodipodi:role="line"
+ id="tspan3748-3"
+ style="fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="127.6125">$\to \{a\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="62.764446"
+ y="146.3129"
+ id="text4280-6"><tspan
+ sodipodi:role="line"
+ style="fill:#000000;stroke-width:0.264583"
+ x="62.764446"
+ y="146.3129"
+ id="tspan2630">return $\{a\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-7"
+ cx="67.201363"
+ cy="133.94179"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="136.59073"
+ id="text3750-3-6"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-0"
+ style="fill:#000000;stroke-width:0.264583"
+ x="72.653946"
+ y="136.59073">$\to \{\}$</tspan></text>
+ <circle
+ style="fill:#ff0000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-6-6-0-6"
+ cx="174.36296"
+ cy="124.91125"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="179.81555"
+ y="127.6125"
+ id="text3750-9-1"><tspan
+ sodipodi:role="line"
+ id="tspan3748-3-8"
+ style="fill:#000000;stroke-width:0.264583"
+ x="179.81555"
+ y="127.6125">$\to \{\}$</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="162.7999"
+ y="118.94403"
+ id="text3707-5-3-7"><tspan
+ sodipodi:role="line"
+ id="tspan3705-4-6-5"
+ style="fill:#000000;stroke-width:0.264583"
+ x="162.7999"
+ y="118.94403">$read()$:</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
+ x="134.97845"
+ y="132.58472"
+ id="text3899"><tspan
+ sodipodi:role="line"
+ id="tspan3897"
+ style="stroke-width:0.264583"
+ x="134.97845"
+ y="132.58472">;</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="169.92604"
+ y="146.3129"
+ id="text4280-6-7"><tspan
+ sodipodi:role="line"
+ style="fill:#000000;stroke-width:0.264583"
+ x="169.92604"
+ y="146.3129"
+ id="tspan2630-9">return $\{b\}$</tspan></text>
+ <circle
+ style="fill:#008000;stroke:none;stroke-width:0.499999;stroke-dasharray:none;stop-color:#000000"
+ id="path3663-3-0-7-2"
+ cx="174.36296"
+ cy="133.94179"
+ r="2.7302806" />
+ <text
+ xml:space="preserve"
+ style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;fill:#000000;stroke-width:0.264583"
+ x="179.81555"
+ y="136.59073"
+ id="text3750-3-6-0"><tspan
+ sodipodi:role="line"
+ id="tspan3748-2-0-2"
+ style="fill:#000000;stroke-width:0.264583"
+ x="179.81555"
+ y="136.59073">$\to \{b\}$</tspan></text>
+ </g>
+</svg>
diff --git a/doc/talks/2023-01-18-tocatta/talk.pdf b/doc/talks/2023-01-18-tocatta/talk.pdf
index e4acf75e..6a70fcd7 100644
--- a/doc/talks/2023-01-18-tocatta/talk.pdf
+++ b/doc/talks/2023-01-18-tocatta/talk.pdf
Binary files differ
diff --git a/doc/talks/2023-01-18-tocatta/talk.tex b/doc/talks/2023-01-18-tocatta/talk.tex
index db6d26ef..4c3e4eeb 100644
--- a/doc/talks/2023-01-18-tocatta/talk.tex
+++ b/doc/talks/2023-01-18-tocatta/talk.tex
@@ -49,7 +49,7 @@
\title{Garage}
\subtitle{a lightweight and robust geo-distributed data storage system}
-\author{Deuxfleurs Association}
+\author{Alex Auvolat, Deuxfleurs Association}
\date{Inria, 2023-01-18}
\begin{document}
@@ -59,7 +59,7 @@
\includegraphics[width=.3\linewidth]{../../sticker/Garage.pdf}
\vspace{1em}
- {\large\bf Deuxfleurs Association}
+ {\large\bf Alex Auvolat, Deuxfleurs Association}
\vspace{1em}
\url{https://garagehq.deuxfleurs.fr/}
@@ -68,7 +68,7 @@
\end{frame}
\begin{frame}
- \frametitle{Who we are}
+ \frametitle{Who I am}
\begin{columns}[t]
\begin{column}{.2\textwidth}
\centering
@@ -82,21 +82,6 @@
~
\end{column}
\end{columns}
- \vspace{1em}
-
- \begin{columns}[t]
- \begin{column}{.2\textwidth}
- ~
- \end{column}
- \begin{column}{.6\textwidth}
- \textbf{Quentin Dufour}\\
- PhD; co-founder of Deuxfleurs
- \end{column}
- \begin{column}{.2\textwidth}
- \centering
- \adjincludegraphics[width=.5\linewidth, valign=t]{assets/quentin.jpg}
- \end{column}
- \end{columns}
\vspace{2em}
\begin{columns}[t]
@@ -546,7 +531,7 @@
\vspace{1em}
- \textbf{CRDTs only}\\(conflict-free replicated data types)
+ \textbf{Limited objects such as CRDTs}\\(conflict-free replicated data types)
\vspace{1em}
Part of the complexity is \textbf{reported to the consumer of the API}\\~
@@ -648,6 +633,13 @@
\end{frame}
\begin{frame}
+ \frametitle{Performance gains in practice}
+ \begin{center}
+ \includegraphics[width=.8\linewidth]{assets/endpoint-latency-dc.png}
+ \end{center}
+\end{frame}
+
+\begin{frame}
\frametitle{What can we implement without consensus?}
\begin{itemize}
\item Any \textbf{conflict-free replicated data type} (CRDT)
@@ -664,7 +656,7 @@
\end{frame}
\begin{frame}
- \frametitle{Understanding CRDTs and quorums}
+ \frametitle{CRDTs and quorums: read-after-write consistency}
\begin{figure}
\centering
\def\svgwidth{.8\textwidth}
@@ -676,15 +668,11 @@
\only<6>{\import{assets/}{lattice6.pdf_tex}}%
\only<7>{\import{assets/}{lattice7.pdf_tex}}%
\only<8>{\import{assets/}{lattice8.pdf_tex}}%
- \only<9>{\import{assets/}{lattice9.pdf_tex}}%
- \only<10>{\import{assets/}{latticeA.pdf_tex}}%
- \only<11>{\import{assets/}{latticeB.pdf_tex}}%
- \only<12>{\import{assets/}{latticeC.pdf_tex}}%
\end{figure}
\end{frame}
\begin{frame}
- \frametitle{Read-after-write consistency:}
+ \frametitle{CRDTs and quorums: read-after-write consistency}
\textbf{Property:} If node $A$ did an operation $write(x)$ and received an OK response,\\
\hspace{2cm} and node $B$ starts an operation $read()$ after $A$ received OK,\\
\hspace{2cm} then $B$ will read a value $x' \sqsupseteq x$.
@@ -718,7 +706,25 @@
\end{frame}
\begin{frame}
- \frametitle{Monotonical read consistency:}
+ \frametitle{CRDTs and quorums: monotonic-reads consistency}
+ \begin{figure}
+ \centering
+ \def\svgwidth{.8\textwidth}
+ \only<1>{\import{assets/}{latticeB_1.pdf_tex}}%
+ \only<2>{\import{assets/}{latticeB_2.pdf_tex}}%
+ \only<3>{\import{assets/}{latticeB_3.pdf_tex}}%
+ \only<4>{\import{assets/}{latticeB_4.pdf_tex}}%
+ \only<5>{\import{assets/}{latticeB_5.pdf_tex}}%
+ \only<6>{\import{assets/}{latticeB_6.pdf_tex}}%
+ \only<7>{\import{assets/}{latticeB_7.pdf_tex}}%
+ \only<8>{\import{assets/}{latticeB_8.pdf_tex}}%
+ \only<9>{\import{assets/}{latticeB_9.pdf_tex}}%
+ \only<10>{\import{assets/}{latticeB_10.pdf_tex}}%
+ \end{figure}
+\end{frame}
+
+\begin{frame}
+ \frametitle{CRDTs and quorums: monotonic-reads consistency}
\textbf{Property:} If node $A$ did an operation $read()$ and received $x$ as a response,\\
\hspace{2cm} and node $B$ starts an operation $read()$ after $A$ received $x$,\\
\hspace{2cm} then $B$ will read a value $x' \sqsupseteq x$.
@@ -735,14 +741,8 @@
\end{enumerate}
\vspace{1em}
- This makes reads slower in some cases, and is \textbf{not implemented in Garage}.
-\end{frame}
-\begin{frame}
- \frametitle{Performance gains in practice}
- \begin{center}
- \includegraphics[width=.8\linewidth]{assets/endpoint-latency-dc.png}
- \end{center}
+ This makes reads slower in some cases, and is \textbf{not implemented in Garage}.
\end{frame}
\begin{frame}