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

Add similar filter lemmas for maps and sets.

parent 34945717
No related branches found
No related tags found
No related merge requests found
......@@ -1279,6 +1279,13 @@ Section map_filter_lookup.
m !! i = None ( x : A, m !! i = Some x ¬ P (i, x))
filter P m !! i = None.
Proof. apply map_filter_lookup_None. Qed.
Lemma map_filter_empty_not_lookup m i x :
filter P m = P (i,x) m !! i Some x.
Proof.
rewrite map_empty. setoid_rewrite map_filter_lookup_None. intros Hm ?.
destruct (Hm i); naive_solver.
Qed.
End map_filter_lookup.
Section map_filter_ext.
......
......@@ -353,6 +353,9 @@ Section filter.
Lemma filter_singleton_not x : ¬P x filter P ({[ x ]} : C) ∅.
Proof. set_solver. Qed.
Lemma filter_empty_not_elem_of X x : filter P X P x x X.
Proof. set_solver. Qed.
Lemma disjoint_filter X Y : X ## Y filter P X ## filter P Y.
Proof. set_solver. Qed.
Lemma filter_union X Y : filter P (X Y) filter P X filter P Y.
......@@ -371,6 +374,9 @@ Section filter.
Lemma filter_singleton_not_L x : ¬P x filter P ({[ x ]} : C) = ∅.
Proof. unfold_leibniz. apply filter_singleton_not. Qed.
Lemma filter_empty_not_elem_of_L X x : filter P X = P x x X.
Proof. unfold_leibniz. apply filter_empty_not_elem_of. Qed.
Lemma filter_union_L X Y : filter P (X Y) = filter P X filter P Y.
Proof. unfold_leibniz. apply filter_union. Qed.
Lemma filter_union_complement_L X Y : filter P X filter (λ x, ¬P x) X = X.
......
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