mathlib documentation

data.ulift

Extra lemmas about ulift and plift #

In this file we provide subsingleton, unique, decidable_eq, and is_empty instances for ulift α and plift α. We also prove ulift.forall, ulift.exists, plift.forall, and plift.exists.

@[protected, instance]
def plift.subsingleton {α : Sort u} [subsingleton α] :
@[protected, instance]
def plift.nonempty {α : Sort u} [nonempty α] :
@[protected, instance]
def plift.unique {α : Sort u} [unique α] :
Equations
@[protected, instance]
def plift.decidable_eq {α : Sort u} [decidable_eq α] :
Equations
@[protected, instance]
def plift.is_empty {α : Sort u} [is_empty α] :
theorem plift.up_injective {α : Sort u} :
theorem plift.up_surjective {α : Sort u} :
theorem plift.up_bijective {α : Sort u} :
@[simp]
theorem plift.up_inj {α : Sort u} {x y : α} :
{down := x} = {down := y} x = y
@[simp]
theorem plift.forall {α : Sort u} {p : plift α → Prop} :
(∀ (x : plift α), p x) ∀ (x : α), p {down := x}
@[simp]
theorem plift.exists {α : Sort u} {p : plift α → Prop} :
(∃ (x : plift α), p x) ∃ (x : α), p {down := x}
@[protected, instance]
def ulift.subsingleton {α : Type u} [subsingleton α] :
@[protected, instance]
def ulift.nonempty {α : Type u} [nonempty α] :
@[protected, instance]
def ulift.unique {α : Type u} [unique α] :
Equations
@[protected, instance]
def ulift.decidable_eq {α : Type u} [decidable_eq α] :
Equations
@[protected, instance]
def ulift.is_empty {α : Type u} [is_empty α] :
theorem ulift.up_injective {α : Type u} :
theorem ulift.up_surjective {α : Type u} :
theorem ulift.up_bijective {α : Type u} :
@[simp]
theorem ulift.up_inj {α : Type u} {x y : α} :
{down := x} = {down := y} x = y
@[simp]
theorem ulift.forall {α : Type u} {p : ulift α → Prop} :
(∀ (x : ulift α), p x) ∀ (x : α), p {down := x}
@[simp]
theorem ulift.exists {α : Type u} {p : ulift α → Prop} :
(∃ (x : ulift α), p x) ∃ (x : α), p {down := x}