Strengthen `map_filter_strong_ext` and `map_filter_ext`.
All threads resolved!
All threads resolved!
I just added it as another lemma, but it is also possible to change "implies" to "iff" in the map_filter_strong_ext
itself.
Edited by Dan Frumin
Merge request reports
Activity
Wouldn't it make more sense to turn
map_filter_strong_ext
into a↔
? The only problem is that we don't have any other_ext
lemma that are an↔
, I think.We usually use
lem_1
andlem_2
for→
versions of a↔
lemmalem
. So here the naming is off, sincelem
is one direction, andlem_2
the other.An alternative is to call this lemma
map_filter_strong_ext_inv
or something else.PS: Here's a short proof for the
↔
:Lemma map_filter_strong_ext (m1 m2 : M A) : filter P m1 = filter Q m2 ↔ (∀ i x, (P (i, x) ∧ m1 !! i = Some x) ↔ (Q (i, x) ∧ m2 !! i = Some x)). Proof. intros. rewrite map_eq_iff. setoid_rewrite option_eq. setoid_rewrite map_filter_lookup_Some. naive_solver. Qed. Lemma map_filter_ext (m : M A) : filter P m = filter Q m ↔ (∀ i x, m !! i = Some x → P (i, x) ↔ Q (i, x)). Proof. rewrite map_filter_strong_ext. naive_solver. Qed.
- Resolved by Robbert Krebbers
added 40 commits
-
b3efe8dd...29af30c2 - 37 commits from branch
iris:master
- 6058134f - Add `map_filter_strong_ext_2`.
- 8396f122 - Better naming
- 4100164d - Update changelog
Toggle commit list-
b3efe8dd...29af30c2 - 37 commits from branch
mentioned in commit 86e53498
mentioned in merge request !290 (merged)
Please register or sign in to reply