merged
authorChristian Urban <urbanc@in.tum.de>
Sat, 21 Jan 2012 15:18:38 +0000
changeset 508 633d3f013be2
parent 507 d770a7b31aeb (current diff)
parent 506 caa733190454 (diff)
child 509 dcefee89bf62
merged
progtutorial.pdf
--- a/ProgTutorial/Advanced.thy	Sat Jan 21 15:16:04 2012 +0000
+++ b/ProgTutorial/Advanced.thy	Sat Jan 21 15:18:38 2012 +0000
@@ -32,7 +32,7 @@
   parallel.
 *}
 
-section {* Theories and Setups\label{sec:theories} *}
+section {* Theories\label{sec:theories} *}
 
 text {*
   Theories, as said above, are the most basic layer of abstraction in
--- a/ProgTutorial/Tactical.thy	Sat Jan 21 15:16:04 2012 +0000
+++ b/ProgTutorial/Tactical.thy	Sat Jan 21 15:18:38 2012 +0000
@@ -13,6 +13,19 @@
 chapter {* Tactical Reasoning\label{chp:tactical} *}
 
 text {*
+   \begin{flushright}
+  {\em
+  ``The first thing I would say is that when you write a program, think of\\ 
+   it primarily as a work of literature. You're trying to write something\\ 
+   that human beings are going to read. Don't think of it primarily as\\  
+   something a computer is going to follow. The more effective you are\\ 
+   at making your program readable, the more effective it's going to\\  
+   be: You'll understand it today, you'll understand it next week, and\\ 
+   your successors who are going to maintain and modify it will\\ 
+   understand it.''}\\[1ex]
+  Donald E.~Knuth, from an interview in Dr.~Dobb's Journal, 1996.
+  \end{flushright}
+
   One of the main reason for descending to the ML-level of Isabelle is to be
   able to implement automatic proof procedures. Such proof procedures can
   considerably lessen the burden of manual reasoning. They are centred around