File: Mathlib/Order/Antichain.lean

full_name: Symmetric.compl
code: protected theorem Symmetric.compl (h : Symmetric r) : Symmetric rᶜ 
goal: Symmetric rᶜ

full_name: IsAntichain
code: /-- An antichain is a set such that no two distinct elements are related. -/
def IsAntichain (r : α → α → Prop) (s : Set α) : Prop 
goal: Prop

full_name: IsAntichain.subset
code: protected theorem subset (hs : IsAntichain r s) (h : t ⊆ s) : IsAntichain r t 
goal: IsAntichain r t

full_name: IsAntichain.mono
code: theorem mono (hs : IsAntichain r₁ s) (h : r₂ ≤ r₁) : IsAntichain r₂ s 
goal: IsAntichain r₂ s

full_name: IsAntichain.mono_on
code: theorem mono_on (hs : IsAntichain r₁ s) (h : s.Pairwise fun ⦃a b⦄ => r₂ a b → r₁ a b) :
    IsAntichain r₂ s 
goal: IsAntichain r₂ s

full_name: IsAntichain.eq
code: protected theorem eq (hs : IsAntichain r s) {a b : α} (ha : a ∈ s) (hb : b ∈ s) (h : r a b) :
    a = b 
goal: a = b

full_name: IsAntichain.eq'
code: protected theorem eq' (hs : IsAntichain r s) {a b : α} (ha : a ∈ s) (hb : b ∈ s) (h : r b a) :
    a = b 
goal: a = b

full_name: IsAntichain.isAntisymm
code: protected theorem isAntisymm (h : IsAntichain r univ) : IsAntisymm α r 
goal: IsAntisymm α r

full_name: IsAntichain.subsingleton
code: protected theorem subsingleton [IsTrichotomous α r] (h : IsAntichain r s) : s.Subsingleton 
goal: s.Subsingleton

full_name: IsAntichain.flip
code: protected theorem flip (hs : IsAntichain r s) : IsAntichain (flip r) s 
goal: IsAntichain (flip r) s

full_name: IsAntichain.swap
code: theorem swap (hs : IsAntichain r s) : IsAntichain (swap r) s 
goal: IsAntichain (Function.swap r) s

full_name: IsAntichain.image
code: theorem image (hs : IsAntichain r s) (f : α → β) (h : ∀ ⦃a b⦄, r' (f a) (f b) → r a b) :
    IsAntichain r' (f '' s) 
goal: IsAntichain r' (f '' s)

full_name: IsAntichain.preimage
code: theorem preimage (hs : IsAntichain r s) {f : β → α} (hf : Injective f)
    (h : ∀ ⦃a b⦄, r' a b → r (f a) (f b)) : IsAntichain r' (f ⁻¹' s) 
goal: IsAntichain r' (f ⁻¹' s)

full_name: isAntichain_insert
code: theorem _root_.isAntichain_insert :
    IsAntichain r (insert a s) ↔ IsAntichain r s ∧ ∀ ⦃b⦄, b ∈ s → a ≠ b → ¬r a b ∧ ¬r b a 
goal: IsAntichain r (insert a s) ↔ IsAntichain r s ∧ ∀ ⦃b : α⦄, b ∈ s → a ≠ b → ¬r a b ∧ ¬r b a

full_name: IsAntichain.insert
code: protected theorem insert (hs : IsAntichain r s) (hl : ∀ ⦃b⦄, b ∈ s → a ≠ b → ¬r b a)
    (hr : ∀ ⦃b⦄, b ∈ s → a ≠ b → ¬r a b) : IsAntichain r (insert a s) 
goal: IsAntichain r (insert a s)

full_name: isAntichain_insert_of_symmetric
code: theorem _root_.isAntichain_insert_of_symmetric (hr : Symmetric r) :
    IsAntichain r (insert a s) ↔ IsAntichain r s ∧ ∀ ⦃b⦄, b ∈ s → a ≠ b → ¬r a b 
goal: IsAntichain r (insert a s) ↔ IsAntichain r s ∧ ∀ ⦃b : α⦄, b ∈ s → a ≠ b → ¬r a b

full_name: IsAntichain.insert_of_symmetric
code: theorem insert_of_symmetric (hs : IsAntichain r s) (hr : Symmetric r)
    (h : ∀ ⦃b⦄, b ∈ s → a ≠ b → ¬r a b) : IsAntichain r (insert a s) 
goal: IsAntichain r (insert a s)

full_name: IsAntichain.image_relEmbedding
code: theorem image_relEmbedding (hs : IsAntichain r s) (φ : r ↪r r') : IsAntichain r' (φ '' s) 
goal: IsAntichain r' (⇑φ '' s)

full_name: IsAntichain.preimage_relEmbedding
code: theorem preimage_relEmbedding {t : Set β} (ht : IsAntichain r' t) (φ : r ↪r r') :
    IsAntichain r (φ ⁻¹' t) 
goal: IsAntichain r (⇑φ ⁻¹' t)

full_name: IsAntichain.image_relIso
code: theorem image_relIso (hs : IsAntichain r s) (φ : r ≃r r') : IsAntichain r' (φ '' s) 
goal: IsAntichain r' (⇑φ '' s)

full_name: IsAntichain.preimage_relIso
code: theorem preimage_relIso {t : Set β} (hs : IsAntichain r' t) (φ : r ≃r r') :
    IsAntichain r (φ ⁻¹' t) 
goal: IsAntichain r (⇑φ ⁻¹' t)

full_name: IsAntichain.image_relEmbedding_iff
code: theorem image_relEmbedding_iff {φ : r ↪r r'} : IsAntichain r' (φ '' s) ↔ IsAntichain r s 
goal: IsAntichain r' (⇑φ '' s) ↔ IsAntichain r s

full_name: IsAntichain.image_relIso_iff
code: theorem image_relIso_iff {φ : r ≃r r'} : IsAntichain r' (φ '' s) ↔ IsAntichain r s 
goal: IsAntichain r' (⇑φ '' s) ↔ IsAntichain r s

full_name: IsAntichain.image_embedding
code: theorem image_embedding [LE α] [LE β] (hs : IsAntichain (· ≤ ·) s) (φ : α ↪o β) :
    IsAntichain (· ≤ ·) (φ '' s) 
goal: IsAntichain (fun x x_1 => x ≤ x_1) (⇑φ '' s)

full_name: IsAntichain.preimage_embedding
code: theorem preimage_embedding [LE α] [LE β] {t : Set β} (ht : IsAntichain (· ≤ ·) t) (φ : α ↪o β) :
    IsAntichain (· ≤ ·) (φ ⁻¹' t) 
goal: IsAntichain (fun x x_1 => x ≤ x_1) (⇑φ ⁻¹' t)

full_name: IsAntichain.image_embedding_iff
code: theorem image_embedding_iff [LE α] [LE β] {φ : α ↪o β} :
    IsAntichain (· ≤ ·) (φ '' s) ↔ IsAntichain (· ≤ ·) s 
goal: IsAntichain (fun x x_1 => x ≤ x_1) (⇑φ '' s) ↔ IsAntichain (fun x x_1 => x ≤ x_1) s

full_name: IsAntichain.image_iso
code: theorem image_iso [LE α] [LE β] (hs : IsAntichain (· ≤ ·) s) (φ : α ≃o β) :
    IsAntichain (· ≤ ·) (φ '' s) 
goal: IsAntichain (fun x x_1 => x ≤ x_1) (⇑φ '' s)

full_name: IsAntichain.image_iso_iff
code: theorem image_iso_iff [LE α] [LE β] {φ : α ≃o β} :
    IsAntichain (· ≤ ·) (φ '' s) ↔ IsAntichain (· ≤ ·) s 
goal: IsAntichain (fun x x_1 => x ≤ x_1) (⇑φ '' s) ↔ IsAntichain (fun x x_1 => x ≤ x_1) s

full_name: IsAntichain.preimage_iso
code: theorem preimage_iso [LE α] [LE β] {t : Set β} (ht : IsAntichain (· ≤ ·) t) (φ : α ≃o β) :
    IsAntichain (· ≤ ·) (φ ⁻¹' t) 
goal: IsAntichain (fun x x_1 => x ≤ x_1) (⇑φ ⁻¹' t)

full_name: IsAntichain.preimage_iso_iff
code: theorem preimage_iso_iff [LE α] [LE β] {t : Set β} {φ : α ≃o β} :
    IsAntichain (· ≤ ·) (φ ⁻¹' t) ↔ IsAntichain (· ≤ ·) t 
goal: IsAntichain (fun x x_1 => x ≤ x_1) (⇑φ ⁻¹' t) ↔ IsAntichain (fun x x_1 => x ≤ x_1) t

full_name: IsAntichain.to_dual
code: theorem to_dual [LE α] (hs : IsAntichain (· ≤ ·) s) : @IsAntichain αᵒᵈ (· ≤ ·) s 
goal: IsAntichain (fun x x_1 => x ≤ x_1) s

full_name: IsAntichain.to_dual_iff
code: theorem to_dual_iff [LE α] : IsAntichain (· ≤ ·) s ↔ @IsAntichain αᵒᵈ (· ≤ ·) s 
goal: IsAntichain (fun x x_1 => x ≤ x_1) s ↔ IsAntichain (fun x x_1 => x ≤ x_1) s

full_name: IsAntichain.image_compl
code: theorem image_compl [BooleanAlgebra α] (hs : IsAntichain (· ≤ ·) s) :
    IsAntichain (· ≤ ·) (compl '' s) 
goal: IsAntichain (fun x x_1 => x ≤ x_1) (compl '' s)

full_name: IsAntichain.preimage_compl
code: theorem preimage_compl [BooleanAlgebra α] (hs : IsAntichain (· ≤ ·) s) :
    IsAntichain (· ≤ ·) (compl ⁻¹' s) 
goal: IsAntichain (fun x x_1 => x ≤ x_1) (compl ⁻¹' s)

full_name: isAntichain_singleton
code: theorem isAntichain_singleton (a : α) (r : α → α → Prop) : IsAntichain r {a} 
goal: IsAntichain r {a}

full_name: Set.Subsingleton.isAntichain
code: theorem Set.Subsingleton.isAntichain (hs : s.Subsingleton) (r : α → α → Prop) : IsAntichain r s 
goal: IsAntichain r s

full_name: IsAntichain.not_lt
code: theorem IsAntichain.not_lt (hs : IsAntichain (· ≤ ·) s) (ha : a ∈ s) (hb : b ∈ s) : ¬a < b 
goal: ¬a < b

full_name: isAntichain_and_least_iff
code: theorem isAntichain_and_least_iff : IsAntichain (· ≤ ·) s ∧ IsLeast s a ↔ s = {a} 
goal: IsAntichain (fun x x_1 => x ≤ x_1) s ∧ IsLeast s a ↔ s = {a}

full_name: isAntichain_and_greatest_iff
code: theorem isAntichain_and_greatest_iff : IsAntichain (· ≤ ·) s ∧ IsGreatest s a ↔ s = {a} 
goal: IsAntichain (fun x x_1 => x ≤ x_1) s ∧ IsGreatest s a ↔ s = {a}

full_name: IsAntichain.least_iff
code: theorem IsAntichain.least_iff (hs : IsAntichain (· ≤ ·) s) : IsLeast s a ↔ s = {a} 
goal: IsLeast s a ↔ s = {a}

full_name: IsAntichain.greatest_iff
code: theorem IsAntichain.greatest_iff (hs : IsAntichain (· ≤ ·) s) : IsGreatest s a ↔ s = {a} 
goal: IsGreatest s a ↔ s = {a}

full_name: IsLeast.antichain_iff
code: theorem IsLeast.antichain_iff (hs : IsLeast s a) : IsAntichain (· ≤ ·) s ↔ s = {a} 
goal: IsAntichain (fun x x_1 => x ≤ x_1) s ↔ s = {a}

full_name: IsGreatest.antichain_iff
code: theorem IsGreatest.antichain_iff (hs : IsGreatest s a) : IsAntichain (· ≤ ·) s ↔ s = {a} 
goal: IsAntichain (fun x x_1 => x ≤ x_1) s ↔ s = {a}

full_name: IsAntichain.bot_mem_iff
code: theorem IsAntichain.bot_mem_iff [OrderBot α] (hs : IsAntichain (· ≤ ·) s) : ⊥ ∈ s ↔ s = {⊥} 
goal: ⊥ ∈ s ↔ s = {⊥}

full_name: IsAntichain.top_mem_iff
code: theorem IsAntichain.top_mem_iff [OrderTop α] (hs : IsAntichain (· ≤ ·) s) : ⊤ ∈ s ↔ s = {⊤} 
goal: ⊤ ∈ s ↔ s = {⊤}

full_name: isAntichain_iff_forall_not_lt
code: theorem isAntichain_iff_forall_not_lt :
    IsAntichain (· ≤ ·) s ↔ ∀ ⦃a⦄, a ∈ s → ∀ ⦃b⦄, b ∈ s → ¬a < b 
goal: IsAntichain (fun x x_1 => x ≤ x_1) s ↔ ∀ ⦃a : α⦄, a ∈ s → ∀ ⦃b : α⦄, b ∈ s → ¬a < b

full_name: IsStrongAntichain
code: /-- A strong (upward) antichain is a set such that no two distinct elements are related to a common
element. -/
def IsStrongAntichain (r : α → α → Prop) (s : Set α) : Prop 
goal: Prop

full_name: IsStrongAntichain.subset
code: protected theorem subset (hs : IsStrongAntichain r s) (h : t ⊆ s) : IsStrongAntichain r t 
goal: IsStrongAntichain r t

full_name: IsStrongAntichain.mono
code: theorem mono (hs : IsStrongAntichain r₁ s) (h : r₂ ≤ r₁) : IsStrongAntichain r₂ s 
goal: IsStrongAntichain r₂ s

full_name: IsStrongAntichain.eq
code: theorem eq (hs : IsStrongAntichain r s) {a b c : α} (ha : a ∈ s) (hb : b ∈ s) (hac : r a c)
    (hbc : r b c) : a = b 
goal: a = b

full_name: IsStrongAntichain.isAntichain
code: protected theorem isAntichain [IsRefl α r] (h : IsStrongAntichain r s) : IsAntichain r s 
goal: IsAntichain r s

full_name: IsStrongAntichain.subsingleton
code: protected theorem subsingleton [IsDirected α r] (h : IsStrongAntichain r s) : s.Subsingleton 
goal: s.Subsingleton

full_name: IsStrongAntichain.flip
code: protected theorem flip [IsSymm α r] (hs : IsStrongAntichain r s) : IsStrongAntichain (flip r) s 
goal: IsStrongAntichain (flip r) s

full_name: IsStrongAntichain.swap
code: theorem swap [IsSymm α r] (hs : IsStrongAntichain r s) : IsStrongAntichain (swap r) s 
goal: IsStrongAntichain (Function.swap r) s

full_name: IsStrongAntichain.image
code: theorem image (hs : IsStrongAntichain r s) {f : α → β} (hf : Surjective f)
    (h : ∀ a b, r' (f a) (f b) → r a b) : IsStrongAntichain r' (f '' s) 
goal: IsStrongAntichain r' (f '' s)

full_name: IsStrongAntichain.preimage
code: theorem preimage (hs : IsStrongAntichain r s) {f : β → α} (hf : Injective f)
    (h : ∀ a b, r' a b → r (f a) (f b)) : IsStrongAntichain r' (f ⁻¹' s) 
goal: IsStrongAntichain r' (f ⁻¹' s)

full_name: isStrongAntichain_insert
code: theorem _root_.isStrongAntichain_insert :
    IsStrongAntichain r (insert a s) ↔
      IsStrongAntichain r s ∧ ∀ ⦃b⦄, b ∈ s → a ≠ b → ∀ c, ¬r a c ∨ ¬r b c 
goal: IsStrongAntichain r (insert a s) ↔ IsStrongAntichain r s ∧ ∀ ⦃b : α⦄, b ∈ s → a ≠ b → ∀ (c : α), ¬r a c ∨ ¬r b c

full_name: IsStrongAntichain.insert
code: protected theorem insert (hs : IsStrongAntichain r s)
    (h : ∀ ⦃b⦄, b ∈ s → a ≠ b → ∀ c, ¬r a c ∨ ¬r b c) : IsStrongAntichain r (insert a s) 
goal: IsStrongAntichain r (insert a s)

full_name: Set.Subsingleton.isStrongAntichain
code: theorem Set.Subsingleton.isStrongAntichain (hs : s.Subsingleton) (r : α → α → Prop) :
    IsStrongAntichain r s 
goal: IsStrongAntichain r s

full_name: IsAntichain.of_strictMonoOn_antitoneOn
code: lemma IsAntichain.of_strictMonoOn_antitoneOn (hf : StrictMonoOn f s) (hf' : AntitoneOn f s) :
    IsAntichain (· ≤ ·) s 
goal: IsAntichain (fun x x_1 => x ≤ x_1) s

full_name: IsAntichain.of_monotoneOn_strictAntiOn
code: lemma IsAntichain.of_monotoneOn_strictAntiOn (hf : MonotoneOn f s) (hf' : StrictAntiOn f s) :
    IsAntichain (· ≤ ·) s 
goal: IsAntichain (fun x x_1 => x ≤ x_1) s

full_name: _aux_Mathlib_Order_Antichain___unexpand_StrongLT_1
code: @[inherit_doc]
local infixl:50 " ≺ " => StrongLT
goal: Lean.PrettyPrinter.Unexpander

full_name: «_aux_Mathlib_Order_Antichain___macroRules_term_≺__1»
code: @[inherit_doc]
local infixl:50 " ≺ " => StrongLT
goal: Lean.Macro

full_name: IsWeakAntichain
code: /-- A weak antichain in `Π i, α i` is a set such that no two distinct elements are strongly less
than each other. -/
def IsWeakAntichain (s : Set (∀ i, α i)) : Prop 
goal: Prop

full_name: IsWeakAntichain.subset
code: protected theorem subset (hs : IsWeakAntichain s) : t ⊆ s → IsWeakAntichain t 
goal: t ⊆ s → IsWeakAntichain t

full_name: IsWeakAntichain.eq
code: protected theorem eq (hs : IsWeakAntichain s) : a ∈ s → b ∈ s → a ≺ b → a = b 
goal: a ∈ s → b ∈ s → StrongLT a b → a = b

full_name: IsWeakAntichain.insert
code: protected theorem insert (hs : IsWeakAntichain s) :
    (∀ ⦃b⦄, b ∈ s → a ≠ b → ¬b ≺ a) →
      (∀ ⦃b⦄, b ∈ s → a ≠ b → ¬a ≺ b) → IsWeakAntichain (insert a s) 
goal: (∀ ⦃b : (i : ι) → α i⦄, b ∈ s → a ≠ b → ¬StrongLT b a) →
  (∀ ⦃b : (i : ι) → α i⦄, b ∈ s → a ≠ b → ¬StrongLT a b) → IsWeakAntichain (insert a s)

full_name: isWeakAntichain_insert
code: theorem _root_.isWeakAntichain_insert :
    IsWeakAntichain (insert a s) ↔ IsWeakAntichain s ∧ ∀ ⦃b⦄, b ∈ s → a ≠ b → ¬a ≺ b ∧ ¬b ≺ a 
goal: IsWeakAntichain (insert a s) ↔ IsWeakAntichain s ∧ ∀ ⦃b : (i : ι) → α i⦄, b ∈ s → a ≠ b → ¬StrongLT a b ∧ ¬StrongLT b a

full_name: IsAntichain.isWeakAntichain
code: protected theorem IsAntichain.isWeakAntichain (hs : IsAntichain (· ≤ ·) s) : IsWeakAntichain s 
goal: IsWeakAntichain s

full_name: Set.Subsingleton.isWeakAntichain
code: theorem Set.Subsingleton.isWeakAntichain (hs : s.Subsingleton) : IsWeakAntichain s 
goal: IsWeakAntichain s