Extra facts about Prod #
This file proves various simple lemmas about Prod.
It also defines better delaborators for product projections.
Equations
- Prod.mk.injArrow h₁ h₂ = Prod.noConfusion h₁ h₂
 
Instances For
@[simp]
@[deprecated Prod.map_apply (since := "2024-10-17")]
theorem
Prod.map_mk
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
{δ : Type u_4}
(f : α → β)
(g : γ → δ)
(x : α)
(y : γ)
 :
Alias of Prod.map_apply.
theorem
Prod.mk.inj_right
{α : Type u_5}
{β : Type u_6}
(b : β)
 :
Function.Injective fun (a : α) => (a, b)
@[simp]
@[simp]
instance
Prod.Lex.decidable
{α : Type u_1}
{β : Type u_2}
[DecidableEq α]
(r : α → α → Prop)
(s : β → β → Prop)
[DecidableRel r]
[DecidableRel s]
 :
DecidableRel (Prod.Lex r s)
Equations
- Prod.Lex.decidable r s x✝¹ x✝ = decidable_of_decidable_of_iff ⋯
 
instance
Prod.instIsAntisymmLexOfIsStrictOrder
{α : Type u_1}
{β : Type u_2}
{r : α → α → Prop}
{s : β → β → Prop}
[IsStrictOrder α r]
[IsAntisymm β s]
 :
IsAntisymm (α × β) (Prod.Lex r s)
instance
Prod.IsTrichotomous
{α : Type u_1}
{β : Type u_2}
{r : α → α → Prop}
{s : β → β → Prop}
[_root_.IsTrichotomous α r]
[_root_.IsTrichotomous β s]
 :
_root_.IsTrichotomous (α × β) (Prod.Lex r s)
theorem
Function.Surjective.prodMap
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
{δ : Type u_4}
{f : α → γ}
{g : β → δ}
(hf : Surjective f)
(hg : Surjective g)
 :
Surjective (Prod.map f g)
theorem
Function.LeftInverse.prodMap
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
{δ : Type u_4}
{f₁ : α → β}
{g₁ : γ → δ}
{f₂ : β → α}
{g₂ : δ → γ}
(hf : LeftInverse f₁ f₂)
(hg : LeftInverse g₁ g₂)
 :
LeftInverse (Prod.map f₁ g₁) (Prod.map f₂ g₂)
theorem
Function.RightInverse.prodMap
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
{δ : Type u_4}
{f₁ : α → β}
{g₁ : γ → δ}
{f₂ : β → α}
{g₂ : δ → γ}
 :
RightInverse f₁ f₂ → RightInverse g₁ g₂ → RightInverse (Prod.map f₁ g₁) (Prod.map f₂ g₂)
theorem
Function.Involutive.prodMap
{α : Type u_1}
{β : Type u_2}
{f : α → α}
{g : β → β}
 :
Involutive f → Involutive g → Involutive (Prod.map f g)
@[deprecated Function.Surjective.prodMap (since := "2024-05-08")]
theorem
Function.Surjective.Prod_map
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
{δ : Type u_4}
{f : α → γ}
{g : β → δ}
(hf : Surjective f)
(hg : Surjective g)
 :
Surjective (Prod.map f g)
Alias of Function.Surjective.prodMap.
@[deprecated Function.LeftInverse.prodMap (since := "2024-05-08")]
theorem
Function.LeftInverse.Prod_map
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
{δ : Type u_4}
{f₁ : α → β}
{g₁ : γ → δ}
{f₂ : β → α}
{g₂ : δ → γ}
(hf : LeftInverse f₁ f₂)
(hg : LeftInverse g₁ g₂)
 :
LeftInverse (Prod.map f₁ g₁) (Prod.map f₂ g₂)
Alias of Function.LeftInverse.prodMap.
@[deprecated Function.RightInverse.prodMap (since := "2024-05-08")]
theorem
Function.RightInverse.Prod_map
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
{δ : Type u_4}
{f₁ : α → β}
{g₁ : γ → δ}
{f₂ : β → α}
{g₂ : δ → γ}
 :
RightInverse f₁ f₂ → RightInverse g₁ g₂ → RightInverse (Prod.map f₁ g₁) (Prod.map f₂ g₂)
Alias of Function.RightInverse.prodMap.
@[deprecated Function.Involutive.prodMap (since := "2024-05-08")]
theorem
Function.Involutive.Prod_map
{α : Type u_1}
{β : Type u_2}
{f : α → α}
{g : β → β}
 :
Involutive f → Involutive g → Involutive (Prod.map f g)
Alias of Function.Involutive.prodMap.
@[simp]
theorem
Prod.map_injective
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
{δ : Type u_4}
[Nonempty α]
[Nonempty β]
{f : α → γ}
{g : β → δ}
 :
Function.Injective (map f g) ↔ Function.Injective f ∧ Function.Injective g
@[simp]
theorem
Prod.map_bijective
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
{δ : Type u_4}
[Nonempty α]
[Nonempty β]
{f : α → γ}
{g : β → δ}
 :
Function.Bijective (map f g) ↔ Function.Bijective f ∧ Function.Bijective g
@[simp]
theorem
Prod.map_leftInverse
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
{δ : Type u_4}
[Nonempty β]
[Nonempty δ]
{f₁ : α → β}
{g₁ : γ → δ}
{f₂ : β → α}
{g₂ : δ → γ}
 :
Function.LeftInverse (map f₁ g₁) (map f₂ g₂) ↔ Function.LeftInverse f₁ f₂ ∧ Function.LeftInverse g₁ g₂
@[simp]
theorem
Prod.map_rightInverse
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
{δ : Type u_4}
[Nonempty α]
[Nonempty γ]
{f₁ : α → β}
{g₁ : γ → δ}
{f₂ : β → α}
{g₂ : δ → γ}
 :
Function.RightInverse (map f₁ g₁) (map f₂ g₂) ↔ Function.RightInverse f₁ f₂ ∧ Function.RightInverse g₁ g₂
@[simp]
theorem
Prod.map_involutive
{α : Type u_1}
{β : Type u_2}
[Nonempty α]
[Nonempty β]
{f : α → α}
{g : β → β}
 :
Delaborator for Prod.fst x as x.1.
Equations
- One or more equations did not get rendered due to their size.
 
Instances For
Delaborator for Prod.snd x as x.2.
Equations
- One or more equations did not get rendered due to their size.