doc-src/TutorialI/Ifexpr/Ifexpr.thy
changeset 9458 c613cd06d5cf
parent 8771 026f37a86ea7
child 9541 d17c0b34d5c8
equal deleted inserted replaced
9457:966974a7a5b3 9458:c613cd06d5cf
    82 txt{*\noindent
    82 txt{*\noindent
    83 The proof is canonical:
    83 The proof is canonical:
    84 *}
    84 *}
    85 
    85 
    86 apply(induct_tac b);
    86 apply(induct_tac b);
    87 apply(auto).;
    87 by(auto);
    88 
    88 
    89 text{*\noindent
    89 text{*\noindent
    90 In fact, all proofs in this case study look exactly like this. Hence we do
    90 In fact, all proofs in this case study look exactly like this. Hence we do
    91 not show them below.
    91 not show them below.
    92 
    92 
   125 
   125 
   126 lemma [simp]:
   126 lemma [simp]:
   127   "\\<forall>t e. valif (normif b t e) env = valif (IF b t e) env";
   127   "\\<forall>t e. valif (normif b t e) env = valif (IF b t e) env";
   128 (*<*)
   128 (*<*)
   129 apply(induct_tac b);
   129 apply(induct_tac b);
   130 apply(auto).;
   130 by(auto);
   131 
   131 
   132 theorem "valif (norm b) env = valif b env";
   132 theorem "valif (norm b) env = valif b env";
   133 apply(induct_tac b);
   133 apply(induct_tac b);
   134 apply(auto).;
   134 by(auto);
   135 (*>*)
   135 (*>*)
   136 text{*\noindent
   136 text{*\noindent
   137 Note that the lemma does not have a name, but is implicitly used in the proof
   137 Note that the lemma does not have a name, but is implicitly used in the proof
   138 of the theorem shown above because of the \isa{[simp]} attribute.
   138 of the theorem shown above because of the \isa{[simp]} attribute.
   139 
   139 
   151 text{*\noindent
   151 text{*\noindent
   152 and prove \isa{normal(norm b)}. Of course, this requires a lemma about
   152 and prove \isa{normal(norm b)}. Of course, this requires a lemma about
   153 normality of \isa{normif}:
   153 normality of \isa{normif}:
   154 *}
   154 *}
   155 
   155 
   156 lemma [simp]: "\\<forall>t e. normal(normif b t e) = (normal t \\<and> normal e)";
   156 lemma[simp]: "\\<forall>t e. normal(normif b t e) = (normal t \\<and> normal e)";
   157 (*<*)
   157 (*<*)
   158 apply(induct_tac b);
   158 apply(induct_tac b);
   159 apply(auto).;
   159 by(auto);
   160 
   160 
   161 theorem "normal(norm b)";
   161 theorem "normal(norm b)";
   162 apply(induct_tac b);
   162 apply(induct_tac b);
   163 apply(auto).;
   163 by(auto);
   164 
   164 
   165 end
   165 end
   166 (*>*)
   166 (*>*)