src/HOL/IMP/Compiler0.thy
changeset 13130 423ce375bf65
parent 13112 7275750553b7
child 14565 c6dc17aab88a
equal deleted inserted replaced
13129:bb448fb75191 13130:423ce375bf65
   213 
   213 
   214 text {*
   214 text {*
   215   Second proof; statement is generalized to cater for prefixes and suffixes;
   215   Second proof; statement is generalized to cater for prefixes and suffixes;
   216   needs none of the lifting lemmas, but instantiations of pre/suffix.
   216   needs none of the lifting lemmas, but instantiations of pre/suffix.
   217   *}
   217   *}
   218 
   218 (*
   219 theorem assumes A: "\<langle>c,s\<rangle> \<longrightarrow>\<^sub>c t"
   219 theorem assumes A: "\<langle>c,s\<rangle> \<longrightarrow>\<^sub>c t"
   220 shows "\<And>a z. a@compile c@z \<turnstile> \<langle>s,size a\<rangle> -*\<rightarrow> \<langle>t,size a + size(compile c)\<rangle>"
   220 shows "\<And>a z. a@compile c@z \<turnstile> \<langle>s,size a\<rangle> -*\<rightarrow> \<langle>t,size a + size(compile c)\<rangle>"
   221       (is "\<And>a z. ?P c s t a z")
   221       (is "\<And>a z. ?P c s t a z")
   222 proof -
   222 proof -
   223   from A show "\<And>a z. ?thesis a z"
   223   from A show "\<And>a z. ?thesis a z"
   267  apply assumption
   267  apply assumption
   268 apply(rule converse_rtrancl_into_rtrancl)
   268 apply(rule converse_rtrancl_into_rtrancl)
   269  apply(force intro!: JMPB)
   269  apply(force intro!: JMPB)
   270 apply(simp)
   270 apply(simp)
   271 done
   271 done
   272 
   272 *)
   273 text {* Missing: the other direction! I did much of it, and although
   273 text {* Missing: the other direction! I did much of it, and although
   274 the main lemma is very similar to the one in the new development, the
   274 the main lemma is very similar to the one in the new development, the
   275 lemmas surrounding it seemed much more complicated. In the end I gave
   275 lemmas surrounding it seemed much more complicated. In the end I gave
   276 up. *}
   276 up. *}
   277 
   277