HepLean Documentation
Init
.
Data
.
Array
.
DecidableEq
Search
Google site search
return to top
source
Imports
Init.ByCases
Init.Data.BEq
Init.Data.Array.Basic
Imported by
Array
.
rel_of_isEqvAux
Array
.
rel_of_isEqv
Array
.
eq_of_isEqv
Array
.
isEqvAux_self
Array
.
isEqv_self_beq
Array
.
isEqv_self
Array
.
instDecidableEq
source
theorem
Array
.
rel_of_isEqvAux
{α :
Type
u_1}
(r :
α
→
α
→
Bool
)
(a :
Array
α
)
(b :
Array
α
)
(hsz :
a
.size
=
b
.size
)
(i :
Nat
)
(hi :
i
≤
a
.size
)
(heqv :
a
.isEqvAux
b
hsz
r
i
hi
=
true
)
(j :
Nat
)
(hj :
j
<
i
)
:
r
a
[
j
]
b
[
j
]
=
true
source
theorem
Array
.
rel_of_isEqv
{α :
Type
u_1}
(r :
α
→
α
→
Bool
)
(a :
Array
α
)
(b :
Array
α
)
:
a
.isEqv
b
r
=
true
→
∃ (
h
:
a
.size
=
b
.size
),
∀ (
i
:
Nat
) (
h'
:
i
<
a
.size
),
r
a
[
i
]
b
[
i
]
=
true
source
theorem
Array
.
eq_of_isEqv
{α :
Type
u_1}
[
DecidableEq
α
]
(a :
Array
α
)
(b :
Array
α
)
(h :
(
a
.isEqv
b
fun (
x
y
:
α
) =>
decide
(
x
=
y
)
)
=
true
)
:
a
=
b
source
theorem
Array
.
isEqvAux_self
{α :
Type
u_1}
(r :
α
→
α
→
Bool
)
(hr :
∀ (
a
:
α
),
r
a
a
=
true
)
(a :
Array
α
)
(i :
Nat
)
(h :
i
≤
a
.size
)
:
a
.isEqvAux
a
⋯
r
i
h
=
true
source
theorem
Array
.
isEqv_self_beq
{α :
Type
u_1}
[
BEq
α
]
[
ReflBEq
α
]
(a :
Array
α
)
:
(
a
.isEqv
a
fun (
x1
x2
:
α
) =>
x1
==
x2
)
=
true
source
theorem
Array
.
isEqv_self
{α :
Type
u_1}
[
DecidableEq
α
]
(a :
Array
α
)
:
(
a
.isEqv
a
fun (
x1
x2
:
α
) =>
decide
(
x1
=
x2
)
)
=
true
source
instance
Array
.
instDecidableEq
{α :
Type
u_1}
[
DecidableEq
α
]
:
DecidableEq
(
Array
α
)
Equations
a
.instDecidableEq
b
=
match h :
a
.isEqv
b
fun (
a
b
:
α
) =>
decide
(
a
=
b
)
with |
true
=>
isTrue
⋯
|
false
=>
isFalse
⋯