Monotonicity tactic #
The tactic mono applies monotonicity rules (collected through the library by being tagged
@[mono]).
The version of the tactic here is a cheap partial port of the mono tactic from Lean 3, which had
many more options and features. It is implemented as a wrapper on top of solve_by_elim.
Temporary syntax change: Lean 3 mono applied a single monotonicity rule, then applied local
hypotheses and the rfl tactic as many times as it could. This is hard to implement on top of
solve_by_elim because the counting system used in the maxDepth field of its configuration would
count these as separate steps, throwing off the count in the desired configuration
maxDepth := 1. So instead we just implement a version of mono in which monotonicity rules,
local hypotheses and rfl are all applied repeatedly until nothing more is applicable. The syntax
for this in Lean 3 was mono*. Both mono and mono* implement this behavior for now.