Alpha equivalence checker for arbitrary lambda terms
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<!-- Generated by graphviz version 14.1.5 (0)
5 -->
6<!-- Title: matcher Pages: 1 -->
7<svg width="1075pt" height="204pt"
8 viewBox="0.00 0.00 1075.00 204.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(18 185.72)">
10<title>matcher</title>
11<polygon fill="white" stroke="none" points="-18,18 -18,-185.72 1057.23,-185.72 1057.23,18 -18,18"/>
12<!-- __start -->
13<g id="node1" class="node">
14<title>__start</title>
15<ellipse fill="black" stroke="black" cx="2.88" cy="-51.62" rx="2.88" ry="2.88"/>
16</g>
17<!-- scan -->
18<g id="node2" class="node">
19<title>scan</title>
20<ellipse fill="none" stroke="black" cx="137.69" cy="-51.62" rx="35.18" ry="35.18"/>
21<text xml:space="preserve" text-anchor="middle" x="137.69" y="-47.67" font-family="Times New Roman" font-size="16.00">scan</text>
22</g>
23<!-- __start->scan -->
24<g id="edge1" class="edge">
25<title>__start->scan</title>
26<path fill="none" stroke="black" d="M6.19,-51.62C16.48,-51.62 59.23,-51.62 93.04,-51.62"/>
27<polygon fill="black" stroke="black" points="92.78,-54.42 100.78,-51.62 92.78,-48.82 92.78,-54.42"/>
28<text xml:space="preserve" text-anchor="middle" x="54.14" y="-57.82" font-family="Times New Roman" font-size="14.00">start</text>
29</g>
30<!-- scan->scan -->
31<g id="edge2" class="edge">
32<title>scan->scan</title>
33<path fill="none" stroke="black" d="M126.18,-85.29C122.02,-110.86 125.85,-136.8 137.69,-136.8 148.09,-136.8 152.31,-116.76 150.36,-94.55"/>
34<polygon fill="black" stroke="black" points="153.16,-94.38 149.39,-86.79 147.6,-95.07 153.16,-94.38"/>
35<text xml:space="preserve" text-anchor="middle" x="137.69" y="-143" font-family="Times New Roman" font-size="14.00">Σ</text>
36</g>
37<!-- l -->
38<g id="node3" class="node">
39<title>l</title>
40<ellipse fill="none" stroke="black" cx="264.18" cy="-51.62" rx="21.57" ry="21.57"/>
41<text xml:space="preserve" text-anchor="middle" x="264.18" y="-47.67" font-family="Times New Roman" font-size="16.00">l</text>
42</g>
43<!-- scan->l -->
44<g id="edge3" class="edge">
45<title>scan->l</title>
46<path fill="none" stroke="black" d="M173.04,-51.62C191.74,-51.62 214.68,-51.62 232.74,-51.62"/>
47<polygon fill="black" stroke="black" points="232.7,-54.42 240.7,-51.62 232.7,-48.82 232.7,-54.42"/>
48<text xml:space="preserve" text-anchor="middle" x="207.74" y="-57.82" font-family="Times New Roman" font-size="14.00">l</text>
49</g>
50<!-- l->l -->
51<g id="edge4" class="edge">
52<title>l->l</title>
53<path fill="none" stroke="black" d="M256.41,-72.13C250.9,-95.79 253.49,-123.19 264.18,-123.19 273.5,-123.19 276.66,-102.39 273.68,-81.4"/>
54<polygon fill="black" stroke="black" points="276.45,-80.97 272.23,-73.62 270.94,-82 276.45,-80.97"/>
55<text xml:space="preserve" text-anchor="middle" x="264.18" y="-129.39" font-family="Times New Roman" font-size="14.00">l</text>
56</g>
57<!-- la -->
58<g id="node4" class="node">
59<title>la</title>
60<ellipse fill="none" stroke="black" cx="380.82" cy="-51.62" rx="21.57" ry="21.57"/>
61<text xml:space="preserve" text-anchor="middle" x="380.82" y="-47.67" font-family="Times New Roman" font-size="16.00">la</text>
62</g>
63<!-- l->la -->
64<g id="edge5" class="edge">
65<title>l->la</title>
66<path fill="none" stroke="black" d="M286.21,-51.62C303.98,-51.62 329.67,-51.62 349.64,-51.62"/>
67<polygon fill="black" stroke="black" points="349.41,-54.42 357.41,-51.62 349.41,-48.82 349.41,-54.42"/>
68<text xml:space="preserve" text-anchor="middle" x="322.5" y="-57.82" font-family="Times New Roman" font-size="14.00">a</text>
69</g>
70<!-- lam -->
71<g id="node5" class="node">
72<title>lam</title>
73<ellipse fill="none" stroke="black" cx="512.6" cy="-51.62" rx="31.47" ry="31.47"/>
74<text xml:space="preserve" text-anchor="middle" x="512.6" y="-47.67" font-family="Times New Roman" font-size="16.00">lam</text>
75</g>
76<!-- la->lam -->
77<g id="edge6" class="edge">
78<title>la->lam</title>
79<path fill="none" stroke="black" d="M402.67,-51.62C421.23,-51.62 448.88,-51.62 471.69,-51.62"/>
80<polygon fill="black" stroke="black" points="471.61,-54.42 479.61,-51.62 471.61,-48.82 471.61,-54.42"/>
81<text xml:space="preserve" text-anchor="middle" x="441.76" y="-57.82" font-family="Times New Roman" font-size="14.00">m</text>
82</g>
83<!-- lamb -->
84<g id="node6" class="node">
85<title>lamb</title>
86<ellipse fill="none" stroke="black" cx="656.68" cy="-51.62" rx="38.36" ry="38.36"/>
87<text xml:space="preserve" text-anchor="middle" x="656.68" y="-47.67" font-family="Times New Roman" font-size="16.00">lamb</text>
88</g>
89<!-- lam->lamb -->
90<g id="edge7" class="edge">
91<title>lam->lamb</title>
92<path fill="none" stroke="black" d="M544.43,-51.62C563.11,-51.62 587.33,-51.62 608.4,-51.62"/>
93<polygon fill="black" stroke="black" points="608.31,-54.42 616.31,-51.62 608.31,-48.82 608.31,-54.42"/>
94<text xml:space="preserve" text-anchor="middle" x="581.19" y="-57.82" font-family="Times New Roman" font-size="14.00">b</text>
95</g>
96<!-- lambda -->
97<g id="node7" class="node">
98<title>lambda</title>
99<ellipse fill="none" stroke="black" cx="820.91" cy="-51.62" rx="51.62" ry="51.62"/>
100<text xml:space="preserve" text-anchor="middle" x="820.91" y="-47.67" font-family="Times New Roman" font-size="16.00">lambda</text>
101</g>
102<!-- lamb->lambda -->
103<g id="edge8" class="edge">
104<title>lamb->lambda</title>
105<path fill="none" stroke="black" d="M695.3,-51.62C714.38,-51.62 738.02,-51.62 759.56,-51.62"/>
106<polygon fill="black" stroke="black" points="759.45,-54.42 767.45,-51.62 759.45,-48.82 759.45,-54.42"/>
107<text xml:space="preserve" text-anchor="middle" x="732.16" y="-57.82" font-family="Times New Roman" font-size="14.00">d</text>
108</g>
109<!-- found -->
110<g id="node8" class="node">
111<title>found</title>
112<ellipse fill="none" stroke="black" cx="992.63" cy="-51.62" rx="42.6" ry="42.6"/>
113<ellipse fill="none" stroke="black" cx="992.63" cy="-51.62" rx="46.6" ry="46.6"/>
114<text xml:space="preserve" text-anchor="middle" x="992.63" y="-47.67" font-family="Times New Roman" font-size="16.00">found</text>
115</g>
116<!-- lambda->found -->
117<g id="edge9" class="edge">
118<title>lambda->found</title>
119<path fill="none" stroke="black" d="M872.83,-51.62C892.81,-51.62 915.79,-51.62 936.18,-51.62"/>
120<polygon fill="black" stroke="black" points="936.14,-54.42 944.14,-51.62 936.14,-48.82 936.14,-54.42"/>
121<text xml:space="preserve" text-anchor="middle" x="909.28" y="-57.82" font-family="Times New Roman" font-size="14.00">a</text>
122</g>
123<!-- found->found -->
124<g id="edge10" class="edge">
125<title>found->found</title>
126<path fill="none" stroke="black" d="M977.98,-96.34C974.72,-123.06 979.6,-148.22 992.63,-148.22 1004.13,-148.22 1009.28,-128.62 1008.09,-105.63"/>
127<polygon fill="black" stroke="black" points="1010.9,-105.57 1007.41,-97.84 1005.32,-106.06 1010.9,-105.57"/>
128<text xml:space="preserve" text-anchor="middle" x="992.63" y="-154.42" font-family="Times New Roman" font-size="14.00">Σ</text>
129</g>
130</g>
131</svg>