diff --git a/CHANGELOG.md b/CHANGELOG.md index 89bc4ab2323ce9d45f893b75db1ceee808c56dfc..f3653a1347ffd7808f557c1a94ce20dd0cee89f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,9 @@ lemma. - Add `frac_auth_frag_op_validN` and `frac_auth_frag_op_valid`, which are bi-implications with arbitrary fractions. - Add `ufrac_auth_frag_op_validN` and `ufrac_auth_frag_op_valid`. +* Remove `mono_list_lb_is_op` instance for `IsOp' (â—¯ML l) (â—¯ML l) (â—¯ML l)`; we + don't usually have such instances for duplicable resources and it was added by + accident. **Changes in `bi`:** diff --git a/iris/algebra/lib/mono_list.v b/iris/algebra/lib/mono_list.v index b91656f250e99ff7dd7be95fa5ad5e4f7711ad2b..68177aa6991e39ca6ff676caab255747c4ec9668 100644 --- a/iris/algebra/lib/mono_list.v +++ b/iris/algebra/lib/mono_list.v @@ -68,8 +68,9 @@ Section mono_list_props. by rewrite /mono_list_auth /mono_list_lb -!assoc -auth_frag_op -core_id_dup. Qed. - Global Instance mono_list_lb_is_op l : IsOp' (â—¯ML l) (â—¯ML l) (â—¯ML l). - Proof. by rewrite /IsOp' /IsOp -core_id_dup. Qed. + Global Instance mono_list_auth_dfrac_is_op dq dq1 dq2 l : + IsOp dq dq1 dq2 → IsOp' (â—ML{dq} l) (â—ML{dq1} l) (â—ML{dq2} l). + Proof. rewrite /IsOp' /IsOp=>->. rewrite mono_list_auth_dfrac_op //. Qed. (** * Validity *) Lemma mono_list_auth_dfrac_validN n dq l : ✓{n} (â—ML{dq} l) ↔ ✓ dq. diff --git a/iris/algebra/lib/mono_nat.v b/iris/algebra/lib/mono_nat.v index b712ad6e87424d14e6b76cc6dc28d553b9360378..4c562117fdf626df0e629964d63e368c0d2d32c7 100644 --- a/iris/algebra/lib/mono_nat.v +++ b/iris/algebra/lib/mono_nat.v @@ -53,6 +53,13 @@ Section mono_nat. rewrite Nat.max_id //. Qed. + Global Instance mono_nat_auth_dfrac_is_op dq dq1 dq2 n : + IsOp dq dq1 dq2 → IsOp' (â—MN{dq} n) (â—MN{dq1} n) (â—MN{dq2} n). + Proof. rewrite /IsOp' /IsOp=>->. rewrite mono_nat_auth_dfrac_op //. Qed. + Global Instance mono_nat_lb_max_is_op n n1 n2 : + IsOp (MaxNat n) (MaxNat n1) (MaxNat n2) → IsOp' (â—¯MN n) (â—¯MN n1) (â—¯MN n2). + Proof. rewrite /IsOp' /IsOp /mono_nat_lb=>->. done. Qed. + (** rephrasing of [mono_nat_lb_op] useful for weakening a fragment to a smaller lower-bound *) Lemma mono_nat_lb_op_le_l n n' :