Knowledge (XXG)

Normalisation by evaluation

Source 📝

1318: 602: 1313:{\displaystyle {\begin{aligned}\uparrow _{\alpha }t&=\mathbf {SYN} \ t\\\uparrow _{\tau _{1}\to \tau _{2}}v&=\mathbf {LAM} (\lambda S.\ \uparrow _{\tau _{2}}(\mathbf {app} \ (v,\downarrow ^{\tau _{1}}S)))\\\uparrow _{\tau _{1}\times \tau _{2}}v&=\mathbf {PAIR} (\uparrow _{\tau _{1}}(\mathbf {fst} \ v),\uparrow _{\tau _{2}}(\mathbf {snd} \ v))\\\downarrow ^{\alpha }(\mathbf {SYN} \ t)&=t\\\downarrow ^{\tau _{1}\to \tau _{2}}(\mathbf {LAM} \ S)&=\mathbf {lam} \ (x,\downarrow ^{\tau _{2}}(S\ (\uparrow _{\tau _{1}}(\mathbf {var} \ x)))){\text{ where }}x{\text{ is fresh}}\\\downarrow ^{\tau _{1}\times \tau _{2}}(\mathbf {PAIR} \ (S,T))&=\mathbf {pair} \ (\downarrow ^{\tau _{1}}S,\downarrow ^{\tau _{2}}T)\end{aligned}}} 2478: 1860: 2473:{\displaystyle {\begin{aligned}\|\mathbf {var} \ x\|_{\Gamma }&=\Gamma (x)\\\|\mathbf {lam} \ (x,s)\|_{\Gamma }&=\mathbf {LAM} \ (\lambda S.\ \|s\|_{\Gamma ,x\mapsto S})\\\|\mathbf {app} \ (s,t)\|_{\Gamma }&=S\ (\|t\|_{\Gamma }){\text{ where }}\|s\|_{\Gamma }=\mathbf {LAM} \ S\\\|\mathbf {pair} \ (s,t)\|_{\Gamma }&=\mathbf {PAIR} \ (\|s\|_{\Gamma },\|t\|_{\Gamma })\\\|\mathbf {fst} \ s\|_{\Gamma }&=S{\text{ where }}\|s\|_{\Gamma }=\mathbf {PAIR} \ (S,T)\\\|\mathbf {snd} \ t\|_{\Gamma }&=T{\text{ where }}\|t\|_{\Gamma }=\mathbf {PAIR} \ (S,T)\end{aligned}}} 22: 607: 1865: 94:
the denotation. Such an essentially semantic, reduction-free, approach differs from the more traditional syntactic, reduction-based, description of normalisation as reductions in a
517:
Note that there are no variables or elimination forms in the semantics; they are represented simply as syntax. These semantic objects are represented by the following datatype:
3663: 36: 67: 584:
There are a pair of type-indexed functions that move back and forth between the syntactic and semantic layer. The first function, usually written ↑
3831: 3685: 43: 3700: 3615: 3796: 3750: 460:
of (closed) terms in the meta-language interprets the constructs of the syntax in terms of features of the meta-language; thus,
90:
into a denotational model of the λ-term structure, and then a canonical (β-normal and η-long) representative is extracted by
134: 106: 3655: 3639: 3535: 122: 3826: 3469:) then makes it clear that the result is normalized. And if the datatype of normal forms is typed, the type of 2971:
well-typed term, none of these missing cases are ever encountered. The NBE operation on closed terms is then:
3298:
The result is actually in η-long form, as can be easily seen by normalizing it at a different identity type:
114: 3631: 3485: 1823: 457: 346: 83: 3530: 3579:
Coquand, Thierry; Dybjer, Peter (1997). "Intuitionistic model constructions and normalization proofs".
596:
the semantics as a syntactic term (written as ↓). Their definitions are mutually recursive as follows:
138: 137:, where types τ can be basic types (α), function types (→), or products (×), given by the following 64: 95: 3802: 3792: 3607: 3213: 3209: 350: 334: 3782: 3759: 3724: 3588: 3559: 338: 75: 3508: 3443: 79: 1854:, where Γ is a context of bindings, proceeds by induction solely on the term structure: 3632:"Normalization by Evaluation for Martin-Löf Type Theory with Typed Equality Judgements" 3480:
Normalization by evaluation also scales to the simply typed lambda calculus with sums (
99: 3820: 3681: 1834:
of type τ, then reifying the object (i.e., ↓ S) produces the β-normal η-long form of
118: 42:
You can help Knowledge (XXG) by formatting it if you know how. Please also consider
3806: 1838:. All that remains is, therefore, to construct the initial semantic interpretation 3745: 3716: 3551: 169: 110: 3763: 3729: 3693: 3592: 3564: 3608:"Normalization by Evaluation for Martin-Löf Type Theory with One Universe" 3457:
The datatype of residual terms can also be the datatype of residual terms
165: 3787: 3533:(1991). "An inverse of the evaluation functional for typed λ-calculus". 2967:
Note that there are many non-exhaustive cases; however, if applied to a
468:
as application, etc. The semantic objects constructed are as follows:
3504: 3556:
Foundations of Software Science and Computation Structures (FOSSACS)
1826:
on the structure of types, it follows that if the semantic object
3777:
Danvy, Olivier; Filinski, Andrzej (1990). "Abstracting Control".
121:
approach, and to richer type systems such as several variants of
3690: 3552:"A denotational account of untyped normalization by evaluation" 1323:
These definitions are easily implemented in the meta-language:
15: 3477:) then makes it clear that normalization is type preserving. 241:
level) is the representation that one intends to normalise.
3744:
Danvy, Olivier; Rhiger, Morten; Rose, Kristoffer (2001).
3746:"Normalization by Evaluation with Typed Abstract Syntax" 3717:"A Semantic Account of Type-Directed Partial Evaluation" 3654:
Gratzer, Daniel; Sterling, Jon; Birkedal, Lars (2019).
3630:
Abel, Andreas; Coquand, Thierry; Dybjer, Peter (2007).
3017:
As an example of its use, consider the syntactic term
1863: 605: 592:
the term syntax into the semantics, while the second
3606:
Abel, Andreas; Aehlig, Klaus; Dybjer, Peter (2007).
3550:Filinski, Andrzej; Rohde, Henning Korsholm (2005). 3721:Principles and Practice of Declarative Programming 2472: 1312: 349:. These terms are intended to be implemented as a 141:grammar (→ associating to the right, as usual): 3676: 3674: 3216:. Normalising it at an identity type produces: 3446:instead of names in the residual syntax makes 2530:(* lookup : ctx -> string -> sem *) 3450:a pure function in that there is no need for 8: 3656:"Implementing a Modal Dependent Type Theory" 2422: 2415: 2391: 2370: 2322: 2315: 2291: 2270: 2254: 2247: 2235: 2228: 2192: 2156: 2123: 2116: 2099: 2092: 2067: 2034: 2006: 1999: 1954: 1921: 1889: 1868: 109:. It has since been extended both to weaker 2605:(* meaning : ctx -> tm -> sem *) 233:Terms are defined at two levels. The lower 3581:Mathematical Structure in Computer Science 1592:(* reify  : ty -> sem -> tm *) 1403:(* reflect : ty -> tm -> sem *) 3786: 3728: 3563: 2434: 2425: 2410: 2394: 2373: 2334: 2325: 2310: 2294: 2273: 2257: 2238: 2208: 2195: 2159: 2135: 2126: 2111: 2102: 2070: 2037: 2009: 1970: 1957: 1924: 1892: 1871: 1864: 1862: 1292: 1287: 1269: 1264: 1240: 1198: 1187: 1174: 1169: 1156: 1148: 1119: 1108: 1103: 1079: 1074: 1047: 1020: 1009: 996: 991: 953: 944: 913: 902: 897: 870: 859: 854: 833: 815: 802: 797: 769: 764: 737: 726: 721: 691: 673: 660: 655: 630: 614: 606: 604: 1328:(* fresh_var : unit -> string *) 44:changing this notice to be more specific 3521: 3208:This is the well-known encoding of the 168:in the meta-language; for example, for 2976:(* nbe : ty -> tm -> tm *) 7: 3511:that uses NBE as its rewrite engine. 3686:"Type-directed partial evaluation" 2426: 2395: 2326: 2295: 2258: 2239: 2196: 2127: 2103: 2071: 2010: 1958: 1905: 1893: 14: 3751:Journal of Functional Programming 102:are allowed deep inside λ-terms. 72:normalisation by evaluation (NBE) 2444: 2441: 2438: 2435: 2380: 2377: 2374: 2344: 2341: 2338: 2335: 2280: 2277: 2274: 2218: 2215: 2212: 2209: 2169: 2166: 2163: 2160: 2142: 2139: 2136: 2044: 2041: 2038: 1977: 1974: 1971: 1931: 1928: 1925: 1878: 1875: 1872: 1250: 1247: 1244: 1241: 1208: 1205: 1202: 1199: 1126: 1123: 1120: 1054: 1051: 1048: 1027: 1024: 1021: 960: 957: 954: 920: 917: 914: 877: 874: 871: 843: 840: 837: 834: 744: 741: 738: 698: 695: 692: 637: 634: 631: 105:NBE was first described for the 20: 3779:LISP and Functional Programming 464:is interpreted as abstraction, 353:datatype in the meta-language: 3832:Programming language semantics 2463: 2451: 2363: 2351: 2263: 2225: 2188: 2176: 2108: 2089: 2063: 2051: 2027: 2019: 1984: 1950: 1938: 1914: 1908: 1303: 1284: 1261: 1257: 1230: 1227: 1215: 1195: 1166: 1145: 1142: 1139: 1136: 1116: 1100: 1096: 1087: 1071: 1061: 1037: 1017: 1002: 988: 970: 950: 941: 933: 930: 910: 894: 887: 867: 851: 847: 794: 786: 783: 780: 761: 751: 734: 718: 702: 666: 652: 611: 164:These can be implemented as a 1: 74:is a method of obtaining the 237:level (sometimes called the 135:simply typed lambda calculus 107:simply typed lambda calculus 3486:delimited control operators 1846:. This operation, written ∥ 341:forms for → (resp. ×), and 3848: 1830:denotes a well-typed term 3764:10.1017/S0956796801004166 3730:10.7146/brics.v6i17.20074 3593:10.1017/S0960129596002150 3565:10.7146/brics.v12i4.21870 3300: 3218: 3023: 2973: 2485: 1325: 519: 355: 174: 145:(Types) τ ::= α | τ 2483:In the implementation: 115:untyped lambda calculus 3531:Schwichtenberg, Helmut 2481: 2474: 1842:from a syntactic term 1321: 1314: 458:denotational semantics 123:Martin-Löf type theory 84:denotational semantics 82:by appealing to their 2475: 1856: 1315: 598: 3781:. pp. 151–160. 1861: 603: 65:programming language 3788:10.1145/91556.91622 3715:Filinski, Andrzej. 96:term rewrite system 3473:(and therefore of 3465:(and therefore of 2470: 2468: 1310: 1308: 86:. A term is first 3214:combinatory logic 3210:identity function 2450: 2413: 2412: where  2386: 2350: 2313: 2312: where  2286: 2224: 2175: 2148: 2114: 2113: where  2088: 2050: 1998: 1983: 1937: 1884: 1256: 1214: 1159: 1151: 1150: where  1132: 1095: 1060: 1033: 966: 926: 883: 750: 716: 643: 472:(Semantic Terms) 61: 60: 3839: 3811: 3810: 3790: 3774: 3768: 3767: 3741: 3735: 3734: 3732: 3712: 3706: 3705: 3697: 3678: 3669: 3668: 3660: 3651: 3645: 3644: 3636: 3627: 3621: 3620: 3612: 3603: 3597: 3596: 3576: 3570: 3569: 3567: 3558:. Vol. 10. 3547: 3541: 3540: 3529:Berger, Ulrich; 3526: 3494: 3490: 3483: 3476: 3472: 3468: 3464: 3453: 3449: 3444:de Bruijn levels 3433: 3430: 3427: 3424: 3421: 3418: 3415: 3412: 3409: 3406: 3403: 3400: 3397: 3394: 3391: 3388: 3385: 3382: 3379: 3376: 3373: 3370: 3367: 3364: 3361: 3358: 3355: 3352: 3349: 3346: 3343: 3340: 3337: 3334: 3331: 3328: 3325: 3322: 3319: 3316: 3313: 3310: 3307: 3304: 3294: 3291: 3288: 3285: 3282: 3279: 3276: 3273: 3270: 3267: 3264: 3261: 3258: 3255: 3252: 3249: 3246: 3243: 3240: 3237: 3234: 3231: 3228: 3225: 3222: 3204: 3201: 3198: 3195: 3192: 3189: 3186: 3183: 3180: 3177: 3174: 3171: 3168: 3165: 3162: 3159: 3156: 3153: 3150: 3147: 3144: 3141: 3138: 3135: 3132: 3129: 3126: 3123: 3120: 3117: 3114: 3111: 3108: 3105: 3102: 3099: 3096: 3093: 3090: 3087: 3084: 3081: 3078: 3075: 3072: 3069: 3066: 3063: 3060: 3057: 3054: 3051: 3048: 3045: 3042: 3039: 3036: 3033: 3030: 3027: 3020: 3013: 3010: 3007: 3004: 3001: 2998: 2995: 2992: 2989: 2986: 2983: 2980: 2977: 2963: 2960: 2957: 2954: 2951: 2948: 2945: 2942: 2939: 2936: 2933: 2930: 2927: 2924: 2921: 2918: 2915: 2912: 2909: 2906: 2903: 2900: 2897: 2894: 2891: 2888: 2885: 2882: 2879: 2876: 2873: 2870: 2867: 2864: 2861: 2858: 2855: 2852: 2849: 2846: 2843: 2840: 2837: 2834: 2831: 2828: 2825: 2822: 2819: 2816: 2813: 2810: 2807: 2804: 2801: 2798: 2795: 2792: 2789: 2786: 2783: 2780: 2777: 2774: 2771: 2768: 2765: 2762: 2759: 2756: 2753: 2750: 2747: 2744: 2741: 2738: 2735: 2732: 2729: 2726: 2723: 2720: 2717: 2714: 2711: 2708: 2705: 2702: 2699: 2696: 2693: 2690: 2687: 2684: 2681: 2678: 2675: 2672: 2669: 2666: 2663: 2660: 2657: 2654: 2651: 2648: 2645: 2642: 2639: 2636: 2633: 2630: 2627: 2624: 2621: 2618: 2615: 2612: 2609: 2606: 2603: 2600: 2597: 2594: 2591: 2588: 2585: 2582: 2579: 2576: 2573: 2570: 2567: 2564: 2561: 2558: 2555: 2552: 2549: 2546: 2543: 2540: 2537: 2534: 2531: 2528: 2525: 2522: 2519: 2516: 2513: 2510: 2507: 2504: 2501: 2498: 2495: 2492: 2489: 2479: 2477: 2476: 2471: 2469: 2448: 2447: 2430: 2429: 2414: 2411: 2399: 2398: 2384: 2383: 2348: 2347: 2330: 2329: 2314: 2311: 2299: 2298: 2284: 2283: 2262: 2261: 2243: 2242: 2222: 2221: 2200: 2199: 2173: 2172: 2146: 2145: 2131: 2130: 2115: 2112: 2107: 2106: 2086: 2075: 2074: 2048: 2047: 2026: 2025: 1996: 1981: 1980: 1962: 1961: 1935: 1934: 1897: 1896: 1882: 1881: 1818: 1815: 1812: 1809: 1806: 1803: 1800: 1797: 1794: 1791: 1788: 1785: 1782: 1779: 1776: 1773: 1770: 1767: 1764: 1761: 1758: 1755: 1752: 1749: 1746: 1743: 1740: 1737: 1734: 1731: 1728: 1725: 1722: 1719: 1716: 1713: 1710: 1707: 1704: 1701: 1698: 1695: 1692: 1689: 1686: 1683: 1680: 1677: 1674: 1671: 1668: 1665: 1662: 1659: 1656: 1653: 1650: 1647: 1644: 1641: 1638: 1635: 1632: 1629: 1626: 1623: 1620: 1617: 1614: 1611: 1608: 1605: 1602: 1599: 1596: 1593: 1590: 1587: 1584: 1581: 1578: 1575: 1572: 1569: 1566: 1563: 1560: 1557: 1554: 1551: 1548: 1545: 1542: 1539: 1536: 1533: 1530: 1527: 1524: 1521: 1518: 1515: 1512: 1509: 1506: 1503: 1500: 1497: 1494: 1491: 1488: 1485: 1482: 1479: 1476: 1473: 1470: 1467: 1464: 1461: 1458: 1455: 1452: 1449: 1446: 1443: 1440: 1437: 1434: 1431: 1428: 1425: 1422: 1419: 1416: 1413: 1410: 1407: 1404: 1401: 1398: 1395: 1392: 1389: 1386: 1383: 1380: 1377: 1374: 1371: 1368: 1365: 1362: 1359: 1356: 1353: 1350: 1347: 1344: 1341: 1338: 1335: 1332: 1329: 1319: 1317: 1316: 1311: 1309: 1299: 1298: 1297: 1296: 1276: 1275: 1274: 1273: 1254: 1253: 1212: 1211: 1194: 1193: 1192: 1191: 1179: 1178: 1160: 1157: 1152: 1149: 1130: 1129: 1115: 1114: 1113: 1112: 1093: 1086: 1085: 1084: 1083: 1058: 1057: 1031: 1030: 1016: 1015: 1014: 1013: 1001: 1000: 964: 963: 949: 948: 924: 923: 909: 908: 907: 906: 881: 880: 866: 865: 864: 863: 846: 822: 821: 820: 819: 807: 806: 776: 775: 774: 773: 748: 747: 733: 732: 731: 730: 714: 701: 680: 679: 678: 677: 665: 664: 641: 640: 619: 618: 580: 577: 574: 571: 568: 565: 562: 559: 556: 553: 550: 547: 544: 541: 538: 535: 532: 529: 526: 523: 452: 449: 446: 443: 440: 437: 434: 431: 428: 425: 422: 419: 416: 413: 410: 407: 404: 401: 398: 395: 392: 389: 386: 383: 380: 377: 374: 371: 368: 365: 362: 359: 229: 226: 223: 220: 217: 214: 211: 208: 205: 202: 199: 196: 193: 190: 187: 184: 181: 178: 172:, we might use: 139:Backus–Naur form 119:domain theoretic 78:of terms in the 56: 53: 47: 32: 24: 23: 16: 3847: 3846: 3842: 3841: 3840: 3838: 3837: 3836: 3827:Lambda calculus 3817: 3816: 3815: 3814: 3799: 3776: 3775: 3771: 3743: 3742: 3738: 3714: 3713: 3709: 3688: 3680: 3679: 3672: 3658: 3653: 3652: 3648: 3634: 3629: 3628: 3624: 3610: 3605: 3604: 3600: 3578: 3577: 3573: 3549: 3548: 3544: 3528: 3527: 3523: 3518: 3509:proof assistant 3501: 3492: 3488: 3481: 3474: 3470: 3466: 3462: 3451: 3447: 3440: 3435: 3434: 3431: 3428: 3425: 3422: 3419: 3416: 3413: 3410: 3407: 3404: 3401: 3398: 3395: 3392: 3389: 3386: 3383: 3380: 3377: 3374: 3371: 3368: 3365: 3362: 3359: 3356: 3353: 3350: 3347: 3344: 3341: 3338: 3335: 3332: 3329: 3326: 3323: 3320: 3317: 3314: 3311: 3308: 3305: 3302: 3296: 3295: 3292: 3289: 3286: 3283: 3280: 3277: 3274: 3271: 3268: 3265: 3262: 3259: 3256: 3253: 3250: 3247: 3244: 3241: 3238: 3235: 3232: 3229: 3226: 3223: 3220: 3206: 3205: 3202: 3199: 3196: 3193: 3190: 3187: 3184: 3181: 3178: 3175: 3172: 3169: 3166: 3163: 3160: 3157: 3154: 3151: 3148: 3145: 3142: 3139: 3136: 3133: 3130: 3127: 3124: 3121: 3118: 3115: 3112: 3109: 3106: 3103: 3100: 3097: 3094: 3091: 3088: 3085: 3082: 3079: 3076: 3073: 3070: 3067: 3064: 3061: 3058: 3055: 3052: 3049: 3046: 3043: 3040: 3037: 3034: 3031: 3028: 3025: 3021:defined below: 3018: 3015: 3014: 3011: 3008: 3005: 3002: 2999: 2996: 2993: 2990: 2987: 2984: 2981: 2978: 2975: 2965: 2964: 2961: 2958: 2955: 2952: 2949: 2946: 2943: 2940: 2937: 2934: 2931: 2928: 2925: 2922: 2919: 2916: 2913: 2910: 2907: 2904: 2901: 2898: 2895: 2892: 2889: 2886: 2883: 2880: 2877: 2874: 2871: 2868: 2865: 2862: 2859: 2856: 2853: 2850: 2847: 2844: 2841: 2838: 2835: 2832: 2829: 2826: 2823: 2820: 2817: 2814: 2811: 2808: 2805: 2802: 2799: 2796: 2793: 2790: 2787: 2784: 2781: 2778: 2775: 2772: 2769: 2766: 2763: 2760: 2757: 2754: 2751: 2748: 2745: 2742: 2739: 2736: 2733: 2730: 2727: 2724: 2721: 2718: 2715: 2712: 2709: 2706: 2703: 2700: 2697: 2694: 2691: 2688: 2685: 2682: 2679: 2676: 2673: 2670: 2667: 2664: 2661: 2658: 2655: 2652: 2649: 2646: 2643: 2640: 2637: 2634: 2631: 2628: 2625: 2622: 2619: 2616: 2613: 2610: 2607: 2604: 2601: 2598: 2595: 2592: 2589: 2586: 2583: 2580: 2577: 2574: 2571: 2568: 2565: 2562: 2559: 2556: 2553: 2550: 2547: 2544: 2541: 2538: 2535: 2532: 2529: 2526: 2523: 2520: 2517: 2514: 2511: 2508: 2505: 2502: 2499: 2496: 2493: 2490: 2487: 2467: 2466: 2421: 2400: 2390: 2367: 2366: 2321: 2300: 2290: 2267: 2266: 2253: 2234: 2201: 2191: 2153: 2152: 2122: 2098: 2076: 2066: 2031: 2030: 2005: 1963: 1953: 1918: 1917: 1898: 1888: 1859: 1858: 1853: 1820: 1819: 1816: 1813: 1810: 1807: 1804: 1801: 1798: 1795: 1792: 1789: 1786: 1783: 1780: 1777: 1774: 1771: 1768: 1765: 1762: 1759: 1756: 1753: 1750: 1747: 1744: 1741: 1738: 1735: 1732: 1729: 1726: 1723: 1720: 1717: 1714: 1711: 1708: 1705: 1702: 1699: 1696: 1693: 1690: 1687: 1684: 1681: 1678: 1675: 1672: 1669: 1666: 1663: 1660: 1657: 1654: 1651: 1648: 1645: 1642: 1639: 1636: 1633: 1630: 1627: 1624: 1621: 1618: 1615: 1612: 1609: 1606: 1603: 1600: 1597: 1594: 1591: 1588: 1585: 1582: 1579: 1576: 1573: 1570: 1567: 1564: 1561: 1558: 1555: 1552: 1549: 1546: 1543: 1540: 1537: 1534: 1531: 1528: 1525: 1522: 1519: 1516: 1513: 1510: 1507: 1504: 1501: 1498: 1495: 1492: 1489: 1486: 1483: 1480: 1477: 1474: 1471: 1468: 1465: 1462: 1459: 1456: 1453: 1450: 1447: 1444: 1441: 1438: 1435: 1432: 1429: 1426: 1423: 1420: 1417: 1414: 1411: 1408: 1405: 1402: 1399: 1396: 1393: 1390: 1387: 1384: 1381: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1357: 1354: 1351: 1348: 1345: 1342: 1339: 1336: 1333: 1330: 1327: 1307: 1306: 1288: 1283: 1265: 1260: 1233: 1183: 1170: 1165: 1162: 1161: 1104: 1099: 1075: 1070: 1040: 1005: 992: 987: 984: 983: 973: 940: 937: 936: 898: 893: 855: 850: 826: 811: 798: 793: 790: 789: 765: 760: 722: 717: 684: 669: 656: 651: 648: 647: 623: 610: 601: 600: 587: 582: 581: 578: 575: 572: 569: 566: 563: 560: 557: 554: 551: 548: 545: 542: 539: 536: 533: 530: 527: 524: 521: 454: 453: 450: 447: 444: 441: 438: 435: 432: 429: 426: 423: 420: 417: 414: 411: 408: 405: 402: 399: 396: 393: 390: 387: 384: 381: 378: 375: 372: 369: 366: 363: 360: 357: 245:(Syntax Terms) 231: 230: 227: 224: 221: 218: 215: 212: 209: 206: 203: 200: 197: 194: 191: 188: 185: 182: 179: 176: 160: 156: 152: 148: 131: 57: 51: 48: 41: 35:may need to be 30: 25: 21: 12: 11: 5: 3845: 3843: 3835: 3834: 3829: 3819: 3818: 3813: 3812: 3797: 3769: 3758:(6): 673–680. 3736: 3707: 3682:Danvy, Olivier 3670: 3646: 3622: 3598: 3571: 3542: 3520: 3519: 3517: 3514: 3513: 3512: 3500: 3497: 3461:. The type of 3459:in normal form 3439: 3436: 3423:"v2" 3414:"v1" 3399:"v2" 3387:"v1" 3301: 3284:"v0" 3275:"v0" 3219: 3024: 2974: 2486: 2465: 2462: 2459: 2456: 2453: 2446: 2443: 2440: 2437: 2433: 2428: 2424: 2420: 2417: 2409: 2406: 2403: 2401: 2397: 2393: 2389: 2382: 2379: 2376: 2372: 2369: 2368: 2365: 2362: 2359: 2356: 2353: 2346: 2343: 2340: 2337: 2333: 2328: 2324: 2320: 2317: 2309: 2306: 2303: 2301: 2297: 2293: 2289: 2282: 2279: 2276: 2272: 2269: 2268: 2265: 2260: 2256: 2252: 2249: 2246: 2241: 2237: 2233: 2230: 2227: 2220: 2217: 2214: 2211: 2207: 2204: 2202: 2198: 2194: 2190: 2187: 2184: 2181: 2178: 2171: 2168: 2165: 2162: 2158: 2155: 2154: 2151: 2144: 2141: 2138: 2134: 2129: 2125: 2121: 2118: 2110: 2105: 2101: 2097: 2094: 2091: 2085: 2082: 2079: 2077: 2073: 2069: 2065: 2062: 2059: 2056: 2053: 2046: 2043: 2040: 2036: 2033: 2032: 2029: 2024: 2021: 2018: 2015: 2012: 2008: 2004: 2001: 1995: 1992: 1989: 1986: 1979: 1976: 1973: 1969: 1966: 1964: 1960: 1956: 1952: 1949: 1946: 1943: 1940: 1933: 1930: 1927: 1923: 1920: 1919: 1916: 1913: 1910: 1907: 1904: 1901: 1899: 1895: 1891: 1887: 1880: 1877: 1874: 1870: 1867: 1866: 1851: 1326: 1305: 1302: 1295: 1291: 1286: 1282: 1279: 1272: 1268: 1263: 1259: 1252: 1249: 1246: 1243: 1239: 1236: 1234: 1232: 1229: 1226: 1223: 1220: 1217: 1210: 1207: 1204: 1201: 1197: 1190: 1186: 1182: 1177: 1173: 1168: 1164: 1163: 1158: is fresh 1155: 1147: 1144: 1141: 1138: 1135: 1128: 1125: 1122: 1118: 1111: 1107: 1102: 1098: 1092: 1089: 1082: 1078: 1073: 1069: 1066: 1063: 1056: 1053: 1050: 1046: 1043: 1041: 1039: 1036: 1029: 1026: 1023: 1019: 1012: 1008: 1004: 999: 995: 990: 986: 985: 982: 979: 976: 974: 972: 969: 962: 959: 956: 952: 947: 943: 939: 938: 935: 932: 929: 922: 919: 916: 912: 905: 901: 896: 892: 889: 886: 879: 876: 873: 869: 862: 858: 853: 849: 845: 842: 839: 836: 832: 829: 827: 825: 818: 814: 810: 805: 801: 796: 792: 791: 788: 785: 782: 779: 772: 768: 763: 759: 756: 753: 746: 743: 740: 736: 729: 725: 720: 713: 710: 707: 704: 700: 697: 694: 690: 687: 685: 683: 676: 672: 668: 663: 659: 654: 650: 649: 646: 639: 636: 633: 629: 626: 624: 622: 617: 613: 609: 608: 585: 520: 515: 514: 356: 311: 310: 175: 162: 161: 158: 154: 150: 146: 130: 127: 59: 58: 28: 26: 19: 13: 10: 9: 6: 4: 3: 2: 3844: 3833: 3830: 3828: 3825: 3824: 3822: 3808: 3804: 3800: 3798:0-89791-368-X 3794: 3789: 3784: 3780: 3773: 3770: 3765: 3761: 3757: 3753: 3752: 3747: 3740: 3737: 3731: 3726: 3722: 3718: 3711: 3708: 3703: 3702: 3695: 3692: 3687: 3683: 3677: 3675: 3671: 3666: 3665: 3657: 3650: 3647: 3642: 3641: 3633: 3626: 3623: 3618: 3617: 3609: 3602: 3599: 3594: 3590: 3586: 3582: 3575: 3572: 3566: 3561: 3557: 3553: 3546: 3543: 3538: 3537: 3532: 3525: 3522: 3515: 3510: 3506: 3503: 3502: 3498: 3496: 3487: 3484:), using the 3478: 3460: 3455: 3445: 3437: 3360:"b" 3351:"a" 3336:"b" 3327:"a" 3299: 3248:"a" 3239:"a" 3217: 3215: 3211: 3161:"z" 3152:"y" 3137:"z" 3128:"x" 3107:"z" 3095:"y" 3083:"x" 3062:"x" 3053:"y" 3041:"x" 3022: 2972: 2970: 2484: 2480: 2460: 2457: 2454: 2431: 2418: 2407: 2404: 2402: 2387: 2360: 2357: 2354: 2331: 2318: 2307: 2304: 2302: 2287: 2250: 2244: 2231: 2205: 2203: 2185: 2182: 2179: 2149: 2132: 2119: 2095: 2083: 2080: 2078: 2060: 2057: 2054: 2022: 2016: 2013: 2002: 1993: 1990: 1987: 1967: 1965: 1947: 1944: 1941: 1911: 1902: 1900: 1885: 1855: 1849: 1845: 1841: 1837: 1833: 1829: 1825: 1397:!variable_ctr 1379:"v" 1373:!variable_ctr 1324: 1320: 1300: 1293: 1289: 1280: 1277: 1270: 1266: 1237: 1235: 1224: 1221: 1218: 1188: 1184: 1180: 1175: 1171: 1153: 1133: 1109: 1105: 1090: 1080: 1076: 1067: 1064: 1044: 1042: 1034: 1010: 1006: 997: 993: 980: 977: 975: 967: 945: 927: 903: 899: 890: 884: 860: 856: 830: 828: 823: 816: 812: 808: 803: 799: 777: 770: 766: 757: 754: 727: 723: 711: 708: 705: 688: 686: 681: 674: 670: 661: 657: 644: 627: 625: 620: 615: 597: 595: 591: 518: 513: 510: 506: 502: 498: 494: 491: 487: 483: 479: 475: 471: 470: 469: 467: 463: 459: 354: 352: 348: 344: 340: 336: 332: 328: 324: 320: 316: 309: 306: 302: 299: 295: 291: 287: 283: 279: 275: 271: 267: 263: 259: 256: 252: 248: 244: 243: 242: 240: 236: 173: 171: 167: 144: 143: 142: 140: 136: 133:Consider the 128: 126: 124: 120: 116: 112: 108: 103: 101: 97: 93: 89: 85: 81: 77: 73: 69: 66: 55: 45: 40: 38: 27: 18: 17: 3778: 3772: 3755: 3749: 3739: 3720: 3710: 3699: 3662: 3649: 3638: 3625: 3614: 3601: 3587:(1): 75–94. 3584: 3580: 3574: 3555: 3545: 3534: 3524: 3479: 3458: 3456: 3441: 3297: 3207: 3016: 2968: 2966: 2482: 1857: 1847: 1843: 1839: 1835: 1831: 1827: 1821: 1361:variable_ctr 1334:variable_ctr 1322: 599: 593: 589: 583: 516: 511: 508: 504: 500: 496: 492: 489: 485: 481: 480:,… ::= 477: 473: 465: 461: 455: 342: 330: 326: 322: 318: 314: 312: 307: 304: 300: 297: 293: 289: 285: 281: 277: 273: 269: 265: 261: 257: 254: 253:,… ::= 250: 246: 238: 234: 232: 163: 132: 113:such as the 111:type systems 104: 100:β-reductions 91: 87: 71: 62: 49: 34: 29:This article 351:first-order 170:Standard ML 88:interpreted 76:normal form 33:or section 3821:Categories 3704:: 242–257. 3694:PostScript 3516:References 333:) are the 80:λ-calculus 52:April 2014 3452:fresh_var 2427:Γ 2423:‖ 2416:‖ 2396:Γ 2392:‖ 2371:‖ 2327:Γ 2323:‖ 2316:‖ 2296:Γ 2292:‖ 2271:‖ 2259:Γ 2255:‖ 2248:‖ 2240:Γ 2236:‖ 2229:‖ 2197:Γ 2193:‖ 2157:‖ 2128:Γ 2124:‖ 2117:‖ 2104:Γ 2100:‖ 2093:‖ 2072:Γ 2068:‖ 2035:‖ 2020:↦ 2011:Γ 2007:‖ 2000:‖ 1988:λ 1959:Γ 1955:‖ 1922:‖ 1906:Γ 1894:Γ 1890:‖ 1869:‖ 1824:induction 1649:fresh_var 1349:fresh_var 1290:τ 1285:↓ 1267:τ 1262:↓ 1185:τ 1181:× 1172:τ 1167:↓ 1106:τ 1101:↑ 1077:τ 1072:↓ 1007:τ 1003:→ 994:τ 989:↓ 946:α 942:↓ 900:τ 895:↑ 857:τ 852:↑ 813:τ 809:× 800:τ 795:↑ 767:τ 762:↓ 724:τ 719:↑ 706:λ 671:τ 667:→ 658:τ 653:↑ 616:α 612:↑ 347:variables 235:syntactic 68:semantics 37:formatted 3684:(1996). 3499:See also 3438:Variants 2488:datatype 1391:toString 590:reflects 522:datatype 358:datatype 177:datatype 166:datatype 117:using a 92:reifying 3807:6426191 3691:gzipped 3003:meaning 2926:meaning 2869:meaning 2839:meaning 2827:meaning 2785:meaning 2758:meaning 2689:meaning 2611:meaning 1685:reflect 1568:reflect 1547:reflect 1529:reflect 1493:reflect 1454:reflect 1409:reflect 594:reifies 321:(resp. 239:dynamic 129:Outline 3805:  3795:  3505:MINLOG 3442:Using 2969:closed 2641:lookup 2596:lookup 2536:lookup 2518:string 2449:  2385:  2349:  2285:  2223:  2174:  2147:  2087:  2049:  1997:  1982:  1936:  1883:  1255:  1213:  1131:  1094:  1059:  1032:  965:  925:  882:  749:  715:  642:  385:string 373:string 192:string 98:where 31:  3803:S2CID 3659:(PDF) 3635:(PDF) 3611:(PDF) 3493:reset 3489:shift 3471:reify 3463:reify 3448:reify 3357:Basic 3348:Basic 3342:Arrow 3333:Basic 3324:Basic 3318:Arrow 3312:Arrow 3245:Basic 3236:Basic 3230:Arrow 3164:))))) 3006:empty 2994:reify 2956:=> 2917:=> 2899:=> 2860:=> 2818:=> 2776:=> 2749:=> 2686:=> 2671:=> 2638:=> 2599:remdr 2590:value 2563:value 2548:remdr 2497:empty 1796:Basic 1790:reify 1775:reify 1763:reify 1709:reify 1670:reify 1604:Arrow 1598:reify 1574:Basic 1478:reify 1451:=> 1415:Arrow 543:-> 335:intro 313:Here 198:Arrow 186:Basic 3793:ISBN 3701:POPL 3664:ICFP 3640:LICS 3616:MFPS 3536:LICS 3507:, a 3491:and 2938:PAIR 2923:case 2881:PAIR 2866:case 2821:PAIR 2800:pair 2755:case 2623:case 2593:else 2587:then 1757:pair 1736:PAIR 1715:Prod 1700:)))) 1523:PAIR 1499:Prod 1487:)))) 555:PAIR 507:) | 497:PAIR 495:) | 456:The 415:pair 345:are 339:elim 323:pair 296:) | 286:pair 284:) | 272:) | 216:Prod 3783:doi 3760:doi 3725:doi 3589:doi 3560:doi 3475:nbe 3467:nbe 3426:))) 3420:var 3411:var 3405:app 3393:lam 3381:lam 3372:val 3366:SKK 3363:))) 3306:nbe 3281:var 3269:lam 3260:val 3254:SKK 3224:nbe 3212:in 3182:app 3176:app 3170:SKK 3167:val 3158:var 3149:var 3143:app 3134:var 3125:var 3119:app 3113:app 3101:lam 3089:lam 3077:lam 3068:val 3059:var 3047:lam 3035:lam 3026:val 3019:SKK 2982:nbe 2979:fun 2911:snd 2854:fst 2770:LAM 2731:app 2719:))) 2695:add 2674:LAM 2653:lam 2632:var 2608:fun 2566:))) 2542:add 2533:fun 2524:sem 2509:ctx 2503:add 2491:ctx 1822:By 1805:SYN 1703:end 1694:var 1658:lam 1640:val 1637:let 1625:LAM 1595:and 1586:SYN 1556:snd 1538:fst 1463:app 1439:LAM 1406:fun 1385:Int 1346:fun 1340:ref 1331:val 573:SYN 567:sem 561:sem 546:sem 540:sem 531:LAM 525:sem 509:SYN 482:LAM 466:app 462:lam 445:snd 433:fst 397:app 379:lam 367:var 331:snd 327:fst 319:app 315:lam 305:snd 298:fst 274:app 262:lam 255:var 157:× τ 153:| τ 149:→ τ 63:In 3823:: 3801:. 3791:. 3756:11 3754:. 3748:. 3723:. 3719:. 3698:. 3673:^ 3661:. 3637:. 3613:. 3583:. 3554:. 3495:. 3454:. 3432:tm 3375:it 3339:), 3293:tm 3263:it 3251:)) 3197:), 3140:), 3065:)) 2935:of 2878:of 2794:)) 2767:of 2680:fn 2629:of 2575:if 2506:of 1799:_) 1751:)) 1730:)) 1655:in 1652:() 1619:)) 1577:_) 1562:)) 1544:), 1514:)) 1445:fn 1430:)) 1400:)) 1364::= 1352:() 1343:~1 588:, 579:tm 576:of 558:of 534:of 503:, 488:. 484:(λ 451:tm 448:of 439:tm 436:of 427:tm 421:tm 418:of 409:tm 403:tm 400:of 391:tm 382:of 370:of 361:tm 303:| 292:, 280:, 268:, 260:| 228:ty 222:ty 219:of 210:ty 204:ty 201:of 189:of 180:ty 125:. 70:, 3809:. 3785:: 3766:. 3762:: 3733:. 3727:: 3696:) 3689:( 3667:. 3643:. 3619:. 3595:. 3591:: 3585:7 3568:. 3562:: 3539:. 3482:+ 3429:: 3417:, 3408:( 3402:, 3396:( 3390:, 3384:( 3378:= 3369:; 3354:, 3345:( 3330:, 3321:( 3315:( 3309:( 3303:- 3290:: 3287:) 3278:, 3272:( 3266:= 3257:; 3242:, 3233:( 3227:( 3221:- 3203:) 3200:K 3194:K 3191:, 3188:S 3185:( 3179:( 3173:= 3155:, 3146:( 3131:, 3122:( 3116:( 3110:, 3104:( 3098:, 3092:( 3086:, 3080:( 3074:= 3071:S 3056:, 3050:( 3044:, 3038:( 3032:= 3029:K 3012:) 3009:t 3000:( 2997:a 2991:= 2988:t 2985:a 2962:) 2959:T 2953:) 2950:T 2947:, 2944:S 2941:( 2932:t 2929:G 2920:( 2914:t 2908:| 2905:) 2902:S 2896:) 2893:T 2890:, 2887:S 2884:( 2875:s 2872:G 2863:( 2857:s 2851:| 2848:) 2845:t 2842:G 2836:, 2833:s 2830:G 2824:( 2815:) 2812:t 2809:, 2806:s 2803:( 2797:| 2791:t 2788:G 2782:( 2779:S 2773:S 2764:s 2761:G 2752:( 2746:) 2743:t 2740:, 2737:s 2734:( 2728:| 2725:) 2722:s 2716:S 2713:, 2710:x 2707:( 2704:, 2701:G 2698:( 2692:( 2683:S 2677:( 2668:) 2665:s 2662:, 2659:x 2656:( 2650:| 2647:x 2644:G 2635:x 2626:t 2620:= 2617:t 2614:G 2602:x 2584:y 2581:= 2578:x 2572:= 2569:x 2560:, 2557:y 2554:( 2551:, 2545:( 2539:( 2527:) 2521:* 2515:( 2512:* 2500:| 2494:= 2464:) 2461:T 2458:, 2455:S 2452:( 2445:R 2442:I 2439:A 2436:P 2432:= 2419:t 2408:T 2405:= 2388:t 2381:d 2378:n 2375:s 2364:) 2361:T 2358:, 2355:S 2352:( 2345:R 2342:I 2339:A 2336:P 2332:= 2319:s 2308:S 2305:= 2288:s 2281:t 2278:s 2275:f 2264:) 2251:t 2245:, 2232:s 2226:( 2219:R 2216:I 2213:A 2210:P 2206:= 2189:) 2186:t 2183:, 2180:s 2177:( 2170:r 2167:i 2164:a 2161:p 2150:S 2143:M 2140:A 2137:L 2133:= 2120:s 2109:) 2096:t 2090:( 2084:S 2081:= 2064:) 2061:t 2058:, 2055:s 2052:( 2045:p 2042:p 2039:a 2028:) 2023:S 2017:x 2014:, 2003:s 1994:. 1991:S 1985:( 1978:M 1975:A 1972:L 1968:= 1951:) 1948:s 1945:, 1942:x 1939:( 1932:m 1929:a 1926:l 1915:) 1912:x 1909:( 1903:= 1886:x 1879:r 1876:a 1873:v 1852:Γ 1850:∥ 1848:s 1844:s 1840:S 1836:s 1832:s 1828:S 1817:t 1814:= 1811:) 1808:t 1802:( 1793:( 1787:| 1784:) 1781:T 1778:b 1772:, 1769:S 1766:a 1760:( 1754:= 1748:T 1745:, 1742:S 1739:( 1733:( 1727:b 1724:, 1721:a 1718:( 1712:( 1706:| 1697:x 1691:( 1688:a 1682:( 1679:S 1676:( 1673:b 1667:, 1664:x 1661:( 1646:= 1643:x 1634:= 1631:) 1628:S 1622:( 1616:b 1613:, 1610:a 1607:( 1601:( 1589:t 1583:= 1580:t 1571:( 1565:| 1559:t 1553:( 1550:b 1541:t 1535:( 1532:a 1526:( 1520:= 1517:t 1511:b 1508:, 1505:a 1502:( 1496:( 1490:| 1484:S 1481:a 1475:( 1472:, 1469:t 1466:( 1460:( 1457:b 1448:S 1442:( 1436:= 1433:t 1427:b 1424:, 1421:a 1418:( 1412:( 1394:( 1388:. 1382:^ 1376:; 1370:+ 1367:1 1358:( 1355:= 1337:= 1304:) 1301:T 1294:2 1281:, 1278:S 1271:1 1258:( 1251:r 1248:i 1245:a 1242:p 1238:= 1231:) 1228:) 1225:T 1222:, 1219:S 1216:( 1209:R 1206:I 1203:A 1200:P 1196:( 1189:2 1176:1 1154:x 1146:) 1143:) 1140:) 1137:) 1134:x 1127:r 1124:a 1121:v 1117:( 1110:1 1097:( 1091:S 1088:( 1081:2 1068:, 1065:x 1062:( 1055:m 1052:a 1049:l 1045:= 1038:) 1035:S 1028:M 1025:A 1022:L 1018:( 1011:2 998:1 981:t 978:= 971:) 968:t 961:N 958:Y 955:S 951:( 934:) 931:) 928:v 921:d 918:n 915:s 911:( 904:2 891:, 888:) 885:v 878:t 875:s 872:f 868:( 861:1 848:( 844:R 841:I 838:A 835:P 831:= 824:v 817:2 804:1 787:) 784:) 781:) 778:S 771:1 758:, 755:v 752:( 745:p 742:p 739:a 735:( 728:2 712:. 709:S 703:( 699:M 696:A 693:L 689:= 682:v 675:2 662:1 645:t 638:N 635:Y 632:S 628:= 621:t 586:τ 570:| 564:* 552:| 549:) 537:( 528:= 512:t 505:T 501:S 499:( 493:x 490:S 486:x 478:T 476:, 474:S 442:| 430:| 424:* 412:| 406:* 394:| 388:* 376:| 364:= 343:x 337:/ 329:, 325:/ 317:/ 308:t 301:t 294:t 290:s 288:( 282:t 278:s 276:( 270:t 266:x 264:( 258:x 251:t 249:, 247:s 225:* 213:| 207:* 195:| 183:= 159:2 155:1 151:2 147:1 54:) 50:( 46:. 39:.

Index

formatted
changing this notice to be more specific
programming language
semantics
normal form
λ-calculus
denotational semantics
term rewrite system
β-reductions
simply typed lambda calculus
type systems
untyped lambda calculus
domain theoretic
Martin-Löf type theory
simply typed lambda calculus
Backus–Naur form
datatype
Standard ML
intro
elim
variables
first-order
denotational semantics
induction
identity function
combinatory logic
de Bruijn levels
delimited control operators
MINLOG
proof assistant

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.