src/Doc/ProgProve/Logic.thy
changeset 54217 2fa338fd0a28
parent 54214 6d0688ce4ee2
child 54218 07c0c121a8dc
equal deleted inserted replaced
54216:c0c453ce70a7 54217:2fa338fd0a28
   797 refl': "star' r x x" |
   797 refl': "star' r x x" |
   798 step': "star' r x y \<Longrightarrow> r y z \<Longrightarrow> star' r x z"
   798 step': "star' r x y \<Longrightarrow> r y z \<Longrightarrow> star' r x z"
   799 
   799 
   800 text{*
   800 text{*
   801 The single @{text r} step is performer after rather than before the @{text star'}
   801 The single @{text r} step is performer after rather than before the @{text star'}
   802 steps. Prove @{prop "star' r x y \<Longrightarrow> star r x y"}. You may need a lemma.
   802 steps. Prove @{prop "star' r x y \<Longrightarrow> star r x y"} and
   803 The other direction can also be proved but
   803 @{prop "star r x y \<Longrightarrow> star r' x y"}. You may need lemmas.
   804 you have to be careful how to formulate the lemma it will require:
   804 Note that rule induction fails
   805 make sure that the assumption about the inductive predicate
   805 if the assumption about the inductive predicate is not the first assumption.
   806 is the first assumption. Assumptions preceding the inductive predicate do not
       
   807 take part in the induction.
       
   808 \endexercise
   806 \endexercise
   809 
   807 
   810 \ifsem
   808 \ifsem
   811 \begin{exercise}
   809 \begin{exercise}
   812 In \autoref{sec:AExp} we defined a recursive evaluation function
   810 In \autoref{sec:AExp} we defined a recursive evaluation function