Index: doc/LaTeXmacros/common.tex
===================================================================
--- doc/LaTeXmacros/common.tex	(revision e3d1cc1cc41dfd30d0ace9e1dc26baf3cf303ced)
+++ doc/LaTeXmacros/common.tex	(revision 71b5d4d3e2dc8bfce04f123e7ce140eda12045e6)
@@ -153,4 +153,8 @@
         {\abbrevFont{etc}.\xspace}%
 }%
+\newcommand{\etal}{%
+	\@ifnextchar{.}{\abbrevFont{et al}}%
+	        {\abbrevFont{et al}.\xspace}%
+}%
 \makeatother
 
Index: doc/aaron_comp_II/comp_II.tex
===================================================================
--- doc/aaron_comp_II/comp_II.tex	(revision e3d1cc1cc41dfd30d0ace9e1dc26baf3cf303ced)
+++ doc/aaron_comp_II/comp_II.tex	(revision 71b5d4d3e2dc8bfce04f123e7ce140eda12045e6)
@@ -463,5 +463,5 @@
 Deciding when to switch between bottom-up and top-down resolution to minimize wasted work in a hybrid algorithm is a necessarily heuristic process, and though finding good heuristics for which subexpressions to swich matching strategies on is an open question, one reasonable approach might be to set a threshold $t$ for the number of candidate functions, and to use top-down resolution for any subexpression with fewer than $t$ candidate functions, to minimize the number of unmatchable argument interpretations computed, but to use bottom-up resolution for any subexpression with at least $t$ candidate functions, to reduce duplication in argument interpretation computation between the different candidate functions. 
 
-Ganzinger and Ripken~\cite{Ganzinger80} propose an approach that uses a top-down filtering pass followed by a bottom-up filtering pass to reduce the number of candidate interpretations; they prove that for the Ada programming language a small number of such iterations is sufficient to converge to a solution for the expression resolution problem. 
+Ganzinger and Ripken~\cite{Ganzinger80} propose an approach (later refined by Pennello \etal~\cite{Pennello80}) that uses a top-down filtering pass followed by a bottom-up filtering pass to reduce the number of candidate interpretations; they prove that for the Ada programming language a small number of such iterations is sufficient to converge to a solution for the expression resolution problem. 
 Their algorithm differs from the hybrid approach under investigation in that it takes multiple passes over the expression tree to yield a solution, but is otherwise similar.
 
Index: doc/bibliography/cfa.bib
===================================================================
--- doc/bibliography/cfa.bib	(revision e3d1cc1cc41dfd30d0ace9e1dc26baf3cf303ced)
+++ doc/bibliography/cfa.bib	(revision 71b5d4d3e2dc8bfce04f123e7ce140eda12045e6)
@@ -5870,4 +5870,23 @@
 }
 
+@article{Pennello80,
+	contributer = {a3moss@uwaterloo.ca},
+	author = {Pennello, Tom and DeRemer, Frank and Meyers, Richard},
+	title = {A Simplified Operator Identification Scheme for {Ada}},
+	journal = {SIGPLAN Notices},
+	issue_date = {July-August 1980},
+	volume = {15},
+	number = {7 and 8},
+	month = jul,
+	year = {1980},
+	issn = {0362-1340},
+	pages = {82--87},
+	numpages = {6},
+	url = {http://doi.acm.org/10.1145/947680.947688},
+	doi = {10.1145/947680.947688},
+	publisher = {ACM},
+	address = {New York, NY, USA},
+}
+
 @inproceedings{Dice10,
     keywords	= {hardware, synchronization, transactional memory},
