Commit 936db861 authored by Ralf Jung's avatar Ralf Jung
Browse files

Merge branch 'master' of gitlab.mpi-sws.org:FP/iris-coq

parents 4e0b7781 76a28786
From Coq.QArith Require Import Qcanon. From Coq.QArith Require Import Qcanon.
From iris.algebra Require Export cmra. From iris.algebra Require Export cmra.
From iris.algebra Require Import upred.
Notation frac := Qp (only parsing). Notation frac := Qp (only parsing).
...@@ -20,12 +19,6 @@ Qed. ...@@ -20,12 +19,6 @@ Qed.
Canonical Structure fracR := discreteR frac frac_ra_mixin. Canonical Structure fracR := discreteR frac frac_ra_mixin.
End frac. End frac.
(** Internalized properties *)
Lemma frac_equivI {M} (x y : frac) : x y (x = y : uPred M).
Proof. by uPred.unseal. Qed.
Lemma frac_validI {M} (x : frac) : x ( (x 1)%Qc : uPred M).
Proof. by uPred.unseal. Qed.
(** Exclusive *) (** Exclusive *)
Global Instance frac_full_exclusive : Exclusive 1%Qp. Global Instance frac_full_exclusive : Exclusive 1%Qp.
Proof. Proof.
......
...@@ -118,7 +118,7 @@ Section heap. ...@@ -118,7 +118,7 @@ Section heap.
rewrite heap_mapsto_eq -auth_own_op op_singleton pair_op dec_agree_ne //. rewrite heap_mapsto_eq -auth_own_op op_singleton pair_op dec_agree_ne //.
apply (anti_symm ()); last by apply pure_elim_l. apply (anti_symm ()); last by apply pure_elim_l.
rewrite auth_own_valid gmap_validI (forall_elim l) lookup_singleton. rewrite auth_own_valid gmap_validI (forall_elim l) lookup_singleton.
rewrite option_validI prod_validI frac_validI discrete_valid. rewrite option_validI prod_validI !discrete_valid /=.
by apply pure_elim_r. by apply pure_elim_r.
Qed. Qed.
......
...@@ -71,9 +71,9 @@ Notation "#[ Σ1 ; .. ; Σn ]" := ...@@ -71,9 +71,9 @@ Notation "#[ Σ1 ; .. ; Σn ]" :=
(** * Subfunctors *) (** * Subfunctors *)
(** In order to make proofs in the Iris logic modular, they are not done with (** In order to make proofs in the Iris logic modular, they are not done with
respect to some concrete list of functors [Σ], but are instead parametrized by respect to some concrete list of functors [Σ], but are instead parametrized by
an arbitrary list of functors [Σ] that contains atleast certain functors. For an arbitrary list of functors [Σ] that contains at least certain functors. For
example, the lock library is parametrized by a functor [Σ] that should have: example, the lock library is parameterized by a functor [Σ] that should have
the functors corresponding to: the heap and the exclusive monoid to manage to the functors corresponding to the heap and the exclusive monoid to manage to
lock invariant. lock invariant.
The contraints to can be expressed using the type class [subG Σ1 Σ2], which The contraints to can be expressed using the type class [subG Σ1 Σ2], which
...@@ -109,7 +109,7 @@ Qed. ...@@ -109,7 +109,7 @@ Qed.
(** * Solution of the recursive domain equation *) (** * Solution of the recursive domain equation *)
(** We first declare a module type and then an instance of it so as to seall of (** We first declare a module type and then an instance of it so as to seal all of
the construction, this way we are sure we do not use any properties of the the construction, this way we are sure we do not use any properties of the
construction, and also avoid Coq from blindly unfolding it. *) construction, and also avoid Coq from blindly unfolding it. *)
Module Type iProp_solution_sig. Module Type iProp_solution_sig.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment