Documentation
ProofsWMathlib
.
Lean
.
day_2025_12_30
Search
return to top
source
trace
Imports
Init
Mathlib.Data.Setoid.Basic
Mathlib.Data.Setoid.Partition
Imported by
setoid_trans
setoid_refl
classes_nonempty
classes_pw_disjoint
nondisjoint_classes_eq
exists_class
covers_unique
setoid_is_partition
mathlib_inj_iff_has_left_inv
mathlib_inj_iff_has_left_inv2
hasa_prop
g_surj_if_left_inv
source
theorem
setoid_trans
{
a
:
Sort
u_1}
(
r
:
Setoid
a
)
(
x
y
z
:
a
)
(
h
:
r
x
y
∧
r
y
z
)
:
r
x
z
source
theorem
setoid_refl
{
a
:
Sort
u_1}
(
r
:
Setoid
a
)
(
x
:
a
)
:
r
x
x
source
theorem
classes_nonempty
{
a
:
Type
u_1}
(
r
:
Setoid
a
)
:
∅
∉
r
.
classes
source
theorem
classes_pw_disjoint
{
a
:
Type
u_1}
(
r
:
Setoid
a
)
:
r
.
classes
.
PairwiseDisjoint
id
source
theorem
nondisjoint_classes_eq
{
a
:
Type
u_1}
{
x
y
:
Set
a
}
{
z
:
a
}
(
r
:
Setoid
a
)
(
h1
:
x
∈
r
.
classes
)
(
h2
:
y
∈
r
.
classes
)
(
hz
:
z
∈
x
∧
z
∈
y
)
:
x
=
y
source
theorem
exists_class
{
a
:
Type
u_1}
(
r
:
Setoid
a
)
(
x
:
a
)
:
∃
b
∈
r
.
classes
,
x
∈
b
source
theorem
covers_unique
{
a
:
Type
u_1}
(
r
:
Setoid
a
)
(
x
:
a
)
:
∃!
b
:
Set
a
,
b
∈
r
.
classes
∧
x
∈
b
source
theorem
setoid_is_partition
{
a
:
Type
u_1}
(
r
:
Setoid
a
)
:
Setoid.IsPartition
r
.
classes
source
theorem
mathlib_inj_iff_has_left_inv
{
A
:
Sort
u_1}
{
B
:
Sort
u_2}
(
f
:
A
→
B
)
[
Nonempty
A
]
:
Function.Injective
f
↔
Function.HasLeftInverse
f
source
theorem
mathlib_inj_iff_has_left_inv2
{
A
:
Sort
u_1}
{
B
:
Sort
u_2}
(
f
:
A
→
B
)
(
hne
:
Nonempty
A
)
:
Function.Injective
f
↔
Function.HasLeftInverse
f
source
theorem
hasa_prop
{
A
:
Sort
u_1}
(
h
:
∃ (
x
:
A
),
True
)
:
Nonempty
A
source
theorem
g_surj_if_left_inv
{
A
:
Sort
u_1}
{
B
:
Sort
u_2}
{
g
:
B
→
A
}
(
f
:
A
→
B
)
(
h
:
Function.LeftInverse
g
f
)
:
Function.Surjective
g