lib: eliminate hoare_gets_post

duplicate of hoare_gets_sp

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
This commit is contained in:
Gerwin Klein 2023-01-24 16:17:19 +11:00
parent 625c6e359d
commit 49c93e64ee
No known key found for this signature in database
GPG Key ID: 20A847CE6AB7F5F3
9 changed files with 12 additions and 14 deletions

View File

@ -426,8 +426,6 @@ lemma hoare_Ball_helper:
apply (rule refl)
done
lemmas hoare_gets_post = hoare_gets_sp (* FIXME lib: eliminate *)
lemma handy_prop_divs:
assumes x: "\<And>P. \<lbrace>\<lambda>s. P (Q s) \<and> S s\<rbrace> f \<lbrace>\<lambda>rv s. P (Q' rv s)\<rbrace>"
"\<And>P. \<lbrace>\<lambda>s. P (R s) \<and> S s\<rbrace> f \<lbrace>\<lambda>rv s. P (R' rv s)\<rbrace>"

View File

@ -65,7 +65,7 @@ lemma setCTE_asidpool':
"\<lbrace> ko_at' (ASIDPool pool) p \<rbrace> setCTE c p' \<lbrace>\<lambda>_. ko_at' (ASIDPool pool) p\<rbrace>"
apply (clarsimp simp: setCTE_def)
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad)
apply (frule updateObject_type)
apply (clarsimp simp: obj_at'_def projectKOs)

View File

@ -146,7 +146,7 @@ lemma setCTE_asidpool':
"\<lbrace> ko_at' (ASIDPool pool) p \<rbrace> setCTE c p' \<lbrace>\<lambda>_. ko_at' (ASIDPool pool) p\<rbrace>"
apply (clarsimp simp: setCTE_def)
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad)
apply (frule updateObject_type)
apply (clarsimp simp: obj_at'_def projectKOs)

View File

@ -1531,7 +1531,7 @@ lemma setCTE_asidpool':
"\<lbrace> ko_at' (ASIDPool pool) p \<rbrace> setCTE c p' \<lbrace>\<lambda>_. ko_at' (ASIDPool pool) p\<rbrace>"
apply (clarsimp simp: setCTE_def)
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad)
apply (frule updateObject_type)
apply (clarsimp simp: obj_at'_def)

View File

@ -2231,7 +2231,7 @@ lemma setCTE_asidpool':
"\<lbrace> ko_at' (ASIDPool pool) p \<rbrace> setCTE c p' \<lbrace>\<lambda>_. ko_at' (ASIDPool pool) p\<rbrace>"
apply (clarsimp simp: setCTE_def)
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad)
apply (frule updateObject_type)
apply (clarsimp simp: obj_at'_def projectKOs)

View File

@ -186,7 +186,7 @@ lemma obj_at_setObject1:
setObject p (v::'a::pspace_storable)
\<lbrace> \<lambda>rv. obj_at' (\<lambda>x::'a::pspace_storable. True) t \<rbrace>"
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad obj_at'_def
projectKOs lookupAround2_char1
project_inject
@ -208,7 +208,7 @@ lemma obj_at_setObject2:
setObject p (v::'a)
\<lbrace> \<lambda>rv. obj_at' P t \<rbrace>"
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad)
apply (frule updateObject_type)
apply (drule R)

View File

@ -254,7 +254,7 @@ lemma obj_at_setObject1:
setObject p (v::'a::pspace_storable)
\<lbrace> \<lambda>rv. obj_at' (\<lambda>x::'a::pspace_storable. True) t \<rbrace>"
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad obj_at'_def
projectKOs lookupAround2_char1
project_inject
@ -276,7 +276,7 @@ lemma obj_at_setObject2:
setObject p (v::'a)
\<lbrace> \<lambda>rv. obj_at' P t \<rbrace>"
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad)
apply (frule updateObject_type)
apply (drule R)

View File

@ -183,7 +183,7 @@ lemma obj_at_setObject1:
setObject p (v::'a::pspace_storable)
\<lbrace> \<lambda>rv. obj_at' (\<lambda>x::'a::pspace_storable. True) t \<rbrace>"
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad obj_at'_def lookupAround2_char1 project_inject
dest!: R)
apply (subgoal_tac "objBitsKO (injectKO v) = objBitsKO (injectKO obj)")
@ -203,7 +203,7 @@ lemma obj_at_setObject2:
setObject p (v::'a)
\<lbrace> \<lambda>rv. obj_at' P t \<rbrace>"
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad)
apply (frule updateObject_type)
apply (drule R)

View File

@ -188,7 +188,7 @@ lemma obj_at_setObject1:
setObject p (v::'a::pspace_storable)
\<lbrace> \<lambda>rv. obj_at' (\<lambda>x::'a::pspace_storable. True) t \<rbrace>"
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad obj_at'_def
projectKOs lookupAround2_char1
project_inject
@ -210,7 +210,7 @@ lemma obj_at_setObject2:
setObject p (v::'a)
\<lbrace> \<lambda>rv. obj_at' P t \<rbrace>"
apply (simp add: setObject_def split_def)
apply (rule hoare_seq_ext [OF _ hoare_gets_post])
apply (rule hoare_seq_ext [OF _ hoare_gets_sp])
apply (clarsimp simp: valid_def in_monad)
apply (frule updateObject_type)
apply (drule R)