macro "auth_prove" : tactic =>
`(tactic|
first
-- A concrete request reduces to a value, so let the kernel just compute it.
| decide
-- A request with symbolic fields needs the tagged theory + case-splitting.
| (intros <;>
simp [evaluate, optimize, enforce, List.filterMap, List.filter] <;>
grind +locals))