lib+refine: strengthen corres_assert_assume_l and move to Lib

Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
This commit is contained in:
Michael McInerney 2024-01-09 15:51:44 +10:30 committed by michaelmcinerney
parent 449cfc702e
commit dc62bfdfeb
6 changed files with 5 additions and 25 deletions

View File

@ -740,6 +740,11 @@ lemma corres_assert_assume:
by (auto simp: bind_def assert_def fail_def return_def
corres_underlying_def)
lemma corres_assert_assume_l:
"corres_underlying sr nf nf' rrel P Q (f ()) g
\<Longrightarrow> corres_underlying sr nf nf' rrel (P and (\<lambda>s. P')) Q (assert P' >>= f) g"
by (force simp: corres_underlying_def assert_def return_def bind_def fail_def)
lemma corres_assert_gen_asm_cross:
"\<lbrakk> \<And>s s'. \<lbrakk>(s, s') \<in> sr; P' s; Q' s'\<rbrakk> \<Longrightarrow> A;
A \<Longrightarrow> corres_underlying sr nf nf' r P Q f (g ()) \<rbrakk>

View File

@ -1575,11 +1575,6 @@ lemma corres_assert_ret:
apply (simp add: assert_def return_def fail_def)
done
lemma corres_assert_assume_l:
"corres dc P Q (f ()) g
\<Longrightarrow> corres dc (P and (\<lambda>s. P')) Q (assert P' >>= f) g"
by (force simp: corres_underlying_def assert_def return_def bind_def fail_def)
lemma corres_assert_assume_r:
"corres dc P Q f (g ())
\<Longrightarrow> corres dc P (Q and (\<lambda>s. Q')) f (assert Q' >>= g)"

View File

@ -1454,11 +1454,6 @@ lemma corres_assert_ret:
apply (simp add: assert_def return_def fail_def)
done
lemma corres_assert_assume_l:
"corres dc P Q (f ()) g
\<Longrightarrow> corres dc (P and (\<lambda>s. P')) Q (assert P' >>= f) g"
by (force simp: corres_underlying_def assert_def return_def bind_def fail_def)
lemma corres_assert_assume_r:
"corres dc P Q f (g ())
\<Longrightarrow> corres dc P (Q and (\<lambda>s. Q')) f (assert Q' >>= g)"

View File

@ -1550,11 +1550,6 @@ lemma corres_assert_ret:
apply (simp add: assert_def return_def fail_def)
done
lemma corres_assert_assume_l:
"corres dc P Q (f ()) g
\<Longrightarrow> corres dc (P and (\<lambda>s. P')) Q (assert P' >>= f) g"
by (force simp: corres_underlying_def assert_def return_def bind_def fail_def)
lemma corres_assert_assume_r:
"corres dc P Q f (g ())
\<Longrightarrow> corres dc P (Q and (\<lambda>s. Q')) f (assert Q' >>= g)"

View File

@ -1419,11 +1419,6 @@ lemma corres_assert_ret:
apply (simp add: assert_def return_def fail_def)
done
lemma corres_assert_assume_l:
"corres dc P Q (f ()) g
\<Longrightarrow> corres dc (P and (\<lambda>s. P')) Q (assert P' >>= f) g"
by (force simp: corres_underlying_def assert_def return_def bind_def fail_def)
lemma corres_assert_assume_r:
"corres dc P Q f (g ())
\<Longrightarrow> corres dc P (Q and (\<lambda>s. Q')) f (assert Q' >>= g)"

View File

@ -1418,11 +1418,6 @@ lemma corres_assert_ret:
apply (simp add: assert_def return_def fail_def)
done
lemma corres_assert_assume_l:
"corres dc P Q (f ()) g
\<Longrightarrow> corres dc (P and (\<lambda>s. P')) Q (assert P' >>= f) g"
by (force simp: corres_underlying_def assert_def return_def bind_def fail_def)
lemma corres_assert_assume_r:
"corres dc P Q f (g ())
\<Longrightarrow> corres dc P (Q and (\<lambda>s. Q')) f (assert Q' >>= g)"