make_triggers f binders decl menv generate multi-triggers for the formula f and binders binders.
An escaped variable of a pattern is a variable that is not in binders (but the variable is bound by an inner quantified formula). We can replace escaped variables by the underscore variable Var.underscore.
For instance, if binders is the set {x, y} and g(x, y, z) is a pattern where {(x, y, z)} are free term variables, we can replace z by _.
Our strategy for multi-trigger generations depends on the matching environment menv as follows:
If menv.greedy is false, we try to generate in order:
- Mono-triggers;
- Multi-triggers without escaped variables.
If menv.greedy is true, we try to generate in order:
- Mono and multi-triggers with escaped variables.
- Mono and multi-triggers without escaped variables;
If menv.triggers_var is true, we allow variables as valid triggers.
Note: Mono-trigger with `Sy.Plus` or `Sy.Minus` top symbols are ignored if other mono-triggers have been generated.
The matching environment env is used to limit the number of multi-triggers generated per axiom.