add(named): the paper measure with machine checked counterexamples to its invariants (M5 metatheory)

This commit is contained in:
milner committed 2026-09-23 01:30:00 +02:00
1 parent be85c51957
commit 4799079d0c
34 files changed
+4061 -2568

No files matched your search

+38 -39
View File
@@ -4,97 +4,96 @@
<!-- Generated by graphviz version 2.42.4 (0)
-->
<!-- Title: lambda_sub_cfg Pages: 1 -->
<svg width="322pt" height="349pt"
viewBox="0.00 0.00 321.65 349.12" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 345.12)">
<svg width="338pt" height="353pt"
viewBox="0.00 0.00 337.59 352.65" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 348.65)">
<title>lambda_sub_cfg</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-345.12 317.65,-345.12 317.65,4 -4,4"/>
<!-- start -->
<g id="node1" class="node">
<title>start</title>
<ellipse fill="#f3f3f3" stroke="#333333" cx="152.56" cy="-323.12" rx="27" ry="18"/>
<text text-anchor="middle" x="152.56" y="-320.62" font-family="Inter" font-size="10.00">term</text>
<ellipse fill="transparent" stroke="#a9b492" cx="161.33" cy="-326.65" rx="27" ry="18"/>
<text text-anchor="middle" x="161.33" y="-324.15" font-family="Inter" font-size="10.00" fill="#c9d1bb">term</text>
</g>
<!-- beta -->
<g id="node2" class="node">
<title>beta</title>
<path fill="#f5f5f5" stroke="#333333" d="M104.56,-259.12C104.56,-259.12 44.56,-259.12 44.56,-259.12 38.56,-259.12 32.56,-253.12 32.56,-247.12 32.56,-247.12 32.56,-235.12 32.56,-235.12 32.56,-229.12 38.56,-223.12 44.56,-223.12 44.56,-223.12 104.56,-223.12 104.56,-223.12 110.56,-223.12 116.56,-229.12 116.56,-235.12 116.56,-235.12 116.56,-247.12 116.56,-247.12 116.56,-253.12 110.56,-259.12 104.56,-259.12"/>
<text text-anchor="middle" x="74.56" y="-238.62" font-family="Inter" font-size="10.00" fill="#333333">(lambda x. t) u</text>
<path fill="transparent" stroke="#a9b492" d="M112.83,-262.65C112.83,-262.65 47.83,-262.65 47.83,-262.65 41.83,-262.65 35.83,-256.65 35.83,-250.65 35.83,-250.65 35.83,-238.65 35.83,-238.65 35.83,-232.65 41.83,-226.65 47.83,-226.65 47.83,-226.65 112.83,-226.65 112.83,-226.65 118.83,-226.65 124.83,-232.65 124.83,-238.65 124.83,-238.65 124.83,-250.65 124.83,-250.65 124.83,-256.65 118.83,-262.65 112.83,-262.65"/>
<text text-anchor="middle" x="80.33" y="-242.15" font-family="Inter" font-size="10.00" fill="#c9d1bb">(lambda x. t) u</text>
</g>
<!-- start&#45;&gt;beta -->
<g id="edge1" class="edge">
<title>start&#45;&gt;beta</title>
<path fill="none" stroke="#333333" d="M129.2,-313.7C116.24,-307.98 100.74,-299.23 90.56,-287.12 86.22,-281.96 83.02,-275.53 80.68,-269.16"/>
<polygon fill="#333333" stroke="#333333" points="83.96,-267.92 77.66,-259.4 77.27,-269.99 83.96,-267.92"/>
<text text-anchor="middle" x="114.56" y="-279.92" font-family="Inter" font-size="9.00">App(Lam,_)</text>
<path fill="none" stroke="#8f9780" d="M137.21,-318.33C122.89,-312.84 105.43,-303.95 94.33,-290.65 90.06,-285.54 87.09,-279.13 85.03,-272.77"/>
<polygon fill="#8f9780" stroke="#8f9780" points="88.39,-271.78 82.47,-263 81.62,-273.56 88.39,-271.78"/>
<text text-anchor="middle" x="120.83" y="-283.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">App(Lam,_)</text>
</g>
<!-- es -->
<g id="node3" class="node">
<title>es</title>
<path fill="#f5f5f5" stroke="#333333" d="M89.56,-177.12C89.56,-177.12 59.56,-177.12 59.56,-177.12 53.56,-177.12 47.56,-171.12 47.56,-165.12 47.56,-165.12 47.56,-153.12 47.56,-153.12 47.56,-147.12 53.56,-141.12 59.56,-141.12 59.56,-141.12 89.56,-141.12 89.56,-141.12 95.56,-141.12 101.56,-147.12 101.56,-153.12 101.56,-153.12 101.56,-165.12 101.56,-165.12 101.56,-171.12 95.56,-177.12 89.56,-177.12"/>
<text text-anchor="middle" x="74.56" y="-156.62" font-family="Inter" font-size="10.00" fill="#333333">t[x/u]</text>
<path fill="transparent" stroke="#a9b492" d="M95.33,-180.65C95.33,-180.65 65.33,-180.65 65.33,-180.65 59.33,-180.65 53.33,-174.65 53.33,-168.65 53.33,-168.65 53.33,-156.65 53.33,-156.65 53.33,-150.65 59.33,-144.65 65.33,-144.65 65.33,-144.65 95.33,-144.65 95.33,-144.65 101.33,-144.65 107.33,-150.65 107.33,-156.65 107.33,-156.65 107.33,-168.65 107.33,-168.65 107.33,-174.65 101.33,-180.65 95.33,-180.65"/>
<text text-anchor="middle" x="80.33" y="-160.15" font-family="Inter" font-size="10.00" fill="#c9d1bb">t[x/u]</text>
</g>
<!-- start&#45;&gt;es -->
<g id="edge2" class="edge">
<title>start&#45;&gt;es</title>
<path fill="none" stroke="#333333" d="M150.08,-304.88C146.66,-284.48 139.29,-249.92 125.56,-223.12 118.49,-209.31 108.05,-195.72 98.46,-184.71"/>
<polygon fill="#333333" stroke="#333333" points="100.97,-182.27 91.68,-177.18 95.77,-186.96 100.97,-182.27"/>
<text text-anchor="middle" x="149.56" y="-238.92" font-family="Inter" font-size="9.00">ESub</text>
<path fill="none" stroke="#8f9780" d="M158.79,-308.73C155.23,-288.34 147.55,-253.48 133.33,-226.65 126,-212.83 115.25,-199.32 105.35,-188.37"/>
<polygon fill="#8f9780" stroke="#8f9780" points="107.73,-185.8 98.34,-180.88 102.62,-190.58 107.73,-185.8"/>
<text text-anchor="middle" x="159.83" y="-242.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">ESub</text>
</g>
<!-- pure -->
<g id="node4" class="node">
<title>pure</title>
<ellipse fill="#f3f3f3" stroke="#333333" cx="190.56" cy="-47.56" rx="37.17" ry="18"/>
<text text-anchor="middle" x="190.56" y="-45.06" font-family="Inter" font-size="10.00">pure term</text>
<ellipse fill="transparent" stroke="#a9b492" cx="199.33" cy="-49.33" rx="38.03" ry="18"/>
<text text-anchor="middle" x="199.33" y="-46.83" font-family="Inter" font-size="10.00" fill="#c9d1bb">pure term</text>
</g>
<!-- start&#45;&gt;pure -->
<g id="edge3" class="edge">
<title>start&#45;&gt;pure</title>
<path fill="none" stroke="#333333" d="M161.51,-305.79C175.29,-279.58 201.13,-226.11 210.56,-177.12 217.31,-142.07 208.11,-101.31 200.07,-75.24"/>
<polygon fill="#333333" stroke="#333333" points="203.39,-74.11 196.98,-65.68 196.73,-76.27 203.39,-74.11"/>
<text text-anchor="middle" x="238.06" y="-197.92" font-family="Inter" font-size="9.00">BVar/FVar/Lam</text>
<path fill="none" stroke="#8f9780" d="M170.73,-309.39C185.22,-283.27 212.39,-229.91 222.33,-180.65 229.55,-144.87 218.94,-103.29 209.86,-76.9"/>
<polygon fill="#8f9780" stroke="#8f9780" points="213.06,-75.46 206.37,-67.25 206.48,-77.84 213.06,-75.46"/>
<text text-anchor="middle" x="250.33" y="-201.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">BVar/FVar/Lam</text>
</g>
<!-- beta&#45;&gt;es -->
<g id="edge4" class="edge">
<title>beta&#45;&gt;es</title>
<path fill="none" stroke="#990000" d="M74.56,-222.76C74.56,-212.42 74.56,-199.06 74.56,-187.34"/>
<polygon fill="#990000" stroke="#990000" points="78.06,-187.17 74.56,-177.17 71.06,-187.17 78.06,-187.17"/>
<text text-anchor="middle" x="78.06" y="-197.92" font-family="Inter" font-size="9.00">B</text>
<path fill="none" stroke="#dfe7cc" d="M80.33,-226.3C80.33,-215.95 80.33,-202.6 80.33,-190.87"/>
<polygon fill="#dfe7cc" stroke="#dfe7cc" points="83.83,-190.7 80.33,-180.7 76.83,-190.7 83.83,-190.7"/>
<text text-anchor="middle" x="83.83" y="-201.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">B</text>
</g>
<!-- es&#45;&gt;es -->
<g id="edge5" class="edge">
<title>es&#45;&gt;es</title>
<path fill="none" stroke="#674ea7" d="M101.8,-166.61C111.58,-166.78 119.56,-164.28 119.56,-159.12 119.56,-155.98 116.6,-153.83 112.07,-152.66"/>
<polygon fill="#674ea7" stroke="#674ea7" points="112.1,-149.14 101.8,-151.63 111.4,-156.11 112.1,-149.14"/>
<text text-anchor="middle" x="160.56" y="-156.92" font-family="Inter" font-size="9.00">R (one occurrence)</text>
<path fill="none" stroke="#a9b492" d="M107.57,-170.15C117.35,-170.31 125.33,-167.81 125.33,-162.65 125.33,-159.51 122.37,-157.36 117.84,-156.19"/>
<polygon fill="#a9b492" stroke="#a9b492" points="117.87,-152.68 107.57,-155.16 117.17,-159.64 117.87,-152.68"/>
<text text-anchor="middle" x="169.33" y="-160.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">R (one occurrence)</text>
</g>
<!-- es&#45;&gt;pure -->
<g id="edge6" class="edge">
<title>es&#45;&gt;pure</title>
<path fill="none" stroke="#38761d" d="M101.76,-143.62C111.36,-137.88 121.9,-130.81 130.56,-123.12 147.08,-108.46 162.62,-88.93 173.74,-73.53"/>
<polygon fill="#38761d" stroke="#38761d" points="176.85,-75.2 179.76,-65.01 171.13,-71.16 176.85,-75.2"/>
<text text-anchor="middle" x="170.56" y="-115.92" font-family="Inter" font-size="9.00">Gc (x not in fv)</text>
<path fill="none" stroke="#8fb071" d="M107.51,-146.64C116.77,-140.95 126.9,-134.04 135.33,-126.65 152.88,-111.26 169.72,-90.88 181.71,-75.05"/>
<polygon fill="#8fb071" stroke="#8fb071" points="184.7,-76.9 187.85,-66.78 179.08,-72.72 184.7,-76.9"/>
<text text-anchor="middle" x="178.83" y="-119.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">Gc (x not in fv)</text>
</g>
<!-- nf -->
<g id="node5" class="node">
<title>nf</title>
<ellipse fill="#d9ead3" stroke="#38761d" cx="47.56" cy="-47.56" rx="43.62" ry="43.62"/>
<ellipse fill="none" stroke="#38761d" cx="47.56" cy="-47.56" rx="47.62" ry="47.62"/>
<text text-anchor="middle" x="47.56" y="-45.06" font-family="Inter" font-size="10.00">normal form</text>
<ellipse fill="#2a3a22" stroke="#8fb071" cx="49.33" cy="-49.33" rx="45.17" ry="45.17"/>
<ellipse fill="none" stroke="#8fb071" cx="49.33" cy="-49.33" rx="49.15" ry="49.15"/>
<text text-anchor="middle" x="49.33" y="-46.83" font-family="Inter" font-size="10.00" fill="#c9d1bb">normal form</text>
</g>
<!-- es&#45;&gt;nf -->
<g id="edge8" class="edge">
<title>es&#45;&gt;nf</title>
<path fill="none" stroke="#674ea7" d="M58.42,-140.84C54.43,-135.54 50.7,-129.43 48.56,-123.12 46.65,-117.47 45.39,-111.43 44.62,-105.33"/>
<polygon fill="#674ea7" stroke="#674ea7" points="48.08,-104.73 43.74,-95.06 41.1,-105.32 48.08,-104.73"/>
<text text-anchor="middle" x="89.56" y="-115.92" font-family="Inter" font-size="9.00">R/Gc normalisation</text>
<path fill="none" stroke="#a9b492" d="M61.42,-144.37C56.94,-139.16 52.76,-133.09 50.33,-126.65 48.2,-121.01 46.8,-114.97 45.93,-108.84"/>
<polygon fill="#a9b492" stroke="#a9b492" points="49.37,-108.13 44.93,-98.51 42.41,-108.79 49.37,-108.13"/>
<text text-anchor="middle" x="92.83" y="-119.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">R/Gc normalisation</text>
</g>
<!-- pure&#45;&gt;pure -->
<g id="edge7" class="edge">
<title>pure&#45;&gt;pure</title>
<path fill="none" stroke="#990000" d="M217.49,-60.1C232.18,-62.34 245.65,-58.16 245.65,-47.56 245.65,-39.53 237.92,-35.19 227.77,-34.53"/>
<polygon fill="#990000" stroke="#990000" points="227.31,-31.04 217.49,-35.02 227.64,-38.04 227.31,-31.04"/>
<text text-anchor="middle" x="279.65" y="-45.36" font-family="Inter" font-size="9.00">B under context</text>
<path fill="none" stroke="#dfe7cc" d="M226.25,-62.13C241.48,-64.64 255.59,-60.37 255.59,-49.33 255.59,-40.79 247.15,-36.3 236.28,-35.86"/>
<polygon fill="#dfe7cc" stroke="#dfe7cc" points="236,-32.37 226.25,-36.52 236.45,-39.36 236,-32.37"/>
<text text-anchor="middle" x="292.59" y="-47.13" font-family="Inter" font-size="9.00" fill="#c9d1bb">B under context</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB