Valid_prop.thy
changeset 1 7d9c0ed02b56
equal deleted inserted replaced
0:34d01e9a772e 1:7d9c0ed02b56
       
     1 theory Valid_prop
       
     2 imports Main Flask Flask_type My_list_prefix
       
     3 begin
       
     4 
       
     5 context flask begin
       
     6 
       
     7 lemma vd_cons'[rule_format]: "valid s' \<Longrightarrow> e # s = s' \<longrightarrow> valid s"
       
     8 by (erule valid.induct, auto)
       
     9 
       
    10 lemma vd_cons: "valid (e # s) \<Longrightarrow> valid s"
       
    11 by (simp only:vd_cons')
       
    12 
       
    13 lemma vd_appd: " valid (\<tau>' @ \<tau>) \<Longrightarrow> valid \<tau>"
       
    14 apply (induct \<tau>')
       
    15 by (auto simp:vd_cons)
       
    16 
       
    17 lemma vd_preceq: "\<lbrakk>\<tau>' \<preceq> \<tau>; valid \<tau>\<rbrakk> \<Longrightarrow> valid \<tau>'"
       
    18 apply (erule no_juniorE)
       
    19 by (simp only:vd_appd)
       
    20 
       
    21 lemma vd_prec: "\<lbrakk>\<tau>' \<prec> \<tau>; valid \<tau>\<rbrakk> \<Longrightarrow> valid \<tau>'"
       
    22 apply (drule is_ancestor_no_junior)
       
    23 by (simp only:vd_preceq)
       
    24 
       
    25 lemma vt_grant_os: "valid (e # \<tau>) \<Longrightarrow> os_grant \<tau> e"
       
    26 by (erule valid.cases, simp+)
       
    27 
       
    28 lemma vt_grant: "valid (e # \<tau>) \<Longrightarrow> grant \<tau> e"
       
    29 by (erule valid.cases, simp+)
       
    30 
       
    31 end
       
    32 
       
    33 end