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:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.