File: Mathlib/Order/Interval/Set/OrdConnected.lean

full_name: Set.OrdConnected
code: /-- We say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the
interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with
the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a
`LinearOrderedField`, then this condition is also equivalent to `Convex α s`. -/
class OrdConnected (s : Set α) : Prop where
  /-- `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. -/
  out' ⦃x⦄ (hx : x ∈ s) ⦃y⦄ (hy : y ∈ s) : Icc x y ⊆ s
goal: Prop

full_name: Set.OrdConnected.out'
code: /-- We say that a set `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the
interval `[[x, y]]`. If `α` is a `DenselyOrdered` `ConditionallyCompleteLinearOrder` with
the `OrderTopology`, then this condition is equivalent to `IsPreconnected s`. If `α` is a
`LinearOrderedField`, then this condition is also equivalent to `Convex α s`. -/
class OrdConnected (s : Set α) : Prop where
  /-- `s : Set α` is `OrdConnected` if for all `x y ∈ s` it includes the interval `[[x, y]]`. -/
  out' ⦃x⦄ (hx : x ∈ s) ⦃y⦄ (hy : y ∈ s) : Icc x y ⊆ s
goal: Set.Icc x y ⊆ s

full_name: Set.OrdConnected.out
code: theorem OrdConnected.out (h : OrdConnected s) : ∀ ⦃x⦄ (_ : x ∈ s) ⦃y⦄ (_ : y ∈ s), Icc x y ⊆ s 
goal: x ∈ s → ∀ ⦃y : α⦄, y ∈ s → Set.Icc x y ⊆ s

full_name: Set.ordConnected_def
code: theorem ordConnected_def : OrdConnected s ↔ ∀ ⦃x⦄ (_ : x ∈ s) ⦃y⦄ (_ : y ∈ s), Icc x y ⊆ s 
goal: s.OrdConnected ↔ ∀ ⦃x : α⦄, x ∈ s → ∀ ⦃y : α⦄, y ∈ s → Set.Icc x y ⊆ s

full_name: Set.ordConnected_iff
code: /-- It suffices to prove `[[x, y]] ⊆ s` for `x y ∈ s`, `x ≤ y`. -/
theorem ordConnected_iff : OrdConnected s ↔ ∀ x ∈ s, ∀ y ∈ s, x ≤ y → Icc x y ⊆ s 
goal: s.OrdConnected ↔ ∀ x ∈ s, ∀ y ∈ s, x ≤ y → Set.Icc x y ⊆ s

full_name: Set.ordConnected_of_Ioo
code: theorem ordConnected_of_Ioo {α : Type*} [PartialOrder α] {s : Set α}
    (hs : ∀ x ∈ s, ∀ y ∈ s, x < y → Ioo x y ⊆ s) : OrdConnected s 
goal: s.OrdConnected

full_name: Set.OrdConnected.preimage_mono
code: theorem OrdConnected.preimage_mono {f : β → α} (hs : OrdConnected s) (hf : Monotone f) :
    OrdConnected (f ⁻¹' s) 
goal: (f ⁻¹' s).OrdConnected

full_name: Set.OrdConnected.preimage_anti
code: theorem OrdConnected.preimage_anti {f : β → α} (hs : OrdConnected s) (hf : Antitone f) :
    OrdConnected (f ⁻¹' s) 
goal: (f ⁻¹' s).OrdConnected

full_name: Set.Icc_subset
code: protected theorem Icc_subset (s : Set α) [hs : OrdConnected s] {x y} (hx : x ∈ s) (hy : y ∈ s) :
    Icc x y ⊆ s 
goal: Set.Icc x y ⊆ s

full_name: OrderEmbedding.image_Icc
code: theorem image_Icc (e : α ↪o β) (he : OrdConnected (range e)) (x y : α) :
    e '' Icc x y = Icc (e x) (e y) 
goal: ⇑e '' Set.Icc x y = Set.Icc (e x) (e y)

full_name: OrderEmbedding.image_Ico
code: theorem image_Ico (e : α ↪o β) (he : OrdConnected (range e)) (x y : α) :
    e '' Ico x y = Ico (e x) (e y) 
goal: ⇑e '' Set.Ico x y = Set.Ico (e x) (e y)

full_name: OrderEmbedding.image_Ioc
code: theorem image_Ioc (e : α ↪o β) (he : OrdConnected (range e)) (x y : α) :
    e '' Ioc x y = Ioc (e x) (e y) 
goal: ⇑e '' Set.Ioc x y = Set.Ioc (e x) (e y)

full_name: OrderEmbedding.image_Ioo
code: theorem image_Ioo (e : α ↪o β) (he : OrdConnected (range e)) (x y : α) :
    e '' Ioo x y = Ioo (e x) (e y) 
goal: ⇑e '' Set.Ioo x y = Set.Ioo (e x) (e y)

full_name: Set.image_subtype_val_Icc
code: @[simp]
lemma image_subtype_val_Icc {s : Set α} [OrdConnected s] (x y : s) :
    Subtype.val '' Icc x y = Icc x.1 y 
goal: Subtype.val '' Set.Icc x y = Set.Icc ↑x ↑y

full_name: Set.image_subtype_val_Ico
code: @[simp]
lemma image_subtype_val_Ico {s : Set α} [OrdConnected s] (x y : s) :
    Subtype.val '' Ico x y = Ico x.1 y 
goal: Subtype.val '' Set.Ico x y = Set.Ico ↑x ↑y

full_name: Set.image_subtype_val_Ioc
code: @[simp]
lemma image_subtype_val_Ioc {s : Set α} [OrdConnected s] (x y : s) :
    Subtype.val '' Ioc x y = Ioc x.1 y 
goal: Subtype.val '' Set.Ioc x y = Set.Ioc ↑x ↑y

full_name: Set.image_subtype_val_Ioo
code: @[simp]
lemma image_subtype_val_Ioo {s : Set α} [OrdConnected s] (x y : s) :
    Subtype.val '' Ioo x y = Ioo x.1 y 
goal: Subtype.val '' Set.Ioo x y = Set.Ioo ↑x ↑y

full_name: Set.OrdConnected.inter
code: theorem OrdConnected.inter {s t : Set α} (hs : OrdConnected s) (ht : OrdConnected t) :
    OrdConnected (s ∩ t) 
goal: (s ∩ t).OrdConnected

full_name: Set.OrdConnected.inter'
code: instance OrdConnected.inter' {s t : Set α} [OrdConnected s] [OrdConnected t] :
    OrdConnected (s ∩ t) 
goal: (s ∩ t).OrdConnected

full_name: Set.OrdConnected.dual
code: theorem OrdConnected.dual {s : Set α} (hs : OrdConnected s) :
    OrdConnected (OrderDual.ofDual ⁻¹' s) 
goal: (⇑OrderDual.ofDual ⁻¹' s).OrdConnected

full_name: Set.ordConnected_dual
code: theorem ordConnected_dual {s : Set α} : OrdConnected (OrderDual.ofDual ⁻¹' s) ↔ OrdConnected s 
goal: (⇑OrderDual.ofDual ⁻¹' s).OrdConnected ↔ s.OrdConnected

full_name: Set.ordConnected_sInter
code: theorem ordConnected_sInter {S : Set (Set α)} (hS : ∀ s ∈ S, OrdConnected s) :
    OrdConnected (⋂₀ S) 
goal: (⋂₀ S).OrdConnected

full_name: Set.ordConnected_iInter
code: theorem ordConnected_iInter {ι : Sort*} {s : ι → Set α} (hs : ∀ i, OrdConnected (s i)) :
    OrdConnected (⋂ i, s i) 
goal: (⋂ i, s i).OrdConnected

full_name: Set.ordConnected_iInter'
code: instance ordConnected_iInter' {ι : Sort*} {s : ι → Set α} [∀ i, OrdConnected (s i)] :
    OrdConnected (⋂ i, s i) 
goal: (⋂ i, s i).OrdConnected

full_name: Set.ordConnected_biInter
code: theorem ordConnected_biInter {ι : Sort*} {p : ι → Prop} {s : ∀ i, p i → Set α}
    (hs : ∀ i hi, OrdConnected (s i hi)) : OrdConnected (⋂ (i) (hi), s i hi) 
goal: (⋂ i, ⋂ (hi : p i), s i hi).OrdConnected

full_name: Set.ordConnected_pi
code: theorem ordConnected_pi {ι : Type*} {α : ι → Type*} [∀ i, Preorder (α i)] {s : Set ι}
    {t : ∀ i, Set (α i)} (h : ∀ i ∈ s, OrdConnected (t i)) : OrdConnected (s.pi t) 
goal: (s.pi t).OrdConnected

full_name: Set.ordConnected_pi'
code: instance ordConnected_pi' {ι : Type*} {α : ι → Type*} [∀ i, Preorder (α i)] {s : Set ι}
    {t : ∀ i, Set (α i)} [h : ∀ i, OrdConnected (t i)] : OrdConnected (s.pi t) 
goal: (s.pi t).OrdConnected

full_name: Set.ordConnected_Ici
code: @[instance]
theorem ordConnected_Ici {a : α} : OrdConnected (Ici a) 
goal: (Set.Ici a).OrdConnected

full_name: Set.ordConnected_Iic
code: @[instance]
theorem ordConnected_Iic {a : α} : OrdConnected (Iic a) 
goal: (Set.Iic a).OrdConnected

full_name: Set.ordConnected_Ioi
code: @[instance]
theorem ordConnected_Ioi {a : α} : OrdConnected (Ioi a) 
goal: (Set.Ioi a).OrdConnected

full_name: Set.ordConnected_Iio
code: @[instance]
theorem ordConnected_Iio {a : α} : OrdConnected (Iio a) 
goal: (Set.Iio a).OrdConnected

full_name: Set.ordConnected_Icc
code: @[instance]
theorem ordConnected_Icc {a b : α} : OrdConnected (Icc a b) 
goal: (Set.Icc a b).OrdConnected

full_name: Set.ordConnected_Ico
code: @[instance]
theorem ordConnected_Ico {a b : α} : OrdConnected (Ico a b) 
goal: (Set.Ico a b).OrdConnected

full_name: Set.ordConnected_Ioc
code: @[instance]
theorem ordConnected_Ioc {a b : α} : OrdConnected (Ioc a b) 
goal: (Set.Ioc a b).OrdConnected

full_name: Set.ordConnected_Ioo
code: @[instance]
theorem ordConnected_Ioo {a b : α} : OrdConnected (Ioo a b) 
goal: (Set.Ioo a b).OrdConnected

full_name: Set.ordConnected_singleton
code: @[instance]
theorem ordConnected_singleton {α : Type*} [PartialOrder α] {a : α} :
    OrdConnected ({a} : Set α) 
goal: {a}.OrdConnected

full_name: Set.ordConnected_empty
code: @[instance]
theorem ordConnected_empty : OrdConnected (∅ : Set α) 
goal: ∅.OrdConnected

full_name: Set.ordConnected_univ
code: @[instance]
theorem ordConnected_univ : OrdConnected (univ : Set α) 
goal: Set.univ.OrdConnected

full_name: Set.instDenselyOrdered
code: /-- In a dense order `α`, the subtype from an `OrdConnected` set is also densely ordered. -/
instance instDenselyOrdered [DenselyOrdered α] {s : Set α} [hs : OrdConnected s] :
    DenselyOrdered s 
goal: DenselyOrdered ↑s

full_name: Set.ordConnected_preimage
code: @[instance]
theorem ordConnected_preimage {F : Type*} [FunLike F α β] [OrderHomClass F α β] (f : F)
    {s : Set β} [hs : OrdConnected s] : OrdConnected (f ⁻¹' s) 
goal: (⇑f ⁻¹' s).OrdConnected

full_name: Set.ordConnected_image
code: @[instance]
theorem ordConnected_image {E : Type*} [EquivLike E α β] [OrderIsoClass E α β] (e : E) {s : Set α}
    [hs : OrdConnected s] : OrdConnected (e '' s) 
goal: (⇑e '' s).OrdConnected

full_name: Set.ordConnected_range
code: @[instance]
theorem ordConnected_range {E : Type*} [EquivLike E α β] [OrderIsoClass E α β] (e : E) :
    OrdConnected (range e) 
goal: (Set.range ⇑e).OrdConnected

full_name: Set.dual_ordConnected_iff
code: @[simp]
theorem dual_ordConnected_iff {s : Set α} : OrdConnected (ofDual ⁻¹' s) ↔ OrdConnected s 
goal: (⇑OrderDual.ofDual ⁻¹' s).OrdConnected ↔ s.OrdConnected

full_name: Set.dual_ordConnected
code: @[instance]
theorem dual_ordConnected {s : Set α} [OrdConnected s] : OrdConnected (ofDual ⁻¹' s) 
goal: (⇑OrderDual.ofDual ⁻¹' s).OrdConnected

full_name: IsAntichain.ordConnected
code: protected theorem _root_.IsAntichain.ordConnected (hs : IsAntichain (· ≤ ·) s) : s.OrdConnected 
goal: s.OrdConnected

full_name: Set.ordConnected_inter_Icc_of_subset
code: lemma ordConnected_inter_Icc_of_subset (h : Ioo x y ⊆ s) : OrdConnected (s ∩ Icc x y) 
goal: (s ∩ Set.Icc x y).OrdConnected

full_name: Set.ordConnected_inter_Icc_iff
code: lemma ordConnected_inter_Icc_iff (hx : x ∈ s) (hy : y ∈ s) :
    OrdConnected (s ∩ Icc x y) ↔ Ioo x y ⊆ s 
goal: (s ∩ Set.Icc x y).OrdConnected ↔ Set.Ioo x y ⊆ s

full_name: Set.not_ordConnected_inter_Icc_iff
code: lemma not_ordConnected_inter_Icc_iff (hx : x ∈ s) (hy : y ∈ s) :
    ¬ OrdConnected (s ∩ Icc x y) ↔ ∃ z ∉ s, z ∈ Ioo x y 
goal: ¬(s ∩ Set.Icc x y).OrdConnected ↔ ∃ z ∉ s, z ∈ Set.Ioo x y

full_name: Set.ordConnected_uIcc
code: @[instance]
theorem ordConnected_uIcc {a b : α} : OrdConnected [[a, b]] 
goal: [[a, b]].OrdConnected

full_name: Set.ordConnected_uIoc
code: @[instance]
theorem ordConnected_uIoc {a b : α} : OrdConnected (Ι a b) 
goal: (Ι a b).OrdConnected

full_name: Set.OrdConnected.uIcc_subset
code: theorem OrdConnected.uIcc_subset (hs : OrdConnected s) ⦃x⦄ (hx : x ∈ s) ⦃y⦄ (hy : y ∈ s) :
    [[x, y]] ⊆ s 
goal: [[x, y]] ⊆ s

full_name: Set.OrdConnected.uIoc_subset
code: theorem OrdConnected.uIoc_subset (hs : OrdConnected s) ⦃x⦄ (hx : x ∈ s) ⦃y⦄ (hy : y ∈ s) :
    Ι x y ⊆ s 
goal: Ι x y ⊆ s

full_name: Set.ordConnected_iff_uIcc_subset
code: theorem ordConnected_iff_uIcc_subset :
    OrdConnected s ↔ ∀ ⦃x⦄ (_ : x ∈ s) ⦃y⦄ (_ : y ∈ s), [[x, y]] ⊆ s 
goal: s.OrdConnected ↔ ∀ ⦃x : α⦄, x ∈ s → ∀ ⦃y : α⦄, y ∈ s → [[x, y]] ⊆ s

full_name: Set.ordConnected_of_uIcc_subset_left
code: theorem ordConnected_of_uIcc_subset_left (h : ∀ y ∈ s, [[x, y]] ⊆ s) : OrdConnected s 
goal: s.OrdConnected

full_name: Set.ordConnected_iff_uIcc_subset_left
code: theorem ordConnected_iff_uIcc_subset_left (hx : x ∈ s) :
    OrdConnected s ↔ ∀ ⦃y⦄, y ∈ s → [[x, y]] ⊆ s 
goal: s.OrdConnected ↔ ∀ ⦃y : α⦄, y ∈ s → [[x, y]] ⊆ s

full_name: Set.ordConnected_iff_uIcc_subset_right
code: theorem ordConnected_iff_uIcc_subset_right (hx : x ∈ s) :
    OrdConnected s ↔ ∀ ⦃y⦄, y ∈ s → [[y, x]] ⊆ s 
goal: s.OrdConnected ↔ ∀ ⦃y : α⦄, y ∈ s → [[y, x]] ⊆ s