Documentation
Mathlib
.
Data
.
Prod
.
PProd
Search
return to top
source
Imports
Init
Mathlib.Logic.Function.Defs
Imported by
PProd
.
mk
.
injArrow
PProd
.
mk
.
eta
PProd
.
forall
PProd
.
exists
PProd
.
forall'
PProd
.
exists'
Function
.
Injective
.
pprod_map
Extra facts about
PProd
#
source
def
PProd
.
mk
.
injArrow
{α :
Type
u_5}
{β :
Type
u_6}
{x₁ :
α
}
{y₁ :
β
}
{x₂ :
α
}
{y₂ :
β
}
:
(
x₁
,
y₁
)
=
(
x₂
,
y₂
)
→
⦃
P
:
Sort
u_7⦄ →
(
x₁
=
x₂
→
y₁
=
y₂
→
P
)
→
P
Equations
PProd.mk.injArrow
h₁
h₂
=
Prod.noConfusion
h₁
h₂
Instances For
source
@[simp]
theorem
PProd
.
mk
.
eta
{α :
Sort
u_1}
{β :
Sort
u_2}
{p :
α
×'
β
}
:
⟨
p
.fst
,
p
.snd
⟩
=
p
source
@[simp]
theorem
PProd
.
forall
{α :
Sort
u_1}
{β :
Sort
u_2}
{p :
α
×'
β
→
Prop
}
:
(∀ (
x
:
α
×'
β
),
p
x
)
↔
∀ (
a
:
α
) (
b
:
β
),
p
⟨
a
,
b
⟩
source
@[simp]
theorem
PProd
.
exists
{α :
Sort
u_1}
{β :
Sort
u_2}
{p :
α
×'
β
→
Prop
}
:
(∃ (
x
:
α
×'
β
),
p
x
)
↔
∃ (
a
:
α
),
∃ (
b
:
β
),
p
⟨
a
,
b
⟩
source
theorem
PProd
.
forall'
{α :
Sort
u_1}
{β :
Sort
u_2}
{p :
α
→
β
→
Prop
}
:
(∀ (
x
:
α
×'
β
),
p
x
.fst
x
.snd
)
↔
∀ (
a
:
α
) (
b
:
β
),
p
a
b
source
theorem
PProd
.
exists'
{α :
Sort
u_1}
{β :
Sort
u_2}
{p :
α
→
β
→
Prop
}
:
(∃ (
x
:
α
×'
β
),
p
x
.fst
x
.snd
)
↔
∃ (
a
:
α
),
∃ (
b
:
β
),
p
a
b
source
theorem
Function
.
Injective
.
pprod_map
{α :
Sort
u_1}
{β :
Sort
u_2}
{γ :
Sort
u_3}
{δ :
Sort
u_4}
{f :
α
→
β
}
{g :
γ
→
δ
}
(hf :
Injective
f
)
(hg :
Injective
g
)
:
Injective
fun (
x
:
α
×'
γ
) =>
⟨
f
x
.fst
,
g
x
.snd
⟩