equal
deleted
inserted
replaced
556 iterated transitions. The proof is rather obvious by rule induction |
556 iterated transitions. The proof is rather obvious by rule induction |
557 over the definition of @{term "root =xs\<Rightarrow> root'"}. |
557 over the definition of @{term "root =xs\<Rightarrow> root'"}. |
558 *} |
558 *} |
559 |
559 |
560 lemma transitions_invariant: |
560 lemma transitions_invariant: |
561 assumes r: "\<And>r x r'. r \<midarrow>x\<rightarrow> r' \<Longrightarrow> Q r \<Longrightarrow> P x \<Longrightarrow> Q r'" |
561 assumes r: "\<And>r x r'. r \<midarrow>x\<rightarrow> r' \<Longrightarrow> Q r \<Longrightarrow> P x \<Longrightarrow> Q r'" |
562 and trans: "root =xs\<Rightarrow> root'" |
562 and trans: "root =xs\<Rightarrow> root'" |
563 shows "Q root \<Longrightarrow> \<forall>x \<in> set xs. P x \<Longrightarrow> Q root'" |
563 shows "Q root \<Longrightarrow> \<forall>x \<in> set xs. P x \<Longrightarrow> Q root'" |
564 using trans |
564 using trans |
565 proof induct |
565 proof induct |
566 case nil |
566 case nil |