X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=Chapters%2FNormalization.tex;h=03f379244e0299b787ae294c90e4db2c07eab829;hp=78b7a1d2e2352662fd759c495af3904b7fdd163b;hb=68e92ccd2b456b9ce81b0617417bc8abdaff6fa3;hpb=ee64b2e24b792c580ba5c0bfa38c5ed642800945 diff --git a/Chapters/Normalization.tex b/Chapters/Normalization.tex index 78b7a1d..03f3792 100644 --- a/Chapters/Normalization.tex +++ b/Chapters/Normalization.tex @@ -641,8 +641,6 @@ In the following sections, we will be using a number of functions and notations, which we will define here. - \todo{Define substitution (notation)} - \subsubsection{Concepts} A \emph{global variable} is any variable (binder) that is bound at the top level of a program, or an external module. A \emph{local variable} is any @@ -799,8 +797,33 @@ optimizations, but they are required to get our program into intended normal form. + \placeintermezzo{}{ + \startframedtext[width=8cm,background=box,frame=no] + \startalignment[center] + {\tfa Substitution notation} + \stopalignment + \blank[medium] + + In some of the transformations in this chapter, we need to perform + substitution on an expression. Substitution means replacing every + occurence of some expression (usually a variable reference) with + another expression. + + There have been a lot of different notations used in literature for + specifying substitution. The notation that will be used in this report + is the following: + + \startlambda + E[A=>B] + \stoplambda + + This means expression \lam{E} with all occurences of \lam{A} replaced + with \lam{B}. + \stopframedtext + } + + \defref{beta-reduction} \subsubsection[sec:normalization:beta]{β-reduction} - \defref{beta-reduction} β-reduction is a well known transformation from lambda calculus, where it is the main reduction step. It reduces applications of lambda abstractions, removing both the lambda abstraction and the application.