Module docstring
{"# Monotonicity
This file defines (strictly) monotone/antitone functions. Contrary to standard mathematical usage, \"monotone\"/\"mono\" here means \"increasing\", not \"increasing or decreasing\". We use \"antitone\"/\"anti\" to mean \"decreasing\".
Definitions
Monotone f: A functionfbetween two preorders is monotone ifa ≤ bimpliesf a ≤ f b.Antitone f: A functionfbetween two preorders is antitone ifa ≤ bimpliesf b ≤ f a.MonotoneOn f s: Same asMonotone f, but for alla, b ∈ s.AntitoneOn f s: Same asAntitone f, but for alla, b ∈ s.StrictMono f: A functionfbetween two preorders is strictly monotone ifa < bimpliesf a < f b.StrictAnti f: A functionfbetween two preorders is strictly antitone ifa < bimpliesf b < f a.StrictMonoOn f s: Same asStrictMono f, but for alla, b ∈ s.StrictAntiOn f s: Same asStrictAnti f, but for alla, b ∈ s.
Implementation notes
Some of these definitions used to only require LE α or LT α. The advantage of this is
unclear and it led to slight elaboration issues. Now, everything requires Preorder α and seems to
work fine. Related Zulip discussion:
https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Order.20diamond/near/254353352.
Tags
monotone, strictly monotone, antitone, strictly antitone, increasing, strictly increasing,
decreasing, strictly decreasing
","### Monotonicity in function spaces ","### Monotonicity hierarchy ","These four lemmas are there to strip off the semi-implicit arguments ⦃a b : α⦄. This is useful
when you do not want to apply a Monotone assumption (i.e. your goal is a ≤ b → f a ≤ f b).
However if you find yourself writing hf.imp h, then you should have written hf h instead.
","### Monotonicity from and to subsingletons ","### Miscellaneous monotonicity results ","### Monotonicity under composition ","### Monotonicity in linear orders ","### Pi types "}