mathlib3 documentation

data.ulift

Extra lemmas about ulift and plift #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

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]
@[protected, instance]
def plift.nonempty {α : Sort u} [nonempty α] :
@[protected, instance]
def plift.unique {α : Sort u} [unique α] :
Equations
@[protected, instance]
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]
@[protected, instance]
def ulift.nonempty {α : Type u} [nonempty α] :
@[protected, instance]
def ulift.unique {α : Type u} [unique α] :
Equations
@[protected, instance]
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}