hws/hw05.tex
author Christian Urban <christian.urban@kcl.ac.uk>
Tue, 03 Oct 2023 14:29:12 +0100
changeset 937 dc5ab66b11cc
parent 619 136517d67d40
child 953 5e070fb0332a
permissions -rw-r--r--
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
93
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     1
\documentclass{article}
292
7ed2a25dd115 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 267
diff changeset
     2
\usepackage{../style}
7ed2a25dd115 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 267
diff changeset
     3
\usepackage{../graphics}
527
2a62f0845f98 updated
cu
parents: 444
diff changeset
     4
\usepackage{../grammar}
93
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     5
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     6
\begin{document}
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     7
267
a1544b804d1e updated homeworks
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 147
diff changeset
     8
% explain what is a context-free grammar and the language it generates 
a1544b804d1e updated homeworks
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 147
diff changeset
     9
%
a1544b804d1e updated homeworks
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 147
diff changeset
    10
a1544b804d1e updated homeworks
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 147
diff changeset
    11
93
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    12
\section*{Homework 5}
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    13
359
db106e5b7c4d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 322
diff changeset
    14
\HEADER
db106e5b7c4d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 322
diff changeset
    15
db106e5b7c4d updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 322
diff changeset
    16
93
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    17
\begin{enumerate}
294
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    18
\item Consider the basic regular expressions
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    19
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    20
\begin{center}
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    21
$r ::= \ZERO \;|\; \ONE \;|\; c  \;|\; r_1 + r_2  \;|\; r_1 \cdot r_2 \;|\; r^*$
294
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    22
\end{center}
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    23
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    24
      and suppose you want to show a property $P(r)$ for all
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    25
      regular expressions $r$ by structural induction. Write
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    26
      down which cases do you need to analyse. State clearly
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    27
      the induction hypotheses if applicable in a case.
294
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    28
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    29
\item Define a regular expression, written $ALL$, that can
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    30
      match every string. This definition should be in terms
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    31
      of the following extended regular expressions:
294
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    32
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    33
\begin{center}
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    34
$r ::= \ZERO \;|\; 
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    35
       \ONE \;|\;  
294
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    36
       c  \;|\; 
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    37
       r_1 + r_2 \;|\; 
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    38
       r_1 \cdot r_2 \;|\; 
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    39
       r^* \;|\;
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    40
       \sim r$
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    41
\end{center}
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    42
322
698ed1c96cd0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
    43
%\item Assume the delimiters for comments are \texttt{$\slash$*}
698ed1c96cd0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
    44
%and \texttt{*$\slash$}. Give a regular expression that can
698ed1c96cd0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
    45
%recognise comments of the form
698ed1c96cd0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
    46
%
698ed1c96cd0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
    47
%\begin{center}
698ed1c96cd0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
    48
%\texttt{$\slash$*~\ldots{}~*$\slash$} 
698ed1c96cd0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
    49
%\end{center}
698ed1c96cd0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
    50
%
698ed1c96cd0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
    51
%where the three dots stand for arbitrary characters, but not
698ed1c96cd0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
    52
%comment delimiters.
294
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    53
93
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    54
\item Define the following regular expressions 
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    55
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    56
\begin{center}
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    57
\begin{tabular}{ll}
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    58
$r^+$ & (one or more matches)\\
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    59
$r^?$   & (zero or one match)\\
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    60
$r^{\{n\}}$ & (exactly $n$ matches)\\
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    61
$r^{\{m, n\}}$ & (at least $m$ and maximal $n$ matches, with the\\
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    62
&  \phantom{(}assumption $m \le n$)\\
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    63
\end{tabular}
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    64
\end{center}
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    65
294
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    66
in terms of the usual basic regular expressions
93
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    67
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    68
\begin{center}
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    69
$r ::= \ZERO \;|\; \ONE \;|\; c  \;|\; r_1 + r_2  \;|\; r_1 \cdot r_2 \;|\; r^*$
93
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    70
\end{center}
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    71
294
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    72
\item Give the regular expressions for lexing a language
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    73
      consisting of identifiers, left-parenthesis \texttt{(},
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    74
      right-parenthesis \texttt{)}, numbers that can be either
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    75
      positive or negative, and the operations \texttt{+},
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    76
      \texttt{-} and \texttt{*}. 
93
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    77
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    78
      Decide whether the following strings can be lexed in
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
    79
      this language?
147
4725bba8ef26 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 102
diff changeset
    80
294
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    81
\begin{enumerate}
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    82
\item \texttt{"(a3+3)*b"}
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    83
\item \texttt{")()++-33"}
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    84
\item \texttt{"(b42/3)*3"}
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    85
\end{enumerate}
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    86
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    87
In case they can, give the corresponding token sequences. (Hint: 
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    88
Observe the maximal munch rule and the priorities of your regular
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    89
expressions that make the process of lexing unambiguous.)
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
    90
602
9aa901039e33 updated
Christian Urban <urbanc@in.tum.de>
parents: 527
diff changeset
    91
\item Suppose the following context-free grammar $G$
527
2a62f0845f98 updated
cu
parents: 444
diff changeset
    92
  
2a62f0845f98 updated
cu
parents: 444
diff changeset
    93
\begin{plstx}[margin=1cm]
2a62f0845f98 updated
cu
parents: 444
diff changeset
    94
  : \meta{S\/} ::= \meta{A\/}\cdot\meta{S\/}\cdot\meta{B\/} \;\mid\;
2a62f0845f98 updated
cu
parents: 444
diff changeset
    95
                   \meta{B\/}\cdot\meta{S\/}\cdot\meta{A\/} \;\mid\; \epsilon\\
2a62f0845f98 updated
cu
parents: 444
diff changeset
    96
  : \meta{A\/} ::= a \mid \epsilon\\
2a62f0845f98 updated
cu
parents: 444
diff changeset
    97
  : \meta{B\/} ::= b\\
2a62f0845f98 updated
cu
parents: 444
diff changeset
    98
\end{plstx}
2a62f0845f98 updated
cu
parents: 444
diff changeset
    99
602
9aa901039e33 updated
Christian Urban <urbanc@in.tum.de>
parents: 527
diff changeset
   100
where the starting symbol is $\meta{S}$.
9aa901039e33 updated
Christian Urban <urbanc@in.tum.de>
parents: 527
diff changeset
   101
Which of the following strings are in the language of $G$?
527
2a62f0845f98 updated
cu
parents: 444
diff changeset
   102
2a62f0845f98 updated
cu
parents: 444
diff changeset
   103
\begin{itemize}
2a62f0845f98 updated
cu
parents: 444
diff changeset
   104
\item[$\bullet$] $a$
2a62f0845f98 updated
cu
parents: 444
diff changeset
   105
\item[$\bullet$] $b$
2a62f0845f98 updated
cu
parents: 444
diff changeset
   106
\item[$\bullet$] $ab$
2a62f0845f98 updated
cu
parents: 444
diff changeset
   107
\item[$\bullet$] $ba$
2a62f0845f98 updated
cu
parents: 444
diff changeset
   108
\item[$\bullet$] $bb$
2a62f0845f98 updated
cu
parents: 444
diff changeset
   109
\item[$\bullet$] $baa$
619
136517d67d40 updated
Christian Urban <urbanc@in.tum.de>
parents: 602
diff changeset
   110
\end{itemize}
136517d67d40 updated
Christian Urban <urbanc@in.tum.de>
parents: 602
diff changeset
   111
136517d67d40 updated
Christian Urban <urbanc@in.tum.de>
parents: 602
diff changeset
   112
\item Suppose the following context-free grammar 
136517d67d40 updated
Christian Urban <urbanc@in.tum.de>
parents: 602
diff changeset
   113
  
136517d67d40 updated
Christian Urban <urbanc@in.tum.de>
parents: 602
diff changeset
   114
  \begin{plstx}[margin=1cm]
136517d67d40 updated
Christian Urban <urbanc@in.tum.de>
parents: 602
diff changeset
   115
  : \meta{S\/} ::= a\cdot \meta{S\/}\cdot a\;\mid\;
136517d67d40 updated
Christian Urban <urbanc@in.tum.de>
parents: 602
diff changeset
   116
                   b\cdot \meta{S\/}\cdot b\;\mid\; \epsilon\\
136517d67d40 updated
Christian Urban <urbanc@in.tum.de>
parents: 602
diff changeset
   117
  \end{plstx}
136517d67d40 updated
Christian Urban <urbanc@in.tum.de>
parents: 602
diff changeset
   118
136517d67d40 updated
Christian Urban <urbanc@in.tum.de>
parents: 602
diff changeset
   119
Describe which language is generated by this grammar.
136517d67d40 updated
Christian Urban <urbanc@in.tum.de>
parents: 602
diff changeset
   120
  
937
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   121
\item Remember we have specified identifiers with regular expressions as
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   122
  strings that start with a letter followed by letters, digits and
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   123
  underscores. This can also be specified by a grammar rule or rules.
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   124
  What would the rule(s) look like for identifiers? 
527
2a62f0845f98 updated
cu
parents: 444
diff changeset
   125
937
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   126
  \solution{
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   127
  \begin{plstx}[margin=1cm]
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   128
  : \meta{Id\/} ::= \meta{Let\/}\cdot \meta{R}\\
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   129
  : \meta{Let\/} ::= a \;\mid\; \dots \;\mid\; z\\
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   130
  : \meta{Dig\/} ::= 0 \;\mid\; \dots \;\mid\; 9\\
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   131
  : \meta{R\/} ::= \meta{Let\/} \cdot \meta{R\/} \;\mid\;
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   132
                  \meta{Dig\/} \cdot \meta{R\/} \;\mid\;
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   133
                  $\_$ \cdot \meta{R\/} \;\mid\; \epsilon\\
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   134
  \end{plstx}  
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   135
}
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   136
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   137
\item If we specify keywords, identifiers (see above) and programs
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   138
  by grammar rules, are there any problems you need to be careful
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   139
  about when using a parser for identifying tokens?
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   140
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   141
  \solution{Parsers do not have the POSIX rules (e.g.~longest munch
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   142
    rule) built in. I am not aware that any parser does this out of
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   143
    the box and you would need to build in such constraints into the
dc5ab66b11cc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents: 619
diff changeset
   144
    grammar rules or parsing mechanism.}
527
2a62f0845f98 updated
cu
parents: 444
diff changeset
   145
444
3056a4c071b0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 401
diff changeset
   146
\item {\bf(Optional)} Recall the definitions for $Der$ and $der$
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
   147
      from the lectures. Prove by induction on $r$ the
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
   148
      property that 
147
4725bba8ef26 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 102
diff changeset
   149
4725bba8ef26 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 102
diff changeset
   150
\[
4725bba8ef26 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 102
diff changeset
   151
L(der\,c\,r) = Der\,c\,(L(r))
4725bba8ef26 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 102
diff changeset
   152
\]
4725bba8ef26 added slides
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 102
diff changeset
   153
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 359
diff changeset
   154
      holds.
294
c29853b672fb updated hws
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 292
diff changeset
   155
444
3056a4c071b0 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 401
diff changeset
   156
\item \POSTSCRIPT        
93
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   157
\end{enumerate}
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   158
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   159
\end{document}
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   160
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   161
%%% Local Variables: 
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   162
%%% mode: latex
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   163
%%% TeX-master: t
4794759139ea better organised
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   164
%%% End: