Module docstring
{"## unattach
List.unattach is the (one-sided) inverse of List.attach. It is a synonym for List.map Subtype.val.
We use it by providing a simp lemma l.attach.unattach = l, and simp lemmas which recognize higher order
functions applied to l : List { x // p x } which only depend on the value, not the predicate, and rewrite these
in terms of a simpler function applied to l.unattach.
Further, we provide simp lemmas that push unattach inwards.
","### Recognizing higher order functions on subtypes using a function that only depends on the value. ","### Simp lemmas pushing unattach inwards. ","### Well-founded recursion preprocessing setup "}