Valid_prop.thy
author chunhan
Fri, 03 May 2013 08:20:21 +0100
changeset 1 7d9c0ed02b56
permissions -rw-r--r--
thy files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
     1
theory Valid_prop
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
     2
imports Main Flask Flask_type My_list_prefix
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
     3
begin
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
     4
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
     5
context flask begin
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
     6
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
     7
lemma vd_cons'[rule_format]: "valid s' \<Longrightarrow> e # s = s' \<longrightarrow> valid s"
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
     8
by (erule valid.induct, auto)
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
     9
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    10
lemma vd_cons: "valid (e # s) \<Longrightarrow> valid s"
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    11
by (simp only:vd_cons')
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    12
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    13
lemma vd_appd: " valid (\<tau>' @ \<tau>) \<Longrightarrow> valid \<tau>"
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    14
apply (induct \<tau>')
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    15
by (auto simp:vd_cons)
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    16
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    17
lemma vd_preceq: "\<lbrakk>\<tau>' \<preceq> \<tau>; valid \<tau>\<rbrakk> \<Longrightarrow> valid \<tau>'"
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    18
apply (erule no_juniorE)
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    19
by (simp only:vd_appd)
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    20
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    21
lemma vd_prec: "\<lbrakk>\<tau>' \<prec> \<tau>; valid \<tau>\<rbrakk> \<Longrightarrow> valid \<tau>'"
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    22
apply (drule is_ancestor_no_junior)
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    23
by (simp only:vd_preceq)
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    24
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    25
lemma vt_grant_os: "valid (e # \<tau>) \<Longrightarrow> os_grant \<tau> e"
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    26
by (erule valid.cases, simp+)
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    27
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    28
lemma vt_grant: "valid (e # \<tau>) \<Longrightarrow> grant \<tau> e"
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    29
by (erule valid.cases, simp+)
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    30
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    31
end
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    32
7d9c0ed02b56 thy files
chunhan
parents:
diff changeset
    33
end