Module docstring
{"# Monotone functions on bounded orders
","### Top, bottom element ","#### In this section we prove some properties about monotone and antitone operations on Prop
"}
{"# Monotone functions on bounded orders
","### Top, bottom element ","#### In this section we prove some properties about monotone and antitone operations on Prop
"}
StrictMono.apply_eq_top_iff
theorem
(hf : StrictMono f) : f a = f ⊤ ↔ a = ⊤
theorem StrictMono.apply_eq_top_iff (hf : StrictMono f) : f a = f ⊤ ↔ a = ⊤ :=
⟨fun h => not_lt_top_iff.1 fun ha => (hf ha).ne h, congr_arg _⟩
StrictAnti.apply_eq_top_iff
theorem
(hf : StrictAnti f) : f a = f ⊤ ↔ a = ⊤
theorem StrictAnti.apply_eq_top_iff (hf : StrictAnti f) : f a = f ⊤ ↔ a = ⊤ :=
⟨fun h => not_lt_top_iff.1 fun ha => (hf ha).ne' h, congr_arg _⟩
StrictMono.maximal_preimage_top
theorem
[LinearOrder α] [Preorder β] [OrderTop β] {f : α → β} (H : StrictMono f) {a} (h_top : f a = ⊤) (x : α) : x ≤ a
theorem StrictMono.maximal_preimage_top [LinearOrder α] [Preorder β] [OrderTop β] {f : α → β}
(H : StrictMono f) {a} (h_top : f a = ⊤) (x : α) : x ≤ a :=
H.maximal_of_maximal_image
(fun p => by
rw [h_top]
exact le_top)
x
StrictMono.apply_eq_bot_iff
theorem
(hf : StrictMono f) : f a = f ⊥ ↔ a = ⊥
theorem StrictMono.apply_eq_bot_iff (hf : StrictMono f) : f a = f ⊥ ↔ a = ⊥ :=
hf.dual.apply_eq_top_iff
StrictAnti.apply_eq_bot_iff
theorem
(hf : StrictAnti f) : f a = f ⊥ ↔ a = ⊥
theorem StrictAnti.apply_eq_bot_iff (hf : StrictAnti f) : f a = f ⊥ ↔ a = ⊥ :=
hf.dual.apply_eq_top_iff
StrictMono.minimal_preimage_bot
theorem
[LinearOrder α] [Preorder β] [OrderBot β] {f : α → β} (H : StrictMono f) {a} (h_bot : f a = ⊥) (x : α) : a ≤ x
theorem StrictMono.minimal_preimage_bot [LinearOrder α] [Preorder β] [OrderBot β] {f : α → β}
(H : StrictMono f) {a} (h_bot : f a = ⊥) (x : α) : a ≤ x :=
H.minimal_of_minimal_image
(fun p => by
rw [h_bot]
exact bot_le)
x
monotone_and
theorem
{p q : α → Prop} (m_p : Monotone p) (m_q : Monotone q) : Monotone fun x => p x ∧ q x
monotone_or
theorem
{p q : α → Prop} (m_p : Monotone p) (m_q : Monotone q) : Monotone fun x => p x ∨ q x
monotone_le
theorem
{x : α} : Monotone (x ≤ ·)
theorem monotone_le {x : α} : Monotone (x ≤ ·) := fun _ _ h' h => h.trans h'
monotone_lt
theorem
{x : α} : Monotone (x < ·)
theorem monotone_lt {x : α} : Monotone (x < ·) := fun _ _ h' h => h.trans_le h'
antitone_le
theorem
{x : α} : Antitone (· ≤ x)
theorem antitone_le {x : α} : Antitone (· ≤ x) := fun _ _ h' h => h'.trans h
antitone_lt
theorem
{x : α} : Antitone (· < x)
theorem antitone_lt {x : α} : Antitone (· < x) := fun _ _ h' h => h'.trans_lt h
Monotone.forall
theorem
{P : β → α → Prop} (hP : ∀ x, Monotone (P x)) : Monotone fun y => ∀ x, P x y
theorem Monotone.forall {P : β → α → Prop} (hP : ∀ x, Monotone (P x)) :
Monotone fun y => ∀ x, P x y :=
fun _ _ hy h x => hP x hy <| h x
Antitone.forall
theorem
{P : β → α → Prop} (hP : ∀ x, Antitone (P x)) : Antitone fun y => ∀ x, P x y
theorem Antitone.forall {P : β → α → Prop} (hP : ∀ x, Antitone (P x)) :
Antitone fun y => ∀ x, P x y :=
fun _ _ hy h x => hP x hy (h x)
Monotone.ball
theorem
{P : β → α → Prop} {s : Set β} (hP : ∀ x ∈ s, Monotone (P x)) : Monotone fun y => ∀ x ∈ s, P x y
theorem Monotone.ball {P : β → α → Prop} {s : Set β} (hP : ∀ x ∈ s, Monotone (P x)) :
Monotone fun y => ∀ x ∈ s, P x y := fun _ _ hy h x hx => hP x hx hy (h x hx)
Antitone.ball
theorem
{P : β → α → Prop} {s : Set β} (hP : ∀ x ∈ s, Antitone (P x)) : Antitone fun y => ∀ x ∈ s, P x y
theorem Antitone.ball {P : β → α → Prop} {s : Set β} (hP : ∀ x ∈ s, Antitone (P x)) :
Antitone fun y => ∀ x ∈ s, P x y := fun _ _ hy h x hx => hP x hx hy (h x hx)
Monotone.exists
theorem
{P : β → α → Prop} (hP : ∀ x, Monotone (P x)) : Monotone fun y => ∃ x, P x y
theorem Monotone.exists {P : β → α → Prop} (hP : ∀ x, Monotone (P x)) :
Monotone fun y => ∃ x, P x y :=
fun _ _ hy ⟨x, hx⟩ ↦ ⟨x, hP x hy hx⟩
Antitone.exists
theorem
{P : β → α → Prop} (hP : ∀ x, Antitone (P x)) : Antitone fun y => ∃ x, P x y
theorem Antitone.exists {P : β → α → Prop} (hP : ∀ x, Antitone (P x)) :
Antitone fun y => ∃ x, P x y :=
fun _ _ hy ⟨x, hx⟩ ↦ ⟨x, hP x hy hx⟩
forall_ge_iff
theorem
{P : α → Prop} {x₀ : α} (hP : Monotone P) : (∀ x ≥ x₀, P x) ↔ P x₀
theorem forall_ge_iff {P : α → Prop} {x₀ : α} (hP : Monotone P) :
(∀ x ≥ x₀, P x) ↔ P x₀ :=
⟨fun H ↦ H x₀ le_rfl, fun H _ hx ↦ hP hx H⟩
forall_le_iff
theorem
{P : α → Prop} {x₀ : α} (hP : Antitone P) : (∀ x ≤ x₀, P x) ↔ P x₀
theorem forall_le_iff {P : α → Prop} {x₀ : α} (hP : Antitone P) :
(∀ x ≤ x₀, P x) ↔ P x₀ :=
⟨fun H ↦ H x₀ le_rfl, fun H _ hx ↦ hP hx H⟩