spec proof: resolve_address_bits'.simps[simp del]
Remove resolve_address_bits'.simps from the simp set at the definition site, instead of in the middle of the proofs. Signed-off-by: Corey Lewis <Corey.Lewis@data61.csiro.au>
This commit is contained in:
parent
26ea36104b
commit
7baa19495f
|
@ -141,8 +141,6 @@ where
|
|||
| CancelBadgedSendsCall cap \<Rightarrow> pas_cap_cur_auth aag cap
|
||||
| RevokeCall ptr \<Rightarrow> is_subject aag (fst ptr))"
|
||||
|
||||
declare resolve_address_bits'.simps[simp del]
|
||||
|
||||
lemma resolve_address_bits_authorised_aux:
|
||||
"s \<turnstile> \<lbrace>pas_refined aag and K (is_cnode_cap (fst (cap, cref))
|
||||
\<longrightarrow> (\<forall>x \<in> obj_refs (fst (cap, cref)). is_subject aag x))\<rbrace>
|
||||
|
|
|
@ -89,7 +89,7 @@ lemma separate_cnode_cap_rab:
|
|||
(throwError (GuardMismatch (length cref) guard))
|
||||
| _ \<Rightarrow> throwError InvalidRoot)"
|
||||
unfolding separate_cnode_cap_def resolve_address_bits_def
|
||||
by (auto simp: word_bits_def split: cap.split_asm)
|
||||
by (auto simp: word_bits_def resolve_address_bits'.simps split: cap.split_asm)
|
||||
|
||||
definition
|
||||
"separate_state s \<equiv> \<forall>p. tcb_at p s \<longrightarrow> separate_tcb p (caps_of_state s)"
|
||||
|
|
|
@ -97,6 +97,7 @@ lemma bisim_rab:
|
|||
| _ \<Rightarrow> throwError undefined
|
||||
odE)
|
||||
(resolve_address_bits (cap, cref))"
|
||||
using resolve_address_bits'.simps[simp]
|
||||
unfolding resolve_address_bits_def
|
||||
apply (cases "length cref < word_bits")
|
||||
apply (auto intro!: bisim_underlyingI
|
||||
|
|
|
@ -526,8 +526,6 @@ lemma cap_table_at_gsCNodes:
|
|||
apply blast
|
||||
done
|
||||
|
||||
declare resolve_address_bits'.simps[simp del]
|
||||
|
||||
lemma getSlotCap_valid:
|
||||
"\<lbrace>\<lambda>s. valid_objs' s \<and> (cte_wp_at' (\<lambda>_. True) p s \<longrightarrow> (\<forall>cap. valid_cap' cap s \<longrightarrow> Q cap s))\<rbrace>
|
||||
getSlotCap p \<lbrace>Q\<rbrace>"
|
||||
|
|
|
@ -530,8 +530,6 @@ lemma cap_table_at_gsCNodes:
|
|||
apply blast
|
||||
done
|
||||
|
||||
declare resolve_address_bits'.simps[simp del]
|
||||
|
||||
lemma getSlotCap_valid:
|
||||
"\<lbrace>\<lambda>s. valid_objs' s \<and> (cte_wp_at' (\<lambda>_. True) p s \<longrightarrow> (\<forall>cap. valid_cap' cap s \<longrightarrow> Q cap s))\<rbrace>
|
||||
getSlotCap p \<lbrace>Q\<rbrace>"
|
||||
|
|
|
@ -523,8 +523,6 @@ lemma cap_table_at_gsCNodes:
|
|||
apply blast
|
||||
done
|
||||
|
||||
declare resolve_address_bits'.simps[simp del]
|
||||
|
||||
lemma rab_corres':
|
||||
"\<lbrakk> cap_relation (fst a) c'; drop (64-bits) (to_bl cref') = snd a;
|
||||
bits = length (snd a) \<rbrakk> \<Longrightarrow>
|
||||
|
|
|
@ -525,8 +525,6 @@ lemma cap_table_at_gsCNodes:
|
|||
apply blast
|
||||
done
|
||||
|
||||
declare resolve_address_bits'.simps[simp del]
|
||||
|
||||
lemma rab_corres':
|
||||
"\<lbrakk> cap_relation (fst a) c'; drop (64-bits) (to_bl cref') = snd a;
|
||||
bits = length (snd a) \<rbrakk> \<Longrightarrow>
|
||||
|
|
|
@ -200,6 +200,8 @@ termination
|
|||
apply (auto simp: whenE_def returnOk_def return_def rab_termination)
|
||||
done
|
||||
|
||||
declare resolve_address_bits'.simps[simp del]
|
||||
|
||||
definition resolve_address_bits where
|
||||
"resolve_address_bits \<equiv> resolve_address_bits' TYPE('z::state_ext)"
|
||||
|
||||
|
|
Loading…
Reference in New Issue