Informal description
The `simp_rw` tactic combines the functionality of `simp` and `rw`. It applies each rewrite rule in the given order (like `rw`), but also repeatedly applies these rules and works under binders such as `∀ x, ...`, `∃ x, ...`, and `λ x, ...` (like `simp`).
Usage:
- `simp_rw [lemma_1, ..., lemma_n]` rewrites the goal by applying the lemmas in order, with `←` indicating reverse application.
- `simp_rw [lemma_1, ..., lemma_n] at h₁ ... hₙ` rewrites the specified hypotheses.
- `simp_rw [...] at *` rewrites the entire context (all hypotheses and the goal).
The lemmas must be valid `simp` arguments. For example, `simp_rw` can solve cases where neither `simp` nor `rw` alone suffices, such as rewriting under nested quantifiers.