src/HOL/MicroJava/Comp/CorrCompTp.thy
changeset 69085 9999d7823b8f
parent 68451 c34aa23a1fb6
child 71989 bad75618fb82
equal deleted inserted replaced
69084:c7c38c901267 69085:9999d7823b8f
   172 
   172 
   173 lemma sup_loc_update_index: "
   173 lemma sup_loc_update_index: "
   174   \<lbrakk> G \<turnstile> T \<preceq> T'; is_type G T'; length pns = length pTs; distinct pns; unique lvars;
   174   \<lbrakk> G \<turnstile> T \<preceq> T'; is_type G T'; length pns = length pTs; distinct pns; unique lvars;
   175   snd (local_env G C (mn, pTs) pns lvars) vname = Some T' \<rbrakk>
   175   snd (local_env G C (mn, pTs) pns lvars) vname = Some T' \<rbrakk>
   176   \<Longrightarrow> 
   176   \<Longrightarrow> 
   177   comp G \<turnstile> inited_LT C pTs lvars [index (pns, lvars, blk, res) vname := OK T] <=l 
   177   comp G \<turnstile> (inited_LT C pTs lvars) [index (pns, lvars, blk, res) vname := OK T] <=l 
   178            inited_LT C pTs lvars"
   178            inited_LT C pTs lvars"
   179   apply (subgoal_tac " index (pns, lvars, blk, res) vname < length (inited_LT C pTs lvars)")
   179   apply (subgoal_tac " index (pns, lvars, blk, res) vname < length (inited_LT C pTs lvars)")
   180    apply (frule_tac blk=blk and res=res in local_env_inited_LT, assumption+)
   180    apply (frule_tac blk=blk and res=res in local_env_inited_LT, assumption+)
   181    apply (rule sup_loc_trans)
   181    apply (rule sup_loc_trans)
   182     apply (rule_tac b="OK T'" in sup_loc_update)
   182     apply (rule_tac b="OK T'" in sup_loc_update)