When writing proofs I noticed that Agda's auto proof search frequently wouldn't find solutions that seem obvious to me. Unfortunately coming up with a small example, that illustrates the problem seems to be hard, so I try to describe the most common patterns instead.
- I forgot to add
-m
to the hole to make Agda look at the module scope. Can I make that flag the default? What downsides would that have? - Often the current hole can be filled by a parameter of the function I am about to implement. Even when adding
-m
, Agda will not consider function parameters or symbols introduced inlet
orwhere
clauses though. Is there something wrong with simply trying all of them? - When viewing a goal, symbols introduced in
let
orwhere
clauses are not even displayed. Why?
What other habits can make using auto more effective?