Documentation

Mathlib.Logic.Nontrivial.Basic

Nontrivial types #

Results about Nontrivial.

theorem nontrivial_of_lt {α : Type u_1} [Preorder α] (x y : α) (h : x < y) :
theorem exists_pair_lt (α : Type u_3) [Nontrivial α] [LinearOrder α] :
∃ (x : α) (y : α), x < y
theorem nontrivial_iff_lt {α : Type u_1} [LinearOrder α] :
Nontrivial α ∃ (x : α) (y : α), x < y
theorem Subtype.nontrivial_iff_exists_ne {α : Type u_1} (p : αProp) (x : Subtype p) :
Nontrivial (Subtype p) ∃ (y : α) (_ : p y), y x
noncomputable def nontrivialPSumUnique (α : Type u_3) [Inhabited α] :

An inhabited type is either nontrivial, or has a unique element.

Equations
    Instances For
      instance nontrivial_prod_right {α : Type u_1} {β : Type u_2} [Nonempty α] [Nontrivial β] :
      Nontrivial (α × β)
      instance nontrivial_prod_left {α : Type u_1} {β : Type u_2} [Nontrivial α] [Nonempty β] :
      Nontrivial (α × β)
      theorem Pi.nontrivial_at {I : Type u_3} {f : IType u_4} (i' : I) [inst : ∀ (i : I), Nonempty (f i)] [Nontrivial (f i')] :
      Nontrivial ((i : I) → f i)

      A pi type is nontrivial if it's nonempty everywhere and nontrivial somewhere.

      instance Pi.nontrivial {I : Type u_3} {f : IType u_4} [Inhabited I] [∀ (i : I), Nonempty (f i)] [Nontrivial (f default)] :
      Nontrivial ((i : I) → f i)

      As a convenience, provide an instance automatically if (f default) is nontrivial.

      If a different index has the non-trivial type, then use haveI := nontrivial_at that_index.

      instance Function.nontrivial {α : Type u_1} {β : Type u_2} [h : Nonempty α] [Nontrivial β] :
      Nontrivial (αβ)
      theorem Subsingleton.le {α : Type u_1} [Preorder α] [Subsingleton α] (x y : α) :
      x y