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.monotone_on f s: Same asmonotone f, but for alla, b ∈ s.antitone_on f s: Same asantitone f, but for alla, b ∈ s.strict_mono f: A functionfbetween two preorders is strictly monotone ifa < bimpliesf a < f b.strict_anti f: A functionfbetween two preorders is strictly antitone ifa < bimpliesf b < f a.strict_mono_on f s: Same asstrict_mono f, but for alla, b ∈ s.strict_anti_on f s: Same asstrict_anti f, but for alla, b ∈ s.
Main theorems #
monotone_nat_of_le_succ,monotone_int_of_le_succ: Iff : ℕ → αorf : ℤ → αandf n ≤ f (n + 1)for alln, thenfis monotone.antitone_nat_of_succ_le,antitone_int_of_succ_le: Iff : ℕ → αorf : ℤ → αandf (n + 1) ≤ f nfor alln, thenfis antitone.strict_mono_nat_of_lt_succ,strict_mono_int_of_lt_succ: Iff : ℕ → αorf : ℤ → αandf n < f (n + 1)for alln, thenfis strictly monotone.strict_anti_nat_of_succ_lt,strict_anti_int_of_succ_lt: Iff : ℕ → αorf : ℤ → αandf (n + 1) < f nfor alln, thenfis strictly antitone.
Implementation notes #
Some of these definitions used to only require has_le α or has_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.
TODO #
The above theorems are also true in ℕ+, fin n... To make that work, we need succ_order α
and succ_archimedean α.
Tags #
monotone, strictly monotone, antitone, strictly antitone, increasing, strictly increasing, decreasing, strictly decreasing
A function f is strictly monotone if a < b implies f a < f b.
Equations
- strict_mono f = ∀ ⦃a b : α⦄, a < b → f a < f b
A function f is strictly antitone if a < b implies f b < f a.
Equations
- strict_anti f = ∀ ⦃a b : α⦄, a < b → f b < f a
Monotonicity on the dual order #
Strictly many of the *_on.dual lemmas in this section should use of_dual ⁻¹' s instead of s,
but right now this is not possible as set.preimage is not defined yet, and importing it creates
an import cycle.