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

Paolo's suggestion

parent c332a0d9
No related branches found
No related tags found
No related merge requests found
...@@ -1016,10 +1016,14 @@ When building abstractions (point 2, above), make sure that [leibnizO] does not ...@@ -1016,10 +1016,14 @@ When building abstractions (point 2, above), make sure that [leibnizO] does not
leak into the API boundary. Otherwise client code can end up with overlapping leak into the API boundary. Otherwise client code can end up with overlapping
instances, and thus experience odd unification failures. *) instances, and thus experience odd unification failures. *)
(** The combinator [discreteO A] lifts an existing [Equiv A] instance into a
discrete OFE. *)
Notation discreteO A := (Ofe A (discrete_ofe_mixin _)). Notation discreteO A := (Ofe A (discrete_ofe_mixin _)).
(** Force the [Equivalence] proof to be [eq_equivalence] so that it does not
find another one, like [ofe_equivalence], in the case of aliases. See also (** The combinator [leibnizO A] lifts Leibniz equality [=] into a discrete OFE.
https://gitlab.mpi-sws.org/iris/iris/issues/299 *) The implementation forces the [Equivalence] proof to be [eq_equivalence] so that
Coq does not accidentally use another one, like [ofe_equivalence], in the case of
aliases. See also https://gitlab.mpi-sws.org/iris/iris/issues/299 *)
Notation leibnizO A := (Ofe A (@discrete_ofe_mixin _ equivL eq_equivalence)). Notation leibnizO A := (Ofe A (@discrete_ofe_mixin _ equivL eq_equivalence)).
(** In order to define a discrete CMRA with carrier [A] (in the file [cmra.v]) (** In order to define a discrete CMRA with carrier [A] (in the file [cmra.v])
......
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