Commit 232a2e93 authored by Robbert Krebbers's avatar Robbert Krebbers

Merge branch 'robbert/issue299' into 'master'

Close issue #299: `leibnizO` finds convoluted proof for definitions

Closes #299

See merge request iris/iris!392
parents 79f576aa f2eabe78
From iris.base_logic.lib Require Import invariants.
(** Make sure that the same [Equivalence] instance is picked for Leibniz OFEs
with carriers that are definitionally equal. See also *)
Definition tag := nat.
Canonical Structure tagO := leibnizO tag.
Goal tagO = natO.
Proof. reflexivity. Qed.
Instance test_cofe {Σ} : Cofe (iPrePropO Σ) := _.
Section tests.
......@@ -885,7 +885,10 @@ Section discrete_ofe.
End discrete_ofe.
Notation discreteO A := (OfeT A (discrete_ofe_mixin _)).
Notation leibnizO A := (OfeT A (@discrete_ofe_mixin _ equivL _)).
(** 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 *)
Notation leibnizO A := (OfeT A (@discrete_ofe_mixin _ equivL eq_equivalence)).
(** In order to define a discrete CMRA with carrier [A] (in the file [cmra.v])
we need to determine the [Equivalence A] proof that was used to construct the
Markdown is supported
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