Documentation

Mathlib.Data.Prod.PProd

Extra facts about PProd #

@[simp]
theorem PProd.mk.eta {α : Sort u_1} {β : Sort u_2} {p : PProd α β} :
{ fst := p.fst, snd := p.snd } = p
@[simp]
theorem PProd.forall {α : Sort u_1} {β : Sort u_2} {p : PProd α βProp} :
((x : PProd α β) → p x) (a : α) → (b : β) → p { fst := a, snd := b }
@[simp]
theorem PProd.exists {α : Sort u_1} {β : Sort u_2} {p : PProd α βProp} :
(x, p x) a b, p { fst := a, snd := b }
theorem PProd.forall' {α : Sort u_1} {β : Sort u_2} {p : αβProp} :
((x : PProd α β) → p x.fst x.snd) (a : α) → (b : β) → p a b
theorem PProd.exists' {α : Sort u_1} {β : Sort u_2} {p : αβProp} :
(x, p x.fst x.snd) a b, p a b
theorem Function.Injective.pprod_map {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {δ : Sort u_4} {f : αβ} {g : γδ} (hf : Function.Injective f) (hg : Function.Injective g) :
Function.Injective fun x => { fst := f x.fst, snd := g x.snd }