Add `filter_reverse`, `head_filter_Some`, `last_filter_Some` lemmas
Added the lemma:
Lemma last_filter_postfix P `{!∀ x : A, Decision (P x)} l x
last (filter P l) = Some x →
∃ l1 l2, l = l1 ++ [x] ++ l2 ∧ Forall (λ z, ¬ (P z)) l2.
(and its counterpart for head
)
The lemmas seem useful and general enough to fit in stdpp.
The last
lemma derives the property Forall (λ z, ¬ (P z)) l2
of the postfix of a split l1 ++ [x] ++ l2
for a list l
whenever last (filter P l) = Some x
.
Edited by Robbert Krebbers