diff -r 4abb95a7264b -r 014a4ef807dc Paper/Paper.thy --- a/Paper/Paper.thy Thu Apr 01 11:34:43 2010 +0200 +++ b/Paper/Paper.thy Thu Apr 01 12:13:25 2010 +0200 @@ -1655,9 +1655,45 @@ \end{eqnarray} With the Property~\ref{avoiding} we can prove a strong induction principle - which we show again only for the Core Haskell example: + which we show again only for the interesting constructors in the Core Haskell + example. We first show the weak induction principle for comparison: + +\begin{equation}\nonumber +\infer +{ + @{text "P1 tkind \ P2 ckind \ \ \ P12 cvars"} +}{ + \begin{tabular}{cp{7cm}} + @{text "P1 KStar"}\\ + @{text "\tk1 tk2. \P1 tk1; P1 tk2\ \ P1 (KFun tk1 tk2)"}\\ + @{text "\"}\\ + @{text "\v ty t1 t2. \P3 ty; P7 t1; P7 t2\ \ P7 (Let v ty t1 t2)"}\\ + @{text "\p t al. \P9 p; P7 t; P8 al\ \ P8 (ACons p t al)"}\\ + @{text "\"} + \end{tabular} +} +\end{equation} + - +In comparison, the cases for the same constructors in the derived strong +induction principle are: + +\begin{equation}\nonumber +\infer +{ + @{text "P1 a tkind \ P2 a ckind \ \ \ P12 a cvars"} +}{ + \begin{tabular}{cp{7cm}} + @{text "\b. P1 b KStar"}\\ + @{text "\tk1 tk2 b. \\c. P1 c tk1; \c. P1 c tk2\ \ P1 b (KFun tk1 tk2)"}\\ + @{text "\"}\\ + @{text "\v ty t1 t2 b. \\c. P3 c ty; \c. P7 c t1; \c. P7 c t2; atom var \ b\ \ P7 b (Let v ty t1 t2)"}\\ + @{text "\p t al b. \\c. P9 c p; \c. P7 c t; \c. P8 c al; set (bv p) \* b\ \ P8 b (ACons p t al)"}\\ + @{text "\"} + \end{tabular} +} +\end{equation} + *}