doc-src/TutorialI/Recdef/Nested2.thy
changeset 9933 9feb1e0c4cb3
parent 9834 109b11c4e77e
child 9940 102f2430cef9
     1.1 --- a/doc-src/TutorialI/Recdef/Nested2.thy	Tue Sep 12 14:59:44 2000 +0200
     1.2 +++ b/doc-src/TutorialI/Recdef/Nested2.thy	Tue Sep 12 15:43:15 2000 +0200
     1.3 @@ -23,7 +23,6 @@
     1.4  @{term"trev"}:
     1.5  *};
     1.6  
     1.7 -lemmas [cong] = map_cong;
     1.8  lemma "trev(trev t) = t";
     1.9  apply(induct_tac t rule:trev.induct);
    1.10  txt{*\noindent
    1.11 @@ -32,12 +31,12 @@
    1.12  both of which are solved by simplification:
    1.13  *};
    1.14  
    1.15 -by(simp_all add:rev_map sym[OF map_compose]);
    1.16 +by(simp_all add:rev_map sym[OF map_compose] cong:map_cong);
    1.17  
    1.18  text{*\noindent
    1.19  If the proof of the induction step mystifies you, we recommend to go through
    1.20  the chain of simplification steps in detail; you will probably need the help of
    1.21 -@{text"trace_simp"}.
    1.22 +@{text"trace_simp"}. Theorem @{thm[source]map_cong} is discussed below.
    1.23  %\begin{quote}
    1.24  %{term[display]"trev(trev(App f ts))"}\\
    1.25  %{term[display]"App f (rev(map trev (rev(map trev ts))))"}\\
    1.26 @@ -84,5 +83,8 @@
    1.27  congruence rules as the simplifier (\S\ref{sec:simp-cong}) but that
    1.28  declaring a congruence rule for the simplifier does not make it
    1.29  available to \isacommand{recdef}, and vice versa. This is intentional.
    1.30 +%The simplifier's congruence rules cannot be used by recdef.
    1.31 +%For example the weak congruence rules for if and case would prevent
    1.32 +%recdef from generating sensible termination conditions.
    1.33  *};
    1.34  (*<*)end;(*>*)