Skip to content
Snippets Groups Projects
Commit d185a08c authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Bump Iris.

parent 5f0a6f6d
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -11,5 +11,5 @@ build: [make "-j%{jobs}%"] ...@@ -11,5 +11,5 @@ build: [make "-j%{jobs}%"]
install: [make "install"] install: [make "install"]
remove: [ "sh" "-c" "rm -rf '%{lib}%/coq/user-contrib/lrust'" ] remove: [ "sh" "-c" "rm -rf '%{lib}%/coq/user-contrib/lrust'" ]
depends: [ depends: [
"coq-iris" { (= "dev.2017-11-02.0") | (= "dev") } "coq-iris" { (= "dev.2017-11-04.0") | (= "dev") }
] ]
...@@ -144,7 +144,7 @@ Proof. ...@@ -144,7 +144,7 @@ Proof.
- induction el=>//=. f_equal; auto. - induction el=>//=. f_equal; auto.
Qed. Qed.
Definition atomic (e: expr) : bool := Definition is_atomic (e: expr) : bool :=
match e with match e with
| Read (ScOrd | Na2Ord) e | Alloc e => bool_decide (is_Some (to_val e)) | Read (ScOrd | Na2Ord) e | Alloc e => bool_decide (is_Some (to_val e))
| Write (ScOrd | Na2Ord) e1 e2 | Free e1 e2 => | Write (ScOrd | Na2Ord) e1 e2 | Free e1 e2 =>
...@@ -153,7 +153,7 @@ Definition atomic (e: expr) : bool := ...@@ -153,7 +153,7 @@ Definition atomic (e: expr) : bool :=
bool_decide (is_Some (to_val e0) is_Some (to_val e1) is_Some (to_val e2)) bool_decide (is_Some (to_val e0) is_Some (to_val e1) is_Some (to_val e2))
| _ => false | _ => false
end. end.
Lemma atomic_correct e : atomic e language.atomic (to_expr e). Lemma is_atomic_correct e : is_atomic e Atomic (to_expr e).
Proof. Proof.
intros He. apply ectx_language_atomic. intros He. apply ectx_language_atomic.
- intros σ e' σ' ef. - intros σ e' σ' ef.
...@@ -195,13 +195,11 @@ Hint Extern 10 (AsVal _) => solve_to_val : typeclass_instances. ...@@ -195,13 +195,11 @@ Hint Extern 10 (AsVal _) => solve_to_val : typeclass_instances.
Ltac solve_atomic := Ltac solve_atomic :=
match goal with match goal with
| |- language.atomic ?e => | |- Atomic ?e =>
let e' := W.of_expr e in change (language.atomic (W.to_expr e')); let e' := W.of_expr e in change (Atomic (W.to_expr e'));
apply W.atomic_correct; vm_compute; exact I apply W.is_atomic_correct; vm_compute; exact I
end. end.
Hint Extern 0 (language.atomic _) => solve_atomic. Hint Extern 0 (Atomic _) => solve_atomic : typeclass_instances.
(* For the side-condition of elim_vs_pvs_wp_atomic *)
Hint Extern 0 (language.atomic _) => solve_atomic : typeclass_instances.
(** Substitution *) (** Substitution *)
Ltac simpl_subst := Ltac simpl_subst :=
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment