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.