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
⟩