Alpha equivalence checker for arbitrary lambda terms
1[
2 {
3 "name": "identical-var",
4 "t1": {
5 "tag": "Var",
6 "name": "x"
7 },
8 "t2": {
9 "tag": "Var",
10 "name": "x"
11 },
12 "expected": true
13 },
14 {
15 "name": "identical-lam",
16 "t1": {
17 "tag": "Lam",
18 "param": "x",
19 "body": {
20 "tag": "Var",
21 "name": "x"
22 }
23 },
24 "t2": {
25 "tag": "Lam",
26 "param": "x",
27 "body": {
28 "tag": "Var",
29 "name": "x"
30 }
31 },
32 "expected": true
33 },
34 {
35 "name": "renamed-binder",
36 "t1": {
37 "tag": "Lam",
38 "param": "x",
39 "body": {
40 "tag": "Var",
41 "name": "x"
42 }
43 },
44 "t2": {
45 "tag": "Lam",
46 "param": "y",
47 "body": {
48 "tag": "Var",
49 "name": "y"
50 }
51 },
52 "expected": true
53 },
54 {
55 "name": "nested-renamed",
56 "t1": {
57 "tag": "Lam",
58 "param": "x",
59 "body": {
60 "tag": "Lam",
61 "param": "y",
62 "body": {
63 "tag": "App",
64 "fun": {
65 "tag": "Var",
66 "name": "x"
67 },
68 "arg": {
69 "tag": "Var",
70 "name": "y"
71 }
72 }
73 }
74 },
75 "t2": {
76 "tag": "Lam",
77 "param": "a",
78 "body": {
79 "tag": "Lam",
80 "param": "b",
81 "body": {
82 "tag": "App",
83 "fun": {
84 "tag": "Var",
85 "name": "a"
86 },
87 "arg": {
88 "tag": "Var",
89 "name": "b"
90 }
91 }
92 }
93 },
94 "expected": true
95 },
96 {
97 "name": "shadowing-same",
98 "t1": {
99 "tag": "Lam",
100 "param": "x",
101 "body": {
102 "tag": "Lam",
103 "param": "x",
104 "body": {
105 "tag": "Var",
106 "name": "x"
107 }
108 }
109 },
110 "t2": {
111 "tag": "Lam",
112 "param": "y",
113 "body": {
114 "tag": "Lam",
115 "param": "y",
116 "body": {
117 "tag": "Var",
118 "name": "y"
119 }
120 }
121 },
122 "expected": true
123 },
124 {
125 "name": "shadowing-diff-binding",
126 "t1": {
127 "tag": "Lam",
128 "param": "x",
129 "body": {
130 "tag": "Lam",
131 "param": "x",
132 "body": {
133 "tag": "Var",
134 "name": "x"
135 }
136 }
137 },
138 "t2": {
139 "tag": "Lam",
140 "param": "x",
141 "body": {
142 "tag": "Lam",
143 "param": "y",
144 "body": {
145 "tag": "Var",
146 "name": "x"
147 }
148 }
149 },
150 "expected": false
151 },
152 {
153 "name": "free-match",
154 "t1": {
155 "tag": "App",
156 "fun": {
157 "tag": "Var",
158 "name": "f"
159 },
160 "arg": {
161 "tag": "Lam",
162 "param": "x",
163 "body": {
164 "tag": "Var",
165 "name": "x"
166 }
167 }
168 },
169 "t2": {
170 "tag": "App",
171 "fun": {
172 "tag": "Var",
173 "name": "f"
174 },
175 "arg": {
176 "tag": "Lam",
177 "param": "y",
178 "body": {
179 "tag": "Var",
180 "name": "y"
181 }
182 }
183 },
184 "expected": true
185 },
186 {
187 "name": "free-mismatch",
188 "t1": {
189 "tag": "App",
190 "fun": {
191 "tag": "Var",
192 "name": "f"
193 },
194 "arg": {
195 "tag": "Var",
196 "name": "x"
197 }
198 },
199 "t2": {
200 "tag": "App",
201 "fun": {
202 "tag": "Var",
203 "name": "g"
204 },
205 "arg": {
206 "tag": "Var",
207 "name": "x"
208 }
209 },
210 "expected": false
211 },
212 {
213 "name": "binder-collides-free",
214 "t1": {
215 "tag": "Lam",
216 "param": "x",
217 "body": {
218 "tag": "App",
219 "fun": {
220 "tag": "Var",
221 "name": "x"
222 },
223 "arg": {
224 "tag": "Var",
225 "name": "y"
226 }
227 }
228 },
229 "t2": {
230 "tag": "Lam",
231 "param": "y",
232 "body": {
233 "tag": "App",
234 "fun": {
235 "tag": "Var",
236 "name": "y"
237 },
238 "arg": {
239 "tag": "Var",
240 "name": "y"
241 }
242 }
243 },
244 "expected": false
245 },
246 {
247 "name": "binder-collides-free2",
248 "t1": {
249 "tag": "Lam",
250 "param": "y",
251 "body": {
252 "tag": "App",
253 "fun": {
254 "tag": "Var",
255 "name": "y"
256 },
257 "arg": {
258 "tag": "Var",
259 "name": "x"
260 }
261 }
262 },
263 "t2": {
264 "tag": "Lam",
265 "param": "z",
266 "body": {
267 "tag": "App",
268 "fun": {
269 "tag": "Var",
270 "name": "z"
271 },
272 "arg": {
273 "tag": "Var",
274 "name": "x"
275 }
276 }
277 },
278 "expected": true
279 },
280 {
281 "name": "deep-nest",
282 "t1": {
283 "tag": "Lam",
284 "param": "a",
285 "body": {
286 "tag": "Lam",
287 "param": "b",
288 "body": {
289 "tag": "Lam",
290 "param": "c",
291 "body": {
292 "tag": "Lam",
293 "param": "d",
294 "body": {
295 "tag": "App",
296 "fun": {
297 "tag": "Var",
298 "name": "a"
299 },
300 "arg": {
301 "tag": "Var",
302 "name": "d"
303 }
304 }
305 }
306 }
307 }
308 },
309 "t2": {
310 "tag": "Lam",
311 "param": "w",
312 "body": {
313 "tag": "Lam",
314 "param": "x",
315 "body": {
316 "tag": "Lam",
317 "param": "y",
318 "body": {
319 "tag": "Lam",
320 "param": "z",
321 "body": {
322 "tag": "App",
323 "fun": {
324 "tag": "Var",
325 "name": "w"
326 },
327 "arg": {
328 "tag": "Var",
329 "name": "z"
330 }
331 }
332 }
333 }
334 }
335 },
336 "expected": true
337 },
338 {
339 "name": "subst-basic",
340 "t1": {
341 "tag": "Subst",
342 "var": "x",
343 "repl": {
344 "tag": "Var",
345 "name": "y"
346 },
347 "body": {
348 "tag": "Lam",
349 "param": "z",
350 "body": {
351 "tag": "Var",
352 "name": "x"
353 }
354 }
355 },
356 "t2": {
357 "tag": "Lam",
358 "param": "z",
359 "body": {
360 "tag": "Var",
361 "name": "y"
362 }
363 },
364 "expected": true
365 },
366 {
367 "name": "subst-capture-delayed",
368 "t1": {
369 "tag": "Subst",
370 "var": "x",
371 "repl": {
372 "tag": "Var",
373 "name": "z"
374 },
375 "body": {
376 "tag": "Lam",
377 "param": "z",
378 "body": {
379 "tag": "Var",
380 "name": "x"
381 }
382 }
383 },
384 "t2": {
385 "tag": "Lam",
386 "param": "z",
387 "body": {
388 "tag": "Var",
389 "name": "z"
390 }
391 },
392 "expected": false
393 },
394 {
395 "name": "subst-capture-correct",
396 "t1": {
397 "tag": "Subst",
398 "var": "x",
399 "repl": {
400 "tag": "Var",
401 "name": "z"
402 },
403 "body": {
404 "tag": "Lam",
405 "param": "z",
406 "body": {
407 "tag": "Var",
408 "name": "x"
409 }
410 }
411 },
412 "t2": {
413 "tag": "Lam",
414 "param": "w",
415 "body": {
416 "tag": "Var",
417 "name": "z"
418 }
419 },
420 "expected": true
421 },
422 {
423 "name": "subst-shadowed",
424 "t1": {
425 "tag": "Subst",
426 "var": "x",
427 "repl": {
428 "tag": "Var",
429 "name": "q"
430 },
431 "body": {
432 "tag": "Lam",
433 "param": "x",
434 "body": {
435 "tag": "Var",
436 "name": "x"
437 }
438 }
439 },
440 "t2": {
441 "tag": "Lam",
442 "param": "x",
443 "body": {
444 "tag": "Var",
445 "name": "x"
446 }
447 },
448 "expected": true
449 },
450 {
451 "name": "subst-repeated",
452 "t1": {
453 "tag": "Subst",
454 "var": "x",
455 "repl": {
456 "tag": "Var",
457 "name": "a"
458 },
459 "body": {
460 "tag": "Subst",
461 "var": "y",
462 "repl": {
463 "tag": "Var",
464 "name": "b"
465 },
466 "body": {
467 "tag": "App",
468 "fun": {
469 "tag": "Var",
470 "name": "x"
471 },
472 "arg": {
473 "tag": "Var",
474 "name": "y"
475 }
476 }
477 }
478 },
479 "t2": {
480 "tag": "App",
481 "fun": {
482 "tag": "Var",
483 "name": "a"
484 },
485 "arg": {
486 "tag": "Var",
487 "name": "b"
488 }
489 },
490 "expected": true
491 },
492 {
493 "name": "subst-under-binder-shift",
494 "t1": {
495 "tag": "Subst",
496 "var": "x",
497 "repl": {
498 "tag": "App",
499 "fun": {
500 "tag": "Var",
501 "name": "w"
502 },
503 "arg": {
504 "tag": "Var",
505 "name": "v"
506 }
507 },
508 "body": {
509 "tag": "Lam",
510 "param": "w",
511 "body": {
512 "tag": "Lam",
513 "param": "v",
514 "body": {
515 "tag": "Var",
516 "name": "x"
517 }
518 }
519 }
520 },
521 "t2": {
522 "tag": "Lam",
523 "param": "a",
524 "body": {
525 "tag": "Lam",
526 "param": "b",
527 "body": {
528 "tag": "App",
529 "fun": {
530 "tag": "Var",
531 "name": "w"
532 },
533 "arg": {
534 "tag": "Var",
535 "name": "v"
536 }
537 }
538 }
539 },
540 "expected": true
541 },
542 {
543 "name": "subst-nested-subst",
544 "t1": {
545 "tag": "Subst",
546 "var": "x",
547 "repl": {
548 "tag": "Subst",
549 "var": "y",
550 "repl": {
551 "tag": "Var",
552 "name": "k"
553 },
554 "body": {
555 "tag": "Var",
556 "name": "y"
557 }
558 },
559 "body": {
560 "tag": "Lam",
561 "param": "k",
562 "body": {
563 "tag": "Var",
564 "name": "x"
565 }
566 }
567 },
568 "t2": {
569 "tag": "Lam",
570 "param": "q",
571 "body": {
572 "tag": "Var",
573 "name": "k"
574 }
575 },
576 "expected": true
577 },
578 {
579 "name": "subst-not-equiv",
580 "t1": {
581 "tag": "Subst",
582 "var": "x",
583 "repl": {
584 "tag": "Var",
585 "name": "y"
586 },
587 "body": {
588 "tag": "Var",
589 "name": "x"
590 }
591 },
592 "t2": {
593 "tag": "Var",
594 "name": "z"
595 },
596 "expected": false
597 },
598 {
599 "name": "eta-ish-not-equiv",
600 "t1": {
601 "tag": "Lam",
602 "param": "x",
603 "body": {
604 "tag": "App",
605 "fun": {
606 "tag": "Var",
607 "name": "f"
608 },
609 "arg": {
610 "tag": "Var",
611 "name": "x"
612 }
613 }
614 },
615 "t2": {
616 "tag": "Var",
617 "name": "f"
618 },
619 "expected": false
620 },
621 {
622 "name": "app-order",
623 "t1": {
624 "tag": "App",
625 "fun": {
626 "tag": "Var",
627 "name": "a"
628 },
629 "arg": {
630 "tag": "Var",
631 "name": "b"
632 }
633 },
634 "t2": {
635 "tag": "App",
636 "fun": {
637 "tag": "Var",
638 "name": "b"
639 },
640 "arg": {
641 "tag": "Var",
642 "name": "a"
643 }
644 },
645 "expected": false
646 },
647 {
648 "name": "normalises-equiv",
649 "t1": {
650 "tag": "App",
651 "fun": {
652 "tag": "Lam",
653 "param": "x",
654 "body": {
655 "tag": "Var",
656 "name": "x"
657 }
658 },
659 "arg": {
660 "tag": "Lam",
661 "param": "y",
662 "body": {
663 "tag": "Var",
664 "name": "y"
665 }
666 }
667 },
668 "t2": {
669 "tag": "Lam",
670 "param": "z",
671 "body": {
672 "tag": "Var",
673 "name": "z"
674 }
675 },
676 "expected": true
677 },
678 {
679 "name": "normalises-equiv2",
680 "t1": {
681 "tag": "App",
682 "fun": {
683 "tag": "Lam",
684 "param": "x",
685 "body": {
686 "tag": "Lam",
687 "param": "y",
688 "body": {
689 "tag": "Var",
690 "name": "x"
691 }
692 }
693 },
694 "arg": {
695 "tag": "Var",
696 "name": "f"
697 }
698 },
699 "t2": {
700 "tag": "Lam",
701 "param": "y",
702 "body": {
703 "tag": "Var",
704 "name": "f"
705 }
706 },
707 "expected": true
708 },
709 {
710 "name": "rand-self-0",
711 "t1": {
712 "tag": "Lam",
713 "param": "v4",
714 "body": {
715 "tag": "Lam",
716 "param": "v4",
717 "body": {
718 "tag": "App",
719 "fun": {
720 "tag": "Var",
721 "name": "f"
722 },
723 "arg": {
724 "tag": "Var",
725 "name": "q"
726 }
727 }
728 }
729 },
730 "t2": {
731 "tag": "Lam",
732 "param": "v4",
733 "body": {
734 "tag": "Lam",
735 "param": "v4",
736 "body": {
737 "tag": "App",
738 "fun": {
739 "tag": "Var",
740 "name": "f"
741 },
742 "arg": {
743 "tag": "Var",
744 "name": "q"
745 }
746 }
747 }
748 },
749 "expected": true
750 },
751 {
752 "name": "rand-self-1",
753 "t1": {
754 "tag": "App",
755 "fun": {
756 "tag": "Var",
757 "name": "p"
758 },
759 "arg": {
760 "tag": "Lam",
761 "param": "v4",
762 "body": {
763 "tag": "Var",
764 "name": "g"
765 }
766 }
767 },
768 "t2": {
769 "tag": "App",
770 "fun": {
771 "tag": "Var",
772 "name": "p"
773 },
774 "arg": {
775 "tag": "Lam",
776 "param": "v4",
777 "body": {
778 "tag": "Var",
779 "name": "g"
780 }
781 }
782 },
783 "expected": true
784 },
785 {
786 "name": "rand-self-2",
787 "t1": {
788 "tag": "Lam",
789 "param": "v2",
790 "body": {
791 "tag": "Lam",
792 "param": "v1",
793 "body": {
794 "tag": "Lam",
795 "param": "v1",
796 "body": {
797 "tag": "App",
798 "fun": {
799 "tag": "Var",
800 "name": "v1"
801 },
802 "arg": {
803 "tag": "Lam",
804 "param": "v1",
805 "body": {
806 "tag": "App",
807 "fun": {
808 "tag": "Var",
809 "name": "v2"
810 },
811 "arg": {
812 "tag": "Var",
813 "name": "h"
814 }
815 }
816 }
817 }
818 }
819 }
820 },
821 "t2": {
822 "tag": "Lam",
823 "param": "v2",
824 "body": {
825 "tag": "Lam",
826 "param": "v1",
827 "body": {
828 "tag": "Lam",
829 "param": "v1",
830 "body": {
831 "tag": "App",
832 "fun": {
833 "tag": "Var",
834 "name": "v1"
835 },
836 "arg": {
837 "tag": "Lam",
838 "param": "v1",
839 "body": {
840 "tag": "App",
841 "fun": {
842 "tag": "Var",
843 "name": "v2"
844 },
845 "arg": {
846 "tag": "Var",
847 "name": "h"
848 }
849 }
850 }
851 }
852 }
853 }
854 },
855 "expected": true
856 },
857 {
858 "name": "rand-self-3",
859 "t1": {
860 "tag": "Var",
861 "name": "f"
862 },
863 "t2": {
864 "tag": "Var",
865 "name": "f"
866 },
867 "expected": true
868 },
869 {
870 "name": "rand-self-4",
871 "t1": {
872 "tag": "Lam",
873 "param": "v5",
874 "body": {
875 "tag": "Lam",
876 "param": "v5",
877 "body": {
878 "tag": "Var",
879 "name": "v5"
880 }
881 }
882 },
883 "t2": {
884 "tag": "Lam",
885 "param": "v5",
886 "body": {
887 "tag": "Lam",
888 "param": "v5",
889 "body": {
890 "tag": "Var",
891 "name": "v5"
892 }
893 }
894 },
895 "expected": true
896 },
897 {
898 "name": "rand-self-5",
899 "t1": {
900 "tag": "App",
901 "fun": {
902 "tag": "App",
903 "fun": {
904 "tag": "Var",
905 "name": "q"
906 },
907 "arg": {
908 "tag": "Lam",
909 "param": "v5",
910 "body": {
911 "tag": "Var",
912 "name": "v5"
913 }
914 }
915 },
916 "arg": {
917 "tag": "Var",
918 "name": "h"
919 }
920 },
921 "t2": {
922 "tag": "App",
923 "fun": {
924 "tag": "App",
925 "fun": {
926 "tag": "Var",
927 "name": "q"
928 },
929 "arg": {
930 "tag": "Lam",
931 "param": "v5",
932 "body": {
933 "tag": "Var",
934 "name": "v5"
935 }
936 }
937 },
938 "arg": {
939 "tag": "Var",
940 "name": "h"
941 }
942 },
943 "expected": true
944 },
945 {
946 "name": "rand-self-6",
947 "t1": {
948 "tag": "Lam",
949 "param": "v3",
950 "body": {
951 "tag": "Var",
952 "name": "v3"
953 }
954 },
955 "t2": {
956 "tag": "Lam",
957 "param": "v3",
958 "body": {
959 "tag": "Var",
960 "name": "v3"
961 }
962 },
963 "expected": true
964 },
965 {
966 "name": "rand-self-7",
967 "t1": {
968 "tag": "App",
969 "fun": {
970 "tag": "Var",
971 "name": "p"
972 },
973 "arg": {
974 "tag": "Lam",
975 "param": "v2",
976 "body": {
977 "tag": "Lam",
978 "param": "v4",
979 "body": {
980 "tag": "Var",
981 "name": "v4"
982 }
983 }
984 }
985 },
986 "t2": {
987 "tag": "App",
988 "fun": {
989 "tag": "Var",
990 "name": "p"
991 },
992 "arg": {
993 "tag": "Lam",
994 "param": "v2",
995 "body": {
996 "tag": "Lam",
997 "param": "v4",
998 "body": {
999 "tag": "Var",
1000 "name": "v4"
1001 }
1002 }
1003 }
1004 },
1005 "expected": true
1006 },
1007 {
1008 "name": "rand-self-8",
1009 "t1": {
1010 "tag": "Lam",
1011 "param": "v2",
1012 "body": {
1013 "tag": "Subst",
1014 "var": "v2",
1015 "repl": {
1016 "tag": "Var",
1017 "name": "g"
1018 },
1019 "body": {
1020 "tag": "Var",
1021 "name": "v2"
1022 }
1023 }
1024 },
1025 "t2": {
1026 "tag": "Lam",
1027 "param": "v2",
1028 "body": {
1029 "tag": "Subst",
1030 "var": "v2",
1031 "repl": {
1032 "tag": "Var",
1033 "name": "g"
1034 },
1035 "body": {
1036 "tag": "Var",
1037 "name": "v2"
1038 }
1039 }
1040 },
1041 "expected": true
1042 },
1043 {
1044 "name": "rand-self-9",
1045 "t1": {
1046 "tag": "Lam",
1047 "param": "v7",
1048 "body": {
1049 "tag": "App",
1050 "fun": {
1051 "tag": "Var",
1052 "name": "f"
1053 },
1054 "arg": {
1055 "tag": "App",
1056 "fun": {
1057 "tag": "Lam",
1058 "param": "v1",
1059 "body": {
1060 "tag": "Lam",
1061 "param": "v7",
1062 "body": {
1063 "tag": "Var",
1064 "name": "v1"
1065 }
1066 }
1067 },
1068 "arg": {
1069 "tag": "Var",
1070 "name": "v7"
1071 }
1072 }
1073 }
1074 },
1075 "t2": {
1076 "tag": "Lam",
1077 "param": "v7",
1078 "body": {
1079 "tag": "App",
1080 "fun": {
1081 "tag": "Var",
1082 "name": "f"
1083 },
1084 "arg": {
1085 "tag": "App",
1086 "fun": {
1087 "tag": "Lam",
1088 "param": "v1",
1089 "body": {
1090 "tag": "Lam",
1091 "param": "v7",
1092 "body": {
1093 "tag": "Var",
1094 "name": "v1"
1095 }
1096 }
1097 },
1098 "arg": {
1099 "tag": "Var",
1100 "name": "v7"
1101 }
1102 }
1103 }
1104 },
1105 "expected": true
1106 },
1107 {
1108 "name": "rand-self-10",
1109 "t1": {
1110 "tag": "Var",
1111 "name": "q"
1112 },
1113 "t2": {
1114 "tag": "Var",
1115 "name": "q"
1116 },
1117 "expected": true
1118 },
1119 {
1120 "name": "rand-self-11",
1121 "t1": {
1122 "tag": "Lam",
1123 "param": "v2",
1124 "body": {
1125 "tag": "App",
1126 "fun": {
1127 "tag": "Subst",
1128 "var": "v2",
1129 "repl": {
1130 "tag": "Subst",
1131 "var": "v2",
1132 "repl": {
1133 "tag": "Var",
1134 "name": "v2"
1135 },
1136 "body": {
1137 "tag": "Var",
1138 "name": "q"
1139 }
1140 },
1141 "body": {
1142 "tag": "Var",
1143 "name": "p"
1144 }
1145 },
1146 "arg": {
1147 "tag": "Var",
1148 "name": "v2"
1149 }
1150 }
1151 },
1152 "t2": {
1153 "tag": "Lam",
1154 "param": "v2",
1155 "body": {
1156 "tag": "App",
1157 "fun": {
1158 "tag": "Subst",
1159 "var": "v2",
1160 "repl": {
1161 "tag": "Subst",
1162 "var": "v2",
1163 "repl": {
1164 "tag": "Var",
1165 "name": "v2"
1166 },
1167 "body": {
1168 "tag": "Var",
1169 "name": "q"
1170 }
1171 },
1172 "body": {
1173 "tag": "Var",
1174 "name": "p"
1175 }
1176 },
1177 "arg": {
1178 "tag": "Var",
1179 "name": "v2"
1180 }
1181 }
1182 },
1183 "expected": true
1184 },
1185 {
1186 "name": "rand-self-12",
1187 "t1": {
1188 "tag": "App",
1189 "fun": {
1190 "tag": "Lam",
1191 "param": "v6",
1192 "body": {
1193 "tag": "Var",
1194 "name": "v6"
1195 }
1196 },
1197 "arg": {
1198 "tag": "Var",
1199 "name": "p"
1200 }
1201 },
1202 "t2": {
1203 "tag": "App",
1204 "fun": {
1205 "tag": "Lam",
1206 "param": "v6",
1207 "body": {
1208 "tag": "Var",
1209 "name": "v6"
1210 }
1211 },
1212 "arg": {
1213 "tag": "Var",
1214 "name": "p"
1215 }
1216 },
1217 "expected": true
1218 },
1219 {
1220 "name": "rand-self-13",
1221 "t1": {
1222 "tag": "Lam",
1223 "param": "v7",
1224 "body": {
1225 "tag": "Lam",
1226 "param": "v7",
1227 "body": {
1228 "tag": "Lam",
1229 "param": "v3",
1230 "body": {
1231 "tag": "Lam",
1232 "param": "v0",
1233 "body": {
1234 "tag": "Lam",
1235 "param": "v5",
1236 "body": {
1237 "tag": "Var",
1238 "name": "p"
1239 }
1240 }
1241 }
1242 }
1243 }
1244 },
1245 "t2": {
1246 "tag": "Lam",
1247 "param": "v7",
1248 "body": {
1249 "tag": "Lam",
1250 "param": "v7",
1251 "body": {
1252 "tag": "Lam",
1253 "param": "v3",
1254 "body": {
1255 "tag": "Lam",
1256 "param": "v0",
1257 "body": {
1258 "tag": "Lam",
1259 "param": "v5",
1260 "body": {
1261 "tag": "Var",
1262 "name": "p"
1263 }
1264 }
1265 }
1266 }
1267 }
1268 },
1269 "expected": true
1270 },
1271 {
1272 "name": "rand-self-14",
1273 "t1": {
1274 "tag": "App",
1275 "fun": {
1276 "tag": "Var",
1277 "name": "q"
1278 },
1279 "arg": {
1280 "tag": "App",
1281 "fun": {
1282 "tag": "Var",
1283 "name": "g"
1284 },
1285 "arg": {
1286 "tag": "Lam",
1287 "param": "v6",
1288 "body": {
1289 "tag": "Lam",
1290 "param": "v0",
1291 "body": {
1292 "tag": "Var",
1293 "name": "v6"
1294 }
1295 }
1296 }
1297 }
1298 },
1299 "t2": {
1300 "tag": "App",
1301 "fun": {
1302 "tag": "Var",
1303 "name": "q"
1304 },
1305 "arg": {
1306 "tag": "App",
1307 "fun": {
1308 "tag": "Var",
1309 "name": "g"
1310 },
1311 "arg": {
1312 "tag": "Lam",
1313 "param": "v6",
1314 "body": {
1315 "tag": "Lam",
1316 "param": "v0",
1317 "body": {
1318 "tag": "Var",
1319 "name": "v6"
1320 }
1321 }
1322 }
1323 }
1324 },
1325 "expected": true
1326 },
1327 {
1328 "name": "rand-self-15",
1329 "t1": {
1330 "tag": "Lam",
1331 "param": "v5",
1332 "body": {
1333 "tag": "Var",
1334 "name": "g"
1335 }
1336 },
1337 "t2": {
1338 "tag": "Lam",
1339 "param": "v5",
1340 "body": {
1341 "tag": "Var",
1342 "name": "g"
1343 }
1344 },
1345 "expected": true
1346 },
1347 {
1348 "name": "rand-self-16",
1349 "t1": {
1350 "tag": "Subst",
1351 "var": "u",
1352 "repl": {
1353 "tag": "Lam",
1354 "param": "v7",
1355 "body": {
1356 "tag": "Lam",
1357 "param": "v7",
1358 "body": {
1359 "tag": "Var",
1360 "name": "v7"
1361 }
1362 }
1363 },
1364 "body": {
1365 "tag": "Lam",
1366 "param": "v0",
1367 "body": {
1368 "tag": "Var",
1369 "name": "v0"
1370 }
1371 }
1372 },
1373 "t2": {
1374 "tag": "Subst",
1375 "var": "u",
1376 "repl": {
1377 "tag": "Lam",
1378 "param": "v7",
1379 "body": {
1380 "tag": "Lam",
1381 "param": "v7",
1382 "body": {
1383 "tag": "Var",
1384 "name": "v7"
1385 }
1386 }
1387 },
1388 "body": {
1389 "tag": "Lam",
1390 "param": "v0",
1391 "body": {
1392 "tag": "Var",
1393 "name": "v0"
1394 }
1395 }
1396 },
1397 "expected": true
1398 },
1399 {
1400 "name": "rand-self-17",
1401 "t1": {
1402 "tag": "Lam",
1403 "param": "v7",
1404 "body": {
1405 "tag": "Lam",
1406 "param": "v0",
1407 "body": {
1408 "tag": "Lam",
1409 "param": "v0",
1410 "body": {
1411 "tag": "Lam",
1412 "param": "v7",
1413 "body": {
1414 "tag": "Var",
1415 "name": "q"
1416 }
1417 }
1418 }
1419 }
1420 },
1421 "t2": {
1422 "tag": "Lam",
1423 "param": "v7",
1424 "body": {
1425 "tag": "Lam",
1426 "param": "v0",
1427 "body": {
1428 "tag": "Lam",
1429 "param": "v0",
1430 "body": {
1431 "tag": "Lam",
1432 "param": "v7",
1433 "body": {
1434 "tag": "Var",
1435 "name": "q"
1436 }
1437 }
1438 }
1439 }
1440 },
1441 "expected": true
1442 },
1443 {
1444 "name": "rand-self-18",
1445 "t1": {
1446 "tag": "Lam",
1447 "param": "v4",
1448 "body": {
1449 "tag": "Lam",
1450 "param": "v4",
1451 "body": {
1452 "tag": "Var",
1453 "name": "q"
1454 }
1455 }
1456 },
1457 "t2": {
1458 "tag": "Lam",
1459 "param": "v4",
1460 "body": {
1461 "tag": "Lam",
1462 "param": "v4",
1463 "body": {
1464 "tag": "Var",
1465 "name": "q"
1466 }
1467 }
1468 },
1469 "expected": true
1470 },
1471 {
1472 "name": "rand-self-19",
1473 "t1": {
1474 "tag": "App",
1475 "fun": {
1476 "tag": "Lam",
1477 "param": "v1",
1478 "body": {
1479 "tag": "Var",
1480 "name": "f"
1481 }
1482 },
1483 "arg": {
1484 "tag": "App",
1485 "fun": {
1486 "tag": "Lam",
1487 "param": "v3",
1488 "body": {
1489 "tag": "Subst",
1490 "var": "v3",
1491 "repl": {
1492 "tag": "Lam",
1493 "param": "v5",
1494 "body": {
1495 "tag": "Var",
1496 "name": "h"
1497 }
1498 },
1499 "body": {
1500 "tag": "Lam",
1501 "param": "v3",
1502 "body": {
1503 "tag": "App",
1504 "fun": {
1505 "tag": "Var",
1506 "name": "v3"
1507 },
1508 "arg": {
1509 "tag": "Var",
1510 "name": "v3"
1511 }
1512 }
1513 }
1514 }
1515 },
1516 "arg": {
1517 "tag": "Lam",
1518 "param": "v3",
1519 "body": {
1520 "tag": "Subst",
1521 "var": "v3",
1522 "repl": {
1523 "tag": "Var",
1524 "name": "v3"
1525 },
1526 "body": {
1527 "tag": "Lam",
1528 "param": "v4",
1529 "body": {
1530 "tag": "App",
1531 "fun": {
1532 "tag": "Var",
1533 "name": "v3"
1534 },
1535 "arg": {
1536 "tag": "Var",
1537 "name": "v4"
1538 }
1539 }
1540 }
1541 }
1542 }
1543 }
1544 },
1545 "t2": {
1546 "tag": "App",
1547 "fun": {
1548 "tag": "Lam",
1549 "param": "v1",
1550 "body": {
1551 "tag": "Var",
1552 "name": "f"
1553 }
1554 },
1555 "arg": {
1556 "tag": "App",
1557 "fun": {
1558 "tag": "Lam",
1559 "param": "v3",
1560 "body": {
1561 "tag": "Subst",
1562 "var": "v3",
1563 "repl": {
1564 "tag": "Lam",
1565 "param": "v5",
1566 "body": {
1567 "tag": "Var",
1568 "name": "h"
1569 }
1570 },
1571 "body": {
1572 "tag": "Lam",
1573 "param": "v3",
1574 "body": {
1575 "tag": "App",
1576 "fun": {
1577 "tag": "Var",
1578 "name": "v3"
1579 },
1580 "arg": {
1581 "tag": "Var",
1582 "name": "v3"
1583 }
1584 }
1585 }
1586 }
1587 },
1588 "arg": {
1589 "tag": "Lam",
1590 "param": "v3",
1591 "body": {
1592 "tag": "Subst",
1593 "var": "v3",
1594 "repl": {
1595 "tag": "Var",
1596 "name": "v3"
1597 },
1598 "body": {
1599 "tag": "Lam",
1600 "param": "v4",
1601 "body": {
1602 "tag": "App",
1603 "fun": {
1604 "tag": "Var",
1605 "name": "v3"
1606 },
1607 "arg": {
1608 "tag": "Var",
1609 "name": "v4"
1610 }
1611 }
1612 }
1613 }
1614 }
1615 }
1616 },
1617 "expected": true
1618 },
1619 {
1620 "name": "rand-self-20",
1621 "t1": {
1622 "tag": "Var",
1623 "name": "g"
1624 },
1625 "t2": {
1626 "tag": "Var",
1627 "name": "g"
1628 },
1629 "expected": true
1630 },
1631 {
1632 "name": "rand-self-21",
1633 "t1": {
1634 "tag": "Lam",
1635 "param": "v1",
1636 "body": {
1637 "tag": "Var",
1638 "name": "h"
1639 }
1640 },
1641 "t2": {
1642 "tag": "Lam",
1643 "param": "v1",
1644 "body": {
1645 "tag": "Var",
1646 "name": "h"
1647 }
1648 },
1649 "expected": true
1650 },
1651 {
1652 "name": "rand-self-22",
1653 "t1": {
1654 "tag": "Var",
1655 "name": "g"
1656 },
1657 "t2": {
1658 "tag": "Var",
1659 "name": "g"
1660 },
1661 "expected": true
1662 },
1663 {
1664 "name": "rand-self-23",
1665 "t1": {
1666 "tag": "App",
1667 "fun": {
1668 "tag": "Var",
1669 "name": "f"
1670 },
1671 "arg": {
1672 "tag": "Lam",
1673 "param": "v6",
1674 "body": {
1675 "tag": "Var",
1676 "name": "h"
1677 }
1678 }
1679 },
1680 "t2": {
1681 "tag": "App",
1682 "fun": {
1683 "tag": "Var",
1684 "name": "f"
1685 },
1686 "arg": {
1687 "tag": "Lam",
1688 "param": "v6",
1689 "body": {
1690 "tag": "Var",
1691 "name": "h"
1692 }
1693 }
1694 },
1695 "expected": true
1696 },
1697 {
1698 "name": "rand-self-24",
1699 "t1": {
1700 "tag": "App",
1701 "fun": {
1702 "tag": "Var",
1703 "name": "q"
1704 },
1705 "arg": {
1706 "tag": "Var",
1707 "name": "q"
1708 }
1709 },
1710 "t2": {
1711 "tag": "App",
1712 "fun": {
1713 "tag": "Var",
1714 "name": "q"
1715 },
1716 "arg": {
1717 "tag": "Var",
1718 "name": "q"
1719 }
1720 },
1721 "expected": true
1722 },
1723 {
1724 "name": "rand-self-25",
1725 "t1": {
1726 "tag": "Lam",
1727 "param": "v2",
1728 "body": {
1729 "tag": "App",
1730 "fun": {
1731 "tag": "Subst",
1732 "var": "v2",
1733 "repl": {
1734 "tag": "Var",
1735 "name": "f"
1736 },
1737 "body": {
1738 "tag": "Var",
1739 "name": "v2"
1740 }
1741 },
1742 "arg": {
1743 "tag": "App",
1744 "fun": {
1745 "tag": "Var",
1746 "name": "v2"
1747 },
1748 "arg": {
1749 "tag": "Var",
1750 "name": "v2"
1751 }
1752 }
1753 }
1754 },
1755 "t2": {
1756 "tag": "Lam",
1757 "param": "v2",
1758 "body": {
1759 "tag": "App",
1760 "fun": {
1761 "tag": "Subst",
1762 "var": "v2",
1763 "repl": {
1764 "tag": "Var",
1765 "name": "f"
1766 },
1767 "body": {
1768 "tag": "Var",
1769 "name": "v2"
1770 }
1771 },
1772 "arg": {
1773 "tag": "App",
1774 "fun": {
1775 "tag": "Var",
1776 "name": "v2"
1777 },
1778 "arg": {
1779 "tag": "Var",
1780 "name": "v2"
1781 }
1782 }
1783 }
1784 },
1785 "expected": true
1786 },
1787 {
1788 "name": "rand-self-26",
1789 "t1": {
1790 "tag": "Var",
1791 "name": "g"
1792 },
1793 "t2": {
1794 "tag": "Var",
1795 "name": "g"
1796 },
1797 "expected": true
1798 },
1799 {
1800 "name": "rand-self-27",
1801 "t1": {
1802 "tag": "Lam",
1803 "param": "v5",
1804 "body": {
1805 "tag": "Var",
1806 "name": "v5"
1807 }
1808 },
1809 "t2": {
1810 "tag": "Lam",
1811 "param": "v5",
1812 "body": {
1813 "tag": "Var",
1814 "name": "v5"
1815 }
1816 },
1817 "expected": true
1818 },
1819 {
1820 "name": "rand-self-28",
1821 "t1": {
1822 "tag": "Lam",
1823 "param": "v1",
1824 "body": {
1825 "tag": "Lam",
1826 "param": "v1",
1827 "body": {
1828 "tag": "Lam",
1829 "param": "v7",
1830 "body": {
1831 "tag": "Lam",
1832 "param": "v3",
1833 "body": {
1834 "tag": "Lam",
1835 "param": "v6",
1836 "body": {
1837 "tag": "Var",
1838 "name": "v1"
1839 }
1840 }
1841 }
1842 }
1843 }
1844 },
1845 "t2": {
1846 "tag": "Lam",
1847 "param": "v1",
1848 "body": {
1849 "tag": "Lam",
1850 "param": "v1",
1851 "body": {
1852 "tag": "Lam",
1853 "param": "v7",
1854 "body": {
1855 "tag": "Lam",
1856 "param": "v3",
1857 "body": {
1858 "tag": "Lam",
1859 "param": "v6",
1860 "body": {
1861 "tag": "Var",
1862 "name": "v1"
1863 }
1864 }
1865 }
1866 }
1867 }
1868 },
1869 "expected": true
1870 },
1871 {
1872 "name": "rand-self-29",
1873 "t1": {
1874 "tag": "Lam",
1875 "param": "v6",
1876 "body": {
1877 "tag": "App",
1878 "fun": {
1879 "tag": "Lam",
1880 "param": "v6",
1881 "body": {
1882 "tag": "Lam",
1883 "param": "v4",
1884 "body": {
1885 "tag": "Lam",
1886 "param": "v5",
1887 "body": {
1888 "tag": "Var",
1889 "name": "v4"
1890 }
1891 }
1892 }
1893 },
1894 "arg": {
1895 "tag": "Lam",
1896 "param": "v1",
1897 "body": {
1898 "tag": "Lam",
1899 "param": "v4",
1900 "body": {
1901 "tag": "Lam",
1902 "param": "v3",
1903 "body": {
1904 "tag": "Var",
1905 "name": "v6"
1906 }
1907 }
1908 }
1909 }
1910 }
1911 },
1912 "t2": {
1913 "tag": "Lam",
1914 "param": "v6",
1915 "body": {
1916 "tag": "App",
1917 "fun": {
1918 "tag": "Lam",
1919 "param": "v6",
1920 "body": {
1921 "tag": "Lam",
1922 "param": "v4",
1923 "body": {
1924 "tag": "Lam",
1925 "param": "v5",
1926 "body": {
1927 "tag": "Var",
1928 "name": "v4"
1929 }
1930 }
1931 }
1932 },
1933 "arg": {
1934 "tag": "Lam",
1935 "param": "v1",
1936 "body": {
1937 "tag": "Lam",
1938 "param": "v4",
1939 "body": {
1940 "tag": "Lam",
1941 "param": "v3",
1942 "body": {
1943 "tag": "Var",
1944 "name": "v6"
1945 }
1946 }
1947 }
1948 }
1949 }
1950 },
1951 "expected": true
1952 },
1953 {
1954 "name": "rand-self-30",
1955 "t1": {
1956 "tag": "App",
1957 "fun": {
1958 "tag": "Lam",
1959 "param": "v4",
1960 "body": {
1961 "tag": "App",
1962 "fun": {
1963 "tag": "Lam",
1964 "param": "v2",
1965 "body": {
1966 "tag": "Lam",
1967 "param": "v6",
1968 "body": {
1969 "tag": "Var",
1970 "name": "v4"
1971 }
1972 }
1973 },
1974 "arg": {
1975 "tag": "App",
1976 "fun": {
1977 "tag": "Subst",
1978 "var": "v4",
1979 "repl": {
1980 "tag": "Var",
1981 "name": "q"
1982 },
1983 "body": {
1984 "tag": "Var",
1985 "name": "v4"
1986 }
1987 },
1988 "arg": {
1989 "tag": "Lam",
1990 "param": "v7",
1991 "body": {
1992 "tag": "Var",
1993 "name": "v4"
1994 }
1995 }
1996 }
1997 }
1998 },
1999 "arg": {
2000 "tag": "App",
2001 "fun": {
2002 "tag": "App",
2003 "fun": {
2004 "tag": "Lam",
2005 "param": "v3",
2006 "body": {
2007 "tag": "App",
2008 "fun": {
2009 "tag": "Var",
2010 "name": "g"
2011 },
2012 "arg": {
2013 "tag": "Var",
2014 "name": "v3"
2015 }
2016 }
2017 },
2018 "arg": {
2019 "tag": "App",
2020 "fun": {
2021 "tag": "App",
2022 "fun": {
2023 "tag": "Var",
2024 "name": "p"
2025 },
2026 "arg": {
2027 "tag": "Var",
2028 "name": "f"
2029 }
2030 },
2031 "arg": {
2032 "tag": "Var",
2033 "name": "f"
2034 }
2035 }
2036 },
2037 "arg": {
2038 "tag": "Var",
2039 "name": "g"
2040 }
2041 }
2042 },
2043 "t2": {
2044 "tag": "App",
2045 "fun": {
2046 "tag": "Lam",
2047 "param": "v4",
2048 "body": {
2049 "tag": "App",
2050 "fun": {
2051 "tag": "Lam",
2052 "param": "v2",
2053 "body": {
2054 "tag": "Lam",
2055 "param": "v6",
2056 "body": {
2057 "tag": "Var",
2058 "name": "v4"
2059 }
2060 }
2061 },
2062 "arg": {
2063 "tag": "App",
2064 "fun": {
2065 "tag": "Subst",
2066 "var": "v4",
2067 "repl": {
2068 "tag": "Var",
2069 "name": "q"
2070 },
2071 "body": {
2072 "tag": "Var",
2073 "name": "v4"
2074 }
2075 },
2076 "arg": {
2077 "tag": "Lam",
2078 "param": "v7",
2079 "body": {
2080 "tag": "Var",
2081 "name": "v4"
2082 }
2083 }
2084 }
2085 }
2086 },
2087 "arg": {
2088 "tag": "App",
2089 "fun": {
2090 "tag": "App",
2091 "fun": {
2092 "tag": "Lam",
2093 "param": "v3",
2094 "body": {
2095 "tag": "App",
2096 "fun": {
2097 "tag": "Var",
2098 "name": "g"
2099 },
2100 "arg": {
2101 "tag": "Var",
2102 "name": "v3"
2103 }
2104 }
2105 },
2106 "arg": {
2107 "tag": "App",
2108 "fun": {
2109 "tag": "App",
2110 "fun": {
2111 "tag": "Var",
2112 "name": "p"
2113 },
2114 "arg": {
2115 "tag": "Var",
2116 "name": "f"
2117 }
2118 },
2119 "arg": {
2120 "tag": "Var",
2121 "name": "f"
2122 }
2123 }
2124 },
2125 "arg": {
2126 "tag": "Var",
2127 "name": "g"
2128 }
2129 }
2130 },
2131 "expected": true
2132 },
2133 {
2134 "name": "rand-self-31",
2135 "t1": {
2136 "tag": "Var",
2137 "name": "q"
2138 },
2139 "t2": {
2140 "tag": "Var",
2141 "name": "q"
2142 },
2143 "expected": true
2144 },
2145 {
2146 "name": "rand-self-32",
2147 "t1": {
2148 "tag": "Lam",
2149 "param": "v3",
2150 "body": {
2151 "tag": "Var",
2152 "name": "g"
2153 }
2154 },
2155 "t2": {
2156 "tag": "Lam",
2157 "param": "v3",
2158 "body": {
2159 "tag": "Var",
2160 "name": "g"
2161 }
2162 },
2163 "expected": true
2164 },
2165 {
2166 "name": "rand-self-33",
2167 "t1": {
2168 "tag": "App",
2169 "fun": {
2170 "tag": "App",
2171 "fun": {
2172 "tag": "Var",
2173 "name": "q"
2174 },
2175 "arg": {
2176 "tag": "Var",
2177 "name": "q"
2178 }
2179 },
2180 "arg": {
2181 "tag": "Lam",
2182 "param": "v7",
2183 "body": {
2184 "tag": "Var",
2185 "name": "v7"
2186 }
2187 }
2188 },
2189 "t2": {
2190 "tag": "App",
2191 "fun": {
2192 "tag": "App",
2193 "fun": {
2194 "tag": "Var",
2195 "name": "q"
2196 },
2197 "arg": {
2198 "tag": "Var",
2199 "name": "q"
2200 }
2201 },
2202 "arg": {
2203 "tag": "Lam",
2204 "param": "v7",
2205 "body": {
2206 "tag": "Var",
2207 "name": "v7"
2208 }
2209 }
2210 },
2211 "expected": true
2212 },
2213 {
2214 "name": "rand-self-34",
2215 "t1": {
2216 "tag": "Lam",
2217 "param": "v3",
2218 "body": {
2219 "tag": "Var",
2220 "name": "q"
2221 }
2222 },
2223 "t2": {
2224 "tag": "Lam",
2225 "param": "v3",
2226 "body": {
2227 "tag": "Var",
2228 "name": "q"
2229 }
2230 },
2231 "expected": true
2232 },
2233 {
2234 "name": "rand-self-35",
2235 "t1": {
2236 "tag": "App",
2237 "fun": {
2238 "tag": "Lam",
2239 "param": "v4",
2240 "body": {
2241 "tag": "Lam",
2242 "param": "v4",
2243 "body": {
2244 "tag": "Lam",
2245 "param": "v4",
2246 "body": {
2247 "tag": "Var",
2248 "name": "p"
2249 }
2250 }
2251 }
2252 },
2253 "arg": {
2254 "tag": "Lam",
2255 "param": "v7",
2256 "body": {
2257 "tag": "Lam",
2258 "param": "v7",
2259 "body": {
2260 "tag": "Lam",
2261 "param": "v0",
2262 "body": {
2263 "tag": "Var",
2264 "name": "v7"
2265 }
2266 }
2267 }
2268 }
2269 },
2270 "t2": {
2271 "tag": "App",
2272 "fun": {
2273 "tag": "Lam",
2274 "param": "v4",
2275 "body": {
2276 "tag": "Lam",
2277 "param": "v4",
2278 "body": {
2279 "tag": "Lam",
2280 "param": "v4",
2281 "body": {
2282 "tag": "Var",
2283 "name": "p"
2284 }
2285 }
2286 }
2287 },
2288 "arg": {
2289 "tag": "Lam",
2290 "param": "v7",
2291 "body": {
2292 "tag": "Lam",
2293 "param": "v7",
2294 "body": {
2295 "tag": "Lam",
2296 "param": "v0",
2297 "body": {
2298 "tag": "Var",
2299 "name": "v7"
2300 }
2301 }
2302 }
2303 }
2304 },
2305 "expected": true
2306 },
2307 {
2308 "name": "rand-self-36",
2309 "t1": {
2310 "tag": "Lam",
2311 "param": "v5",
2312 "body": {
2313 "tag": "Lam",
2314 "param": "v5",
2315 "body": {
2316 "tag": "App",
2317 "fun": {
2318 "tag": "Var",
2319 "name": "v5"
2320 },
2321 "arg": {
2322 "tag": "Lam",
2323 "param": "v0",
2324 "body": {
2325 "tag": "Lam",
2326 "param": "v6",
2327 "body": {
2328 "tag": "Var",
2329 "name": "v5"
2330 }
2331 }
2332 }
2333 }
2334 }
2335 },
2336 "t2": {
2337 "tag": "Lam",
2338 "param": "v5",
2339 "body": {
2340 "tag": "Lam",
2341 "param": "v5",
2342 "body": {
2343 "tag": "App",
2344 "fun": {
2345 "tag": "Var",
2346 "name": "v5"
2347 },
2348 "arg": {
2349 "tag": "Lam",
2350 "param": "v0",
2351 "body": {
2352 "tag": "Lam",
2353 "param": "v6",
2354 "body": {
2355 "tag": "Var",
2356 "name": "v5"
2357 }
2358 }
2359 }
2360 }
2361 }
2362 },
2363 "expected": true
2364 },
2365 {
2366 "name": "rand-self-37",
2367 "t1": {
2368 "tag": "Var",
2369 "name": "q"
2370 },
2371 "t2": {
2372 "tag": "Var",
2373 "name": "q"
2374 },
2375 "expected": true
2376 },
2377 {
2378 "name": "rand-self-38",
2379 "t1": {
2380 "tag": "Lam",
2381 "param": "v6",
2382 "body": {
2383 "tag": "Lam",
2384 "param": "v0",
2385 "body": {
2386 "tag": "Lam",
2387 "param": "v0",
2388 "body": {
2389 "tag": "Var",
2390 "name": "v0"
2391 }
2392 }
2393 }
2394 },
2395 "t2": {
2396 "tag": "Lam",
2397 "param": "v6",
2398 "body": {
2399 "tag": "Lam",
2400 "param": "v0",
2401 "body": {
2402 "tag": "Lam",
2403 "param": "v0",
2404 "body": {
2405 "tag": "Var",
2406 "name": "v0"
2407 }
2408 }
2409 }
2410 },
2411 "expected": true
2412 },
2413 {
2414 "name": "rand-self-39",
2415 "t1": {
2416 "tag": "Var",
2417 "name": "p"
2418 },
2419 "t2": {
2420 "tag": "Var",
2421 "name": "p"
2422 },
2423 "expected": true
2424 },
2425 {
2426 "name": "rand-renamed-0",
2427 "t1": {
2428 "tag": "Var",
2429 "name": "p"
2430 },
2431 "t2": {
2432 "tag": "Var",
2433 "name": "p"
2434 },
2435 "expected": true
2436 },
2437 {
2438 "name": "rand-renamed-1",
2439 "t1": {
2440 "tag": "Var",
2441 "name": "f"
2442 },
2443 "t2": {
2444 "tag": "Var",
2445 "name": "f"
2446 },
2447 "expected": true
2448 },
2449 {
2450 "name": "rand-renamed-2",
2451 "t1": {
2452 "tag": "Lam",
2453 "param": "v1",
2454 "body": {
2455 "tag": "Var",
2456 "name": "v1"
2457 }
2458 },
2459 "t2": {
2460 "tag": "Lam",
2461 "param": "r1",
2462 "body": {
2463 "tag": "Var",
2464 "name": "r1"
2465 }
2466 },
2467 "expected": true
2468 },
2469 {
2470 "name": "rand-renamed-3",
2471 "t1": {
2472 "tag": "Lam",
2473 "param": "v0",
2474 "body": {
2475 "tag": "App",
2476 "fun": {
2477 "tag": "Subst",
2478 "var": "v0",
2479 "repl": {
2480 "tag": "App",
2481 "fun": {
2482 "tag": "Var",
2483 "name": "v0"
2484 },
2485 "arg": {
2486 "tag": "Var",
2487 "name": "v0"
2488 }
2489 },
2490 "body": {
2491 "tag": "Var",
2492 "name": "f"
2493 }
2494 },
2495 "arg": {
2496 "tag": "Var",
2497 "name": "v0"
2498 }
2499 }
2500 },
2501 "t2": {
2502 "tag": "Lam",
2503 "param": "r1",
2504 "body": {
2505 "tag": "App",
2506 "fun": {
2507 "tag": "Subst",
2508 "var": "r2",
2509 "repl": {
2510 "tag": "App",
2511 "fun": {
2512 "tag": "Var",
2513 "name": "r1"
2514 },
2515 "arg": {
2516 "tag": "Var",
2517 "name": "r1"
2518 }
2519 },
2520 "body": {
2521 "tag": "Var",
2522 "name": "f"
2523 }
2524 },
2525 "arg": {
2526 "tag": "Var",
2527 "name": "r1"
2528 }
2529 }
2530 },
2531 "expected": true
2532 },
2533 {
2534 "name": "rand-renamed-4",
2535 "t1": {
2536 "tag": "Var",
2537 "name": "g"
2538 },
2539 "t2": {
2540 "tag": "Var",
2541 "name": "g"
2542 },
2543 "expected": true
2544 },
2545 {
2546 "name": "rand-renamed-5",
2547 "t1": {
2548 "tag": "App",
2549 "fun": {
2550 "tag": "Lam",
2551 "param": "v4",
2552 "body": {
2553 "tag": "Var",
2554 "name": "v4"
2555 }
2556 },
2557 "arg": {
2558 "tag": "Var",
2559 "name": "q"
2560 }
2561 },
2562 "t2": {
2563 "tag": "App",
2564 "fun": {
2565 "tag": "Lam",
2566 "param": "r1",
2567 "body": {
2568 "tag": "Var",
2569 "name": "r1"
2570 }
2571 },
2572 "arg": {
2573 "tag": "Var",
2574 "name": "q"
2575 }
2576 },
2577 "expected": true
2578 },
2579 {
2580 "name": "rand-renamed-6",
2581 "t1": {
2582 "tag": "Lam",
2583 "param": "v6",
2584 "body": {
2585 "tag": "Subst",
2586 "var": "v6",
2587 "repl": {
2588 "tag": "Lam",
2589 "param": "v7",
2590 "body": {
2591 "tag": "Var",
2592 "name": "z"
2593 }
2594 },
2595 "body": {
2596 "tag": "App",
2597 "fun": {
2598 "tag": "Var",
2599 "name": "v6"
2600 },
2601 "arg": {
2602 "tag": "Var",
2603 "name": "h"
2604 }
2605 }
2606 }
2607 },
2608 "t2": {
2609 "tag": "Lam",
2610 "param": "r1",
2611 "body": {
2612 "tag": "Subst",
2613 "var": "r2",
2614 "repl": {
2615 "tag": "Lam",
2616 "param": "r3",
2617 "body": {
2618 "tag": "Var",
2619 "name": "z"
2620 }
2621 },
2622 "body": {
2623 "tag": "App",
2624 "fun": {
2625 "tag": "Var",
2626 "name": "r2"
2627 },
2628 "arg": {
2629 "tag": "Var",
2630 "name": "h"
2631 }
2632 }
2633 }
2634 },
2635 "expected": true
2636 },
2637 {
2638 "name": "rand-renamed-7",
2639 "t1": {
2640 "tag": "App",
2641 "fun": {
2642 "tag": "App",
2643 "fun": {
2644 "tag": "Lam",
2645 "param": "v1",
2646 "body": {
2647 "tag": "Lam",
2648 "param": "v7",
2649 "body": {
2650 "tag": "App",
2651 "fun": {
2652 "tag": "Lam",
2653 "param": "v5",
2654 "body": {
2655 "tag": "Var",
2656 "name": "h"
2657 }
2658 },
2659 "arg": {
2660 "tag": "Lam",
2661 "param": "v4",
2662 "body": {
2663 "tag": "Var",
2664 "name": "v4"
2665 }
2666 }
2667 }
2668 }
2669 },
2670 "arg": {
2671 "tag": "Var",
2672 "name": "f"
2673 }
2674 },
2675 "arg": {
2676 "tag": "Lam",
2677 "param": "v6",
2678 "body": {
2679 "tag": "App",
2680 "fun": {
2681 "tag": "App",
2682 "fun": {
2683 "tag": "App",
2684 "fun": {
2685 "tag": "Lam",
2686 "param": "v6",
2687 "body": {
2688 "tag": "Var",
2689 "name": "v6"
2690 }
2691 },
2692 "arg": {
2693 "tag": "App",
2694 "fun": {
2695 "tag": "Var",
2696 "name": "v6"
2697 },
2698 "arg": {
2699 "tag": "Var",
2700 "name": "v6"
2701 }
2702 }
2703 },
2704 "arg": {
2705 "tag": "Lam",
2706 "param": "v6",
2707 "body": {
2708 "tag": "Var",
2709 "name": "v6"
2710 }
2711 }
2712 },
2713 "arg": {
2714 "tag": "Lam",
2715 "param": "v4",
2716 "body": {
2717 "tag": "Var",
2718 "name": "v4"
2719 }
2720 }
2721 }
2722 }
2723 },
2724 "t2": {
2725 "tag": "App",
2726 "fun": {
2727 "tag": "App",
2728 "fun": {
2729 "tag": "Lam",
2730 "param": "r1",
2731 "body": {
2732 "tag": "Lam",
2733 "param": "r2",
2734 "body": {
2735 "tag": "App",
2736 "fun": {
2737 "tag": "Lam",
2738 "param": "r3",
2739 "body": {
2740 "tag": "Var",
2741 "name": "h"
2742 }
2743 },
2744 "arg": {
2745 "tag": "Lam",
2746 "param": "r4",
2747 "body": {
2748 "tag": "Var",
2749 "name": "r4"
2750 }
2751 }
2752 }
2753 }
2754 },
2755 "arg": {
2756 "tag": "Var",
2757 "name": "f"
2758 }
2759 },
2760 "arg": {
2761 "tag": "Lam",
2762 "param": "r5",
2763 "body": {
2764 "tag": "App",
2765 "fun": {
2766 "tag": "App",
2767 "fun": {
2768 "tag": "App",
2769 "fun": {
2770 "tag": "Lam",
2771 "param": "r6",
2772 "body": {
2773 "tag": "Var",
2774 "name": "r6"
2775 }
2776 },
2777 "arg": {
2778 "tag": "App",
2779 "fun": {
2780 "tag": "Var",
2781 "name": "r5"
2782 },
2783 "arg": {
2784 "tag": "Var",
2785 "name": "r5"
2786 }
2787 }
2788 },
2789 "arg": {
2790 "tag": "Lam",
2791 "param": "r7",
2792 "body": {
2793 "tag": "Var",
2794 "name": "r7"
2795 }
2796 }
2797 },
2798 "arg": {
2799 "tag": "Lam",
2800 "param": "r8",
2801 "body": {
2802 "tag": "Var",
2803 "name": "r8"
2804 }
2805 }
2806 }
2807 }
2808 },
2809 "expected": true
2810 },
2811 {
2812 "name": "rand-renamed-8",
2813 "t1": {
2814 "tag": "Var",
2815 "name": "h"
2816 },
2817 "t2": {
2818 "tag": "Var",
2819 "name": "h"
2820 },
2821 "expected": true
2822 },
2823 {
2824 "name": "rand-renamed-9",
2825 "t1": {
2826 "tag": "Lam",
2827 "param": "v4",
2828 "body": {
2829 "tag": "Lam",
2830 "param": "v4",
2831 "body": {
2832 "tag": "Lam",
2833 "param": "v4",
2834 "body": {
2835 "tag": "Subst",
2836 "var": "v4",
2837 "repl": {
2838 "tag": "Var",
2839 "name": "h"
2840 },
2841 "body": {
2842 "tag": "Var",
2843 "name": "v4"
2844 }
2845 }
2846 }
2847 }
2848 },
2849 "t2": {
2850 "tag": "Lam",
2851 "param": "r1",
2852 "body": {
2853 "tag": "Lam",
2854 "param": "r2",
2855 "body": {
2856 "tag": "Lam",
2857 "param": "r3",
2858 "body": {
2859 "tag": "Subst",
2860 "var": "r4",
2861 "repl": {
2862 "tag": "Var",
2863 "name": "h"
2864 },
2865 "body": {
2866 "tag": "Var",
2867 "name": "r4"
2868 }
2869 }
2870 }
2871 }
2872 },
2873 "expected": true
2874 },
2875 {
2876 "name": "rand-renamed-10",
2877 "t1": {
2878 "tag": "Lam",
2879 "param": "v0",
2880 "body": {
2881 "tag": "Lam",
2882 "param": "v1",
2883 "body": {
2884 "tag": "Var",
2885 "name": "v0"
2886 }
2887 }
2888 },
2889 "t2": {
2890 "tag": "Lam",
2891 "param": "r1",
2892 "body": {
2893 "tag": "Lam",
2894 "param": "r2",
2895 "body": {
2896 "tag": "Var",
2897 "name": "r1"
2898 }
2899 }
2900 },
2901 "expected": true
2902 },
2903 {
2904 "name": "rand-renamed-11",
2905 "t1": {
2906 "tag": "Lam",
2907 "param": "v4",
2908 "body": {
2909 "tag": "Lam",
2910 "param": "v4",
2911 "body": {
2912 "tag": "App",
2913 "fun": {
2914 "tag": "Var",
2915 "name": "p"
2916 },
2917 "arg": {
2918 "tag": "Var",
2919 "name": "v4"
2920 }
2921 }
2922 }
2923 },
2924 "t2": {
2925 "tag": "Lam",
2926 "param": "r1",
2927 "body": {
2928 "tag": "Lam",
2929 "param": "r2",
2930 "body": {
2931 "tag": "App",
2932 "fun": {
2933 "tag": "Var",
2934 "name": "p"
2935 },
2936 "arg": {
2937 "tag": "Var",
2938 "name": "r2"
2939 }
2940 }
2941 }
2942 },
2943 "expected": true
2944 },
2945 {
2946 "name": "rand-renamed-12",
2947 "t1": {
2948 "tag": "Lam",
2949 "param": "v0",
2950 "body": {
2951 "tag": "App",
2952 "fun": {
2953 "tag": "Var",
2954 "name": "g"
2955 },
2956 "arg": {
2957 "tag": "Lam",
2958 "param": "v0",
2959 "body": {
2960 "tag": "Lam",
2961 "param": "v0",
2962 "body": {
2963 "tag": "Lam",
2964 "param": "v7",
2965 "body": {
2966 "tag": "Lam",
2967 "param": "v0",
2968 "body": {
2969 "tag": "Var",
2970 "name": "v7"
2971 }
2972 }
2973 }
2974 }
2975 }
2976 }
2977 },
2978 "t2": {
2979 "tag": "Lam",
2980 "param": "r1",
2981 "body": {
2982 "tag": "App",
2983 "fun": {
2984 "tag": "Var",
2985 "name": "g"
2986 },
2987 "arg": {
2988 "tag": "Lam",
2989 "param": "r2",
2990 "body": {
2991 "tag": "Lam",
2992 "param": "r3",
2993 "body": {
2994 "tag": "Lam",
2995 "param": "r4",
2996 "body": {
2997 "tag": "Lam",
2998 "param": "r5",
2999 "body": {
3000 "tag": "Var",
3001 "name": "r4"
3002 }
3003 }
3004 }
3005 }
3006 }
3007 }
3008 },
3009 "expected": true
3010 },
3011 {
3012 "name": "rand-renamed-13",
3013 "t1": {
3014 "tag": "App",
3015 "fun": {
3016 "tag": "Var",
3017 "name": "q"
3018 },
3019 "arg": {
3020 "tag": "App",
3021 "fun": {
3022 "tag": "Lam",
3023 "param": "v3",
3024 "body": {
3025 "tag": "Var",
3026 "name": "v3"
3027 }
3028 },
3029 "arg": {
3030 "tag": "Var",
3031 "name": "f"
3032 }
3033 }
3034 },
3035 "t2": {
3036 "tag": "App",
3037 "fun": {
3038 "tag": "Var",
3039 "name": "q"
3040 },
3041 "arg": {
3042 "tag": "App",
3043 "fun": {
3044 "tag": "Lam",
3045 "param": "r1",
3046 "body": {
3047 "tag": "Var",
3048 "name": "r1"
3049 }
3050 },
3051 "arg": {
3052 "tag": "Var",
3053 "name": "f"
3054 }
3055 }
3056 },
3057 "expected": true
3058 },
3059 {
3060 "name": "rand-renamed-14",
3061 "t1": {
3062 "tag": "Lam",
3063 "param": "v4",
3064 "body": {
3065 "tag": "App",
3066 "fun": {
3067 "tag": "Var",
3068 "name": "v4"
3069 },
3070 "arg": {
3071 "tag": "App",
3072 "fun": {
3073 "tag": "Var",
3074 "name": "v4"
3075 },
3076 "arg": {
3077 "tag": "Var",
3078 "name": "v4"
3079 }
3080 }
3081 }
3082 },
3083 "t2": {
3084 "tag": "Lam",
3085 "param": "r1",
3086 "body": {
3087 "tag": "App",
3088 "fun": {
3089 "tag": "Var",
3090 "name": "r1"
3091 },
3092 "arg": {
3093 "tag": "App",
3094 "fun": {
3095 "tag": "Var",
3096 "name": "r1"
3097 },
3098 "arg": {
3099 "tag": "Var",
3100 "name": "r1"
3101 }
3102 }
3103 }
3104 },
3105 "expected": true
3106 },
3107 {
3108 "name": "rand-renamed-15",
3109 "t1": {
3110 "tag": "Var",
3111 "name": "q"
3112 },
3113 "t2": {
3114 "tag": "Var",
3115 "name": "q"
3116 },
3117 "expected": true
3118 },
3119 {
3120 "name": "rand-renamed-16",
3121 "t1": {
3122 "tag": "Lam",
3123 "param": "v3",
3124 "body": {
3125 "tag": "Var",
3126 "name": "v3"
3127 }
3128 },
3129 "t2": {
3130 "tag": "Lam",
3131 "param": "r1",
3132 "body": {
3133 "tag": "Var",
3134 "name": "r1"
3135 }
3136 },
3137 "expected": true
3138 },
3139 {
3140 "name": "rand-renamed-17",
3141 "t1": {
3142 "tag": "App",
3143 "fun": {
3144 "tag": "Lam",
3145 "param": "v7",
3146 "body": {
3147 "tag": "Var",
3148 "name": "q"
3149 }
3150 },
3151 "arg": {
3152 "tag": "Lam",
3153 "param": "v7",
3154 "body": {
3155 "tag": "Var",
3156 "name": "v7"
3157 }
3158 }
3159 },
3160 "t2": {
3161 "tag": "App",
3162 "fun": {
3163 "tag": "Lam",
3164 "param": "r1",
3165 "body": {
3166 "tag": "Var",
3167 "name": "q"
3168 }
3169 },
3170 "arg": {
3171 "tag": "Lam",
3172 "param": "r2",
3173 "body": {
3174 "tag": "Var",
3175 "name": "r2"
3176 }
3177 }
3178 },
3179 "expected": true
3180 },
3181 {
3182 "name": "rand-renamed-18",
3183 "t1": {
3184 "tag": "Lam",
3185 "param": "v1",
3186 "body": {
3187 "tag": "Var",
3188 "name": "v1"
3189 }
3190 },
3191 "t2": {
3192 "tag": "Lam",
3193 "param": "r1",
3194 "body": {
3195 "tag": "Var",
3196 "name": "r1"
3197 }
3198 },
3199 "expected": true
3200 },
3201 {
3202 "name": "rand-renamed-19",
3203 "t1": {
3204 "tag": "App",
3205 "fun": {
3206 "tag": "Var",
3207 "name": "f"
3208 },
3209 "arg": {
3210 "tag": "App",
3211 "fun": {
3212 "tag": "Lam",
3213 "param": "v6",
3214 "body": {
3215 "tag": "Var",
3216 "name": "v6"
3217 }
3218 },
3219 "arg": {
3220 "tag": "App",
3221 "fun": {
3222 "tag": "Lam",
3223 "param": "v3",
3224 "body": {
3225 "tag": "App",
3226 "fun": {
3227 "tag": "Var",
3228 "name": "v3"
3229 },
3230 "arg": {
3231 "tag": "Var",
3232 "name": "v3"
3233 }
3234 }
3235 },
3236 "arg": {
3237 "tag": "Lam",
3238 "param": "v2",
3239 "body": {
3240 "tag": "Var",
3241 "name": "v2"
3242 }
3243 }
3244 }
3245 }
3246 },
3247 "t2": {
3248 "tag": "App",
3249 "fun": {
3250 "tag": "Var",
3251 "name": "f"
3252 },
3253 "arg": {
3254 "tag": "App",
3255 "fun": {
3256 "tag": "Lam",
3257 "param": "r1",
3258 "body": {
3259 "tag": "Var",
3260 "name": "r1"
3261 }
3262 },
3263 "arg": {
3264 "tag": "App",
3265 "fun": {
3266 "tag": "Lam",
3267 "param": "r2",
3268 "body": {
3269 "tag": "App",
3270 "fun": {
3271 "tag": "Var",
3272 "name": "r2"
3273 },
3274 "arg": {
3275 "tag": "Var",
3276 "name": "r2"
3277 }
3278 }
3279 },
3280 "arg": {
3281 "tag": "Lam",
3282 "param": "r3",
3283 "body": {
3284 "tag": "Var",
3285 "name": "r3"
3286 }
3287 }
3288 }
3289 }
3290 },
3291 "expected": true
3292 },
3293 {
3294 "name": "rand-renamed-20",
3295 "t1": {
3296 "tag": "Lam",
3297 "param": "v3",
3298 "body": {
3299 "tag": "Var",
3300 "name": "v3"
3301 }
3302 },
3303 "t2": {
3304 "tag": "Lam",
3305 "param": "r1",
3306 "body": {
3307 "tag": "Var",
3308 "name": "r1"
3309 }
3310 },
3311 "expected": true
3312 },
3313 {
3314 "name": "rand-renamed-21",
3315 "t1": {
3316 "tag": "Lam",
3317 "param": "v1",
3318 "body": {
3319 "tag": "Subst",
3320 "var": "v1",
3321 "repl": {
3322 "tag": "App",
3323 "fun": {
3324 "tag": "App",
3325 "fun": {
3326 "tag": "Var",
3327 "name": "v1"
3328 },
3329 "arg": {
3330 "tag": "Subst",
3331 "var": "v1",
3332 "repl": {
3333 "tag": "Var",
3334 "name": "v1"
3335 },
3336 "body": {
3337 "tag": "Var",
3338 "name": "p"
3339 }
3340 }
3341 },
3342 "arg": {
3343 "tag": "Lam",
3344 "param": "v4",
3345 "body": {
3346 "tag": "Var",
3347 "name": "h"
3348 }
3349 }
3350 },
3351 "body": {
3352 "tag": "Var",
3353 "name": "v1"
3354 }
3355 }
3356 },
3357 "t2": {
3358 "tag": "Lam",
3359 "param": "r1",
3360 "body": {
3361 "tag": "Subst",
3362 "var": "r2",
3363 "repl": {
3364 "tag": "App",
3365 "fun": {
3366 "tag": "App",
3367 "fun": {
3368 "tag": "Var",
3369 "name": "r1"
3370 },
3371 "arg": {
3372 "tag": "Subst",
3373 "var": "r3",
3374 "repl": {
3375 "tag": "Var",
3376 "name": "r1"
3377 },
3378 "body": {
3379 "tag": "Var",
3380 "name": "p"
3381 }
3382 }
3383 },
3384 "arg": {
3385 "tag": "Lam",
3386 "param": "r4",
3387 "body": {
3388 "tag": "Var",
3389 "name": "h"
3390 }
3391 }
3392 },
3393 "body": {
3394 "tag": "Var",
3395 "name": "r2"
3396 }
3397 }
3398 },
3399 "expected": true
3400 },
3401 {
3402 "name": "rand-renamed-22",
3403 "t1": {
3404 "tag": "Lam",
3405 "param": "v7",
3406 "body": {
3407 "tag": "Lam",
3408 "param": "v6",
3409 "body": {
3410 "tag": "App",
3411 "fun": {
3412 "tag": "Lam",
3413 "param": "v6",
3414 "body": {
3415 "tag": "Var",
3416 "name": "f"
3417 }
3418 },
3419 "arg": {
3420 "tag": "Lam",
3421 "param": "v6",
3422 "body": {
3423 "tag": "Var",
3424 "name": "v6"
3425 }
3426 }
3427 }
3428 }
3429 },
3430 "t2": {
3431 "tag": "Lam",
3432 "param": "r1",
3433 "body": {
3434 "tag": "Lam",
3435 "param": "r2",
3436 "body": {
3437 "tag": "App",
3438 "fun": {
3439 "tag": "Lam",
3440 "param": "r3",
3441 "body": {
3442 "tag": "Var",
3443 "name": "f"
3444 }
3445 },
3446 "arg": {
3447 "tag": "Lam",
3448 "param": "r4",
3449 "body": {
3450 "tag": "Var",
3451 "name": "r4"
3452 }
3453 }
3454 }
3455 }
3456 },
3457 "expected": true
3458 },
3459 {
3460 "name": "rand-renamed-23",
3461 "t1": {
3462 "tag": "Subst",
3463 "var": "u",
3464 "repl": {
3465 "tag": "App",
3466 "fun": {
3467 "tag": "Var",
3468 "name": "p"
3469 },
3470 "arg": {
3471 "tag": "Lam",
3472 "param": "v7",
3473 "body": {
3474 "tag": "Lam",
3475 "param": "v7",
3476 "body": {
3477 "tag": "Var",
3478 "name": "h"
3479 }
3480 }
3481 }
3482 },
3483 "body": {
3484 "tag": "Lam",
3485 "param": "v6",
3486 "body": {
3487 "tag": "App",
3488 "fun": {
3489 "tag": "Var",
3490 "name": "v6"
3491 },
3492 "arg": {
3493 "tag": "Var",
3494 "name": "v6"
3495 }
3496 }
3497 }
3498 },
3499 "t2": {
3500 "tag": "Subst",
3501 "var": "r1",
3502 "repl": {
3503 "tag": "App",
3504 "fun": {
3505 "tag": "Var",
3506 "name": "p"
3507 },
3508 "arg": {
3509 "tag": "Lam",
3510 "param": "r2",
3511 "body": {
3512 "tag": "Lam",
3513 "param": "r3",
3514 "body": {
3515 "tag": "Var",
3516 "name": "h"
3517 }
3518 }
3519 }
3520 },
3521 "body": {
3522 "tag": "Lam",
3523 "param": "r4",
3524 "body": {
3525 "tag": "App",
3526 "fun": {
3527 "tag": "Var",
3528 "name": "r4"
3529 },
3530 "arg": {
3531 "tag": "Var",
3532 "name": "r4"
3533 }
3534 }
3535 }
3536 },
3537 "expected": true
3538 },
3539 {
3540 "name": "rand-renamed-24",
3541 "t1": {
3542 "tag": "App",
3543 "fun": {
3544 "tag": "App",
3545 "fun": {
3546 "tag": "Lam",
3547 "param": "v1",
3548 "body": {
3549 "tag": "Var",
3550 "name": "v1"
3551 }
3552 },
3553 "arg": {
3554 "tag": "Var",
3555 "name": "f"
3556 }
3557 },
3558 "arg": {
3559 "tag": "Lam",
3560 "param": "v4",
3561 "body": {
3562 "tag": "Var",
3563 "name": "f"
3564 }
3565 }
3566 },
3567 "t2": {
3568 "tag": "App",
3569 "fun": {
3570 "tag": "App",
3571 "fun": {
3572 "tag": "Lam",
3573 "param": "r1",
3574 "body": {
3575 "tag": "Var",
3576 "name": "r1"
3577 }
3578 },
3579 "arg": {
3580 "tag": "Var",
3581 "name": "f"
3582 }
3583 },
3584 "arg": {
3585 "tag": "Lam",
3586 "param": "r2",
3587 "body": {
3588 "tag": "Var",
3589 "name": "f"
3590 }
3591 }
3592 },
3593 "expected": true
3594 },
3595 {
3596 "name": "rand-renamed-25",
3597 "t1": {
3598 "tag": "Lam",
3599 "param": "v6",
3600 "body": {
3601 "tag": "Lam",
3602 "param": "v2",
3603 "body": {
3604 "tag": "Lam",
3605 "param": "v2",
3606 "body": {
3607 "tag": "App",
3608 "fun": {
3609 "tag": "Var",
3610 "name": "p"
3611 },
3612 "arg": {
3613 "tag": "App",
3614 "fun": {
3615 "tag": "Var",
3616 "name": "v2"
3617 },
3618 "arg": {
3619 "tag": "Var",
3620 "name": "v2"
3621 }
3622 }
3623 }
3624 }
3625 }
3626 },
3627 "t2": {
3628 "tag": "Lam",
3629 "param": "r1",
3630 "body": {
3631 "tag": "Lam",
3632 "param": "r2",
3633 "body": {
3634 "tag": "Lam",
3635 "param": "r3",
3636 "body": {
3637 "tag": "App",
3638 "fun": {
3639 "tag": "Var",
3640 "name": "p"
3641 },
3642 "arg": {
3643 "tag": "App",
3644 "fun": {
3645 "tag": "Var",
3646 "name": "r3"
3647 },
3648 "arg": {
3649 "tag": "Var",
3650 "name": "r3"
3651 }
3652 }
3653 }
3654 }
3655 }
3656 },
3657 "expected": true
3658 },
3659 {
3660 "name": "rand-renamed-26",
3661 "t1": {
3662 "tag": "Lam",
3663 "param": "v5",
3664 "body": {
3665 "tag": "Var",
3666 "name": "p"
3667 }
3668 },
3669 "t2": {
3670 "tag": "Lam",
3671 "param": "r1",
3672 "body": {
3673 "tag": "Var",
3674 "name": "p"
3675 }
3676 },
3677 "expected": true
3678 },
3679 {
3680 "name": "rand-renamed-27",
3681 "t1": {
3682 "tag": "App",
3683 "fun": {
3684 "tag": "Var",
3685 "name": "p"
3686 },
3687 "arg": {
3688 "tag": "Lam",
3689 "param": "v6",
3690 "body": {
3691 "tag": "App",
3692 "fun": {
3693 "tag": "Var",
3694 "name": "p"
3695 },
3696 "arg": {
3697 "tag": "Lam",
3698 "param": "v0",
3699 "body": {
3700 "tag": "Var",
3701 "name": "v0"
3702 }
3703 }
3704 }
3705 }
3706 },
3707 "t2": {
3708 "tag": "App",
3709 "fun": {
3710 "tag": "Var",
3711 "name": "p"
3712 },
3713 "arg": {
3714 "tag": "Lam",
3715 "param": "r1",
3716 "body": {
3717 "tag": "App",
3718 "fun": {
3719 "tag": "Var",
3720 "name": "p"
3721 },
3722 "arg": {
3723 "tag": "Lam",
3724 "param": "r2",
3725 "body": {
3726 "tag": "Var",
3727 "name": "r2"
3728 }
3729 }
3730 }
3731 }
3732 },
3733 "expected": true
3734 },
3735 {
3736 "name": "rand-renamed-28",
3737 "t1": {
3738 "tag": "App",
3739 "fun": {
3740 "tag": "App",
3741 "fun": {
3742 "tag": "App",
3743 "fun": {
3744 "tag": "App",
3745 "fun": {
3746 "tag": "Var",
3747 "name": "f"
3748 },
3749 "arg": {
3750 "tag": "Var",
3751 "name": "p"
3752 }
3753 },
3754 "arg": {
3755 "tag": "Lam",
3756 "param": "v5",
3757 "body": {
3758 "tag": "Var",
3759 "name": "v5"
3760 }
3761 }
3762 },
3763 "arg": {
3764 "tag": "Var",
3765 "name": "h"
3766 }
3767 },
3768 "arg": {
3769 "tag": "Var",
3770 "name": "g"
3771 }
3772 },
3773 "t2": {
3774 "tag": "App",
3775 "fun": {
3776 "tag": "App",
3777 "fun": {
3778 "tag": "App",
3779 "fun": {
3780 "tag": "App",
3781 "fun": {
3782 "tag": "Var",
3783 "name": "f"
3784 },
3785 "arg": {
3786 "tag": "Var",
3787 "name": "p"
3788 }
3789 },
3790 "arg": {
3791 "tag": "Lam",
3792 "param": "r1",
3793 "body": {
3794 "tag": "Var",
3795 "name": "r1"
3796 }
3797 }
3798 },
3799 "arg": {
3800 "tag": "Var",
3801 "name": "h"
3802 }
3803 },
3804 "arg": {
3805 "tag": "Var",
3806 "name": "g"
3807 }
3808 },
3809 "expected": true
3810 },
3811 {
3812 "name": "rand-renamed-29",
3813 "t1": {
3814 "tag": "Lam",
3815 "param": "v5",
3816 "body": {
3817 "tag": "App",
3818 "fun": {
3819 "tag": "Var",
3820 "name": "p"
3821 },
3822 "arg": {
3823 "tag": "Var",
3824 "name": "h"
3825 }
3826 }
3827 },
3828 "t2": {
3829 "tag": "Lam",
3830 "param": "r1",
3831 "body": {
3832 "tag": "App",
3833 "fun": {
3834 "tag": "Var",
3835 "name": "p"
3836 },
3837 "arg": {
3838 "tag": "Var",
3839 "name": "h"
3840 }
3841 }
3842 },
3843 "expected": true
3844 },
3845 {
3846 "name": "rand-any-0",
3847 "t1": {
3848 "tag": "Var",
3849 "name": "p"
3850 },
3851 "t2": {
3852 "tag": "Var",
3853 "name": "g"
3854 },
3855 "expected": null
3856 },
3857 {
3858 "name": "rand-any-1",
3859 "t1": {
3860 "tag": "Var",
3861 "name": "g"
3862 },
3863 "t2": {
3864 "tag": "Var",
3865 "name": "p"
3866 },
3867 "expected": null
3868 },
3869 {
3870 "name": "rand-any-2",
3871 "t1": {
3872 "tag": "Var",
3873 "name": "q"
3874 },
3875 "t2": {
3876 "tag": "Lam",
3877 "param": "v6",
3878 "body": {
3879 "tag": "Lam",
3880 "param": "v7",
3881 "body": {
3882 "tag": "Lam",
3883 "param": "v4",
3884 "body": {
3885 "tag": "App",
3886 "fun": {
3887 "tag": "Var",
3888 "name": "g"
3889 },
3890 "arg": {
3891 "tag": "App",
3892 "fun": {
3893 "tag": "Var",
3894 "name": "v7"
3895 },
3896 "arg": {
3897 "tag": "Var",
3898 "name": "v6"
3899 }
3900 }
3901 }
3902 }
3903 }
3904 },
3905 "expected": null
3906 },
3907 {
3908 "name": "rand-any-3",
3909 "t1": {
3910 "tag": "App",
3911 "fun": {
3912 "tag": "App",
3913 "fun": {
3914 "tag": "Subst",
3915 "var": "u",
3916 "repl": {
3917 "tag": "Lam",
3918 "param": "v0",
3919 "body": {
3920 "tag": "Lam",
3921 "param": "v1",
3922 "body": {
3923 "tag": "Var",
3924 "name": "p"
3925 }
3926 }
3927 },
3928 "body": {
3929 "tag": "App",
3930 "fun": {
3931 "tag": "Var",
3932 "name": "q"
3933 },
3934 "arg": {
3935 "tag": "Lam",
3936 "param": "v2",
3937 "body": {
3938 "tag": "Var",
3939 "name": "v2"
3940 }
3941 }
3942 }
3943 },
3944 "arg": {
3945 "tag": "Var",
3946 "name": "q"
3947 }
3948 },
3949 "arg": {
3950 "tag": "Lam",
3951 "param": "v4",
3952 "body": {
3953 "tag": "Lam",
3954 "param": "v4",
3955 "body": {
3956 "tag": "Lam",
3957 "param": "v4",
3958 "body": {
3959 "tag": "Lam",
3960 "param": "v5",
3961 "body": {
3962 "tag": "Var",
3963 "name": "f"
3964 }
3965 }
3966 }
3967 }
3968 }
3969 },
3970 "t2": {
3971 "tag": "Var",
3972 "name": "p"
3973 },
3974 "expected": null
3975 },
3976 {
3977 "name": "rand-any-4",
3978 "t1": {
3979 "tag": "Lam",
3980 "param": "v3",
3981 "body": {
3982 "tag": "App",
3983 "fun": {
3984 "tag": "Lam",
3985 "param": "v3",
3986 "body": {
3987 "tag": "Var",
3988 "name": "v3"
3989 }
3990 },
3991 "arg": {
3992 "tag": "Lam",
3993 "param": "v3",
3994 "body": {
3995 "tag": "App",
3996 "fun": {
3997 "tag": "Lam",
3998 "param": "v0",
3999 "body": {
4000 "tag": "Var",
4001 "name": "z"
4002 }
4003 },
4004 "arg": {
4005 "tag": "Var",
4006 "name": "v3"
4007 }
4008 }
4009 }
4010 }
4011 },
4012 "t2": {
4013 "tag": "Lam",
4014 "param": "v0",
4015 "body": {
4016 "tag": "Lam",
4017 "param": "v0",
4018 "body": {
4019 "tag": "Subst",
4020 "var": "v0",
4021 "repl": {
4022 "tag": "Lam",
4023 "param": "v1",
4024 "body": {
4025 "tag": "Var",
4026 "name": "v0"
4027 }
4028 },
4029 "body": {
4030 "tag": "Subst",
4031 "var": "v0",
4032 "repl": {
4033 "tag": "Var",
4034 "name": "q"
4035 },
4036 "body": {
4037 "tag": "Lam",
4038 "param": "v0",
4039 "body": {
4040 "tag": "Var",
4041 "name": "p"
4042 }
4043 }
4044 }
4045 }
4046 }
4047 },
4048 "expected": null
4049 },
4050 {
4051 "name": "rand-any-5",
4052 "t1": {
4053 "tag": "Lam",
4054 "param": "v1",
4055 "body": {
4056 "tag": "App",
4057 "fun": {
4058 "tag": "Lam",
4059 "param": "v1",
4060 "body": {
4061 "tag": "Lam",
4062 "param": "v1",
4063 "body": {
4064 "tag": "Lam",
4065 "param": "v4",
4066 "body": {
4067 "tag": "Var",
4068 "name": "v4"
4069 }
4070 }
4071 }
4072 },
4073 "arg": {
4074 "tag": "Lam",
4075 "param": "v3",
4076 "body": {
4077 "tag": "Lam",
4078 "param": "v6",
4079 "body": {
4080 "tag": "Lam",
4081 "param": "v6",
4082 "body": {
4083 "tag": "Var",
4084 "name": "v6"
4085 }
4086 }
4087 }
4088 }
4089 }
4090 },
4091 "t2": {
4092 "tag": "Lam",
4093 "param": "v4",
4094 "body": {
4095 "tag": "Lam",
4096 "param": "v4",
4097 "body": {
4098 "tag": "Lam",
4099 "param": "v1",
4100 "body": {
4101 "tag": "Lam",
4102 "param": "v5",
4103 "body": {
4104 "tag": "Var",
4105 "name": "v1"
4106 }
4107 }
4108 }
4109 }
4110 },
4111 "expected": null
4112 },
4113 {
4114 "name": "rand-any-6",
4115 "t1": {
4116 "tag": "App",
4117 "fun": {
4118 "tag": "Var",
4119 "name": "p"
4120 },
4121 "arg": {
4122 "tag": "Var",
4123 "name": "f"
4124 }
4125 },
4126 "t2": {
4127 "tag": "Var",
4128 "name": "q"
4129 },
4130 "expected": null
4131 },
4132 {
4133 "name": "rand-any-7",
4134 "t1": {
4135 "tag": "Lam",
4136 "param": "v1",
4137 "body": {
4138 "tag": "App",
4139 "fun": {
4140 "tag": "App",
4141 "fun": {
4142 "tag": "Lam",
4143 "param": "v5",
4144 "body": {
4145 "tag": "Lam",
4146 "param": "v1",
4147 "body": {
4148 "tag": "Var",
4149 "name": "v1"
4150 }
4151 }
4152 },
4153 "arg": {
4154 "tag": "Var",
4155 "name": "v1"
4156 }
4157 },
4158 "arg": {
4159 "tag": "App",
4160 "fun": {
4161 "tag": "Subst",
4162 "var": "v1",
4163 "repl": {
4164 "tag": "Var",
4165 "name": "v1"
4166 },
4167 "body": {
4168 "tag": "Lam",
4169 "param": "v1",
4170 "body": {
4171 "tag": "Var",
4172 "name": "v1"
4173 }
4174 }
4175 },
4176 "arg": {
4177 "tag": "Lam",
4178 "param": "v0",
4179 "body": {
4180 "tag": "Lam",
4181 "param": "v6",
4182 "body": {
4183 "tag": "Var",
4184 "name": "v0"
4185 }
4186 }
4187 }
4188 }
4189 }
4190 },
4191 "t2": {
4192 "tag": "Lam",
4193 "param": "v4",
4194 "body": {
4195 "tag": "Var",
4196 "name": "v4"
4197 }
4198 },
4199 "expected": null
4200 },
4201 {
4202 "name": "rand-any-8",
4203 "t1": {
4204 "tag": "Var",
4205 "name": "g"
4206 },
4207 "t2": {
4208 "tag": "Lam",
4209 "param": "v0",
4210 "body": {
4211 "tag": "App",
4212 "fun": {
4213 "tag": "App",
4214 "fun": {
4215 "tag": "Lam",
4216 "param": "v0",
4217 "body": {
4218 "tag": "Lam",
4219 "param": "v0",
4220 "body": {
4221 "tag": "Var",
4222 "name": "v0"
4223 }
4224 }
4225 },
4226 "arg": {
4227 "tag": "Lam",
4228 "param": "v0",
4229 "body": {
4230 "tag": "Lam",
4231 "param": "v0",
4232 "body": {
4233 "tag": "Var",
4234 "name": "v0"
4235 }
4236 }
4237 }
4238 },
4239 "arg": {
4240 "tag": "Lam",
4241 "param": "v0",
4242 "body": {
4243 "tag": "Var",
4244 "name": "p"
4245 }
4246 }
4247 }
4248 },
4249 "expected": null
4250 },
4251 {
4252 "name": "rand-any-9",
4253 "t1": {
4254 "tag": "App",
4255 "fun": {
4256 "tag": "App",
4257 "fun": {
4258 "tag": "Lam",
4259 "param": "v6",
4260 "body": {
4261 "tag": "Var",
4262 "name": "f"
4263 }
4264 },
4265 "arg": {
4266 "tag": "Subst",
4267 "var": "u",
4268 "repl": {
4269 "tag": "Lam",
4270 "param": "v6",
4271 "body": {
4272 "tag": "App",
4273 "fun": {
4274 "tag": "Var",
4275 "name": "v6"
4276 },
4277 "arg": {
4278 "tag": "Var",
4279 "name": "v6"
4280 }
4281 }
4282 },
4283 "body": {
4284 "tag": "Lam",
4285 "param": "v7",
4286 "body": {
4287 "tag": "Var",
4288 "name": "v7"
4289 }
4290 }
4291 }
4292 },
4293 "arg": {
4294 "tag": "Lam",
4295 "param": "v1",
4296 "body": {
4297 "tag": "Lam",
4298 "param": "v1",
4299 "body": {
4300 "tag": "Lam",
4301 "param": "v1",
4302 "body": {
4303 "tag": "Lam",
4304 "param": "v1",
4305 "body": {
4306 "tag": "Var",
4307 "name": "v1"
4308 }
4309 }
4310 }
4311 }
4312 }
4313 },
4314 "t2": {
4315 "tag": "App",
4316 "fun": {
4317 "tag": "Var",
4318 "name": "h"
4319 },
4320 "arg": {
4321 "tag": "Var",
4322 "name": "g"
4323 }
4324 },
4325 "expected": null
4326 },
4327 {
4328 "name": "rand-any-10",
4329 "t1": {
4330 "tag": "Lam",
4331 "param": "v2",
4332 "body": {
4333 "tag": "Lam",
4334 "param": "v2",
4335 "body": {
4336 "tag": "Var",
4337 "name": "v2"
4338 }
4339 }
4340 },
4341 "t2": {
4342 "tag": "Var",
4343 "name": "p"
4344 },
4345 "expected": null
4346 },
4347 {
4348 "name": "rand-any-11",
4349 "t1": {
4350 "tag": "App",
4351 "fun": {
4352 "tag": "App",
4353 "fun": {
4354 "tag": "Var",
4355 "name": "q"
4356 },
4357 "arg": {
4358 "tag": "Lam",
4359 "param": "v5",
4360 "body": {
4361 "tag": "Lam",
4362 "param": "v5",
4363 "body": {
4364 "tag": "App",
4365 "fun": {
4366 "tag": "Var",
4367 "name": "v5"
4368 },
4369 "arg": {
4370 "tag": "Var",
4371 "name": "v5"
4372 }
4373 }
4374 }
4375 }
4376 },
4377 "arg": {
4378 "tag": "Subst",
4379 "var": "u",
4380 "repl": {
4381 "tag": "Lam",
4382 "param": "v4",
4383 "body": {
4384 "tag": "Lam",
4385 "param": "v1",
4386 "body": {
4387 "tag": "App",
4388 "fun": {
4389 "tag": "Var",
4390 "name": "v4"
4391 },
4392 "arg": {
4393 "tag": "Var",
4394 "name": "v4"
4395 }
4396 }
4397 }
4398 },
4399 "body": {
4400 "tag": "Lam",
4401 "param": "v7",
4402 "body": {
4403 "tag": "App",
4404 "fun": {
4405 "tag": "App",
4406 "fun": {
4407 "tag": "Var",
4408 "name": "v7"
4409 },
4410 "arg": {
4411 "tag": "Var",
4412 "name": "v7"
4413 }
4414 },
4415 "arg": {
4416 "tag": "Lam",
4417 "param": "v7",
4418 "body": {
4419 "tag": "Var",
4420 "name": "v7"
4421 }
4422 }
4423 }
4424 }
4425 }
4426 },
4427 "t2": {
4428 "tag": "Lam",
4429 "param": "v4",
4430 "body": {
4431 "tag": "Lam",
4432 "param": "v0",
4433 "body": {
4434 "tag": "Var",
4435 "name": "v4"
4436 }
4437 }
4438 },
4439 "expected": null
4440 },
4441 {
4442 "name": "rand-any-12",
4443 "t1": {
4444 "tag": "Lam",
4445 "param": "v6",
4446 "body": {
4447 "tag": "Lam",
4448 "param": "v2",
4449 "body": {
4450 "tag": "Lam",
4451 "param": "v2",
4452 "body": {
4453 "tag": "Var",
4454 "name": "v2"
4455 }
4456 }
4457 }
4458 },
4459 "t2": {
4460 "tag": "App",
4461 "fun": {
4462 "tag": "App",
4463 "fun": {
4464 "tag": "Lam",
4465 "param": "v6",
4466 "body": {
4467 "tag": "App",
4468 "fun": {
4469 "tag": "Lam",
4470 "param": "v1",
4471 "body": {
4472 "tag": "Var",
4473 "name": "v1"
4474 }
4475 },
4476 "arg": {
4477 "tag": "Subst",
4478 "var": "v6",
4479 "repl": {
4480 "tag": "Var",
4481 "name": "p"
4482 },
4483 "body": {
4484 "tag": "Var",
4485 "name": "z"
4486 }
4487 }
4488 }
4489 },
4490 "arg": {
4491 "tag": "Lam",
4492 "param": "v4",
4493 "body": {
4494 "tag": "Var",
4495 "name": "q"
4496 }
4497 }
4498 },
4499 "arg": {
4500 "tag": "Var",
4501 "name": "q"
4502 }
4503 },
4504 "expected": null
4505 },
4506 {
4507 "name": "rand-any-13",
4508 "t1": {
4509 "tag": "Lam",
4510 "param": "v5",
4511 "body": {
4512 "tag": "Var",
4513 "name": "v5"
4514 }
4515 },
4516 "t2": {
4517 "tag": "Lam",
4518 "param": "v2",
4519 "body": {
4520 "tag": "Var",
4521 "name": "v2"
4522 }
4523 },
4524 "expected": null
4525 },
4526 {
4527 "name": "rand-any-14",
4528 "t1": {
4529 "tag": "Var",
4530 "name": "f"
4531 },
4532 "t2": {
4533 "tag": "Lam",
4534 "param": "v3",
4535 "body": {
4536 "tag": "Var",
4537 "name": "v3"
4538 }
4539 },
4540 "expected": null
4541 },
4542 {
4543 "name": "rand-any-15",
4544 "t1": {
4545 "tag": "Lam",
4546 "param": "v3",
4547 "body": {
4548 "tag": "Lam",
4549 "param": "v7",
4550 "body": {
4551 "tag": "Var",
4552 "name": "q"
4553 }
4554 }
4555 },
4556 "t2": {
4557 "tag": "Var",
4558 "name": "p"
4559 },
4560 "expected": null
4561 },
4562 {
4563 "name": "rand-any-16",
4564 "t1": {
4565 "tag": "Var",
4566 "name": "p"
4567 },
4568 "t2": {
4569 "tag": "App",
4570 "fun": {
4571 "tag": "Lam",
4572 "param": "v3",
4573 "body": {
4574 "tag": "Var",
4575 "name": "h"
4576 }
4577 },
4578 "arg": {
4579 "tag": "Lam",
4580 "param": "v7",
4581 "body": {
4582 "tag": "Var",
4583 "name": "v7"
4584 }
4585 }
4586 },
4587 "expected": null
4588 },
4589 {
4590 "name": "rand-any-17",
4591 "t1": {
4592 "tag": "Var",
4593 "name": "q"
4594 },
4595 "t2": {
4596 "tag": "Var",
4597 "name": "h"
4598 },
4599 "expected": null
4600 },
4601 {
4602 "name": "rand-any-18",
4603 "t1": {
4604 "tag": "Lam",
4605 "param": "v2",
4606 "body": {
4607 "tag": "Lam",
4608 "param": "v2",
4609 "body": {
4610 "tag": "Var",
4611 "name": "g"
4612 }
4613 }
4614 },
4615 "t2": {
4616 "tag": "Var",
4617 "name": "h"
4618 },
4619 "expected": null
4620 },
4621 {
4622 "name": "rand-any-19",
4623 "t1": {
4624 "tag": "Var",
4625 "name": "p"
4626 },
4627 "t2": {
4628 "tag": "Lam",
4629 "param": "v5",
4630 "body": {
4631 "tag": "Lam",
4632 "param": "v5",
4633 "body": {
4634 "tag": "Lam",
4635 "param": "v5",
4636 "body": {
4637 "tag": "Var",
4638 "name": "v5"
4639 }
4640 }
4641 }
4642 },
4643 "expected": null
4644 }
4645]