Documentation
HexGraphIso
.
Nauty
.
Spec
.
KeyMax
Search
return to top
source
Imports
Init
HexGraphIso.Nauty.Spec.CanonSpec
Imported by
Hex
.
GraphIso
.
Nauty
.
keyMax_assoc
Hex
.
GraphIso
.
Nauty
.
keysMax_keyMax
Hex
.
GraphIso
.
Nauty
.
foldl_incMax
Hex
.
GraphIso
.
Nauty
.
foldl_incMax_cons
source
theorem
Hex
.
GraphIso
.
Nauty
.
keyMax_assoc
{
n
:
Nat
}
(
x
y
z
:
Key
n
)
:
keyMax
(
keyMax
x
y
)
z
=
keyMax
x
(
keyMax
y
z
)
Taking the maximum of specification keys is associative.
source
theorem
Hex
.
GraphIso
.
Nauty
.
keysMax_keyMax
{
n
:
Nat
}
(
l
:
List
(
Key
n
)
)
(
b
c
:
Key
n
)
:
keysMax
(
keyMax
b
c
)
l
=
keyMax
b
(
keysMax
c
l
)
source
theorem
Hex
.
GraphIso
.
Nauty
.
foldl_incMax
{
n
:
Nat
}
{
f
:
Option
(
Key
n
)
→
Nat
→
Option
(
Key
n
)
}
{
key
:
Nat
→
Key
n
}
(
os
:
List
Nat
)
:
(∀ (
acc
:
Option
(
Key
n
)
) (
o
:
Nat
),
o
∈
os
→
f
acc
o
=
some
(
incMax
acc
(
key
o
)
)
)
→
∀ (
t
:
Key
n
),
List.foldl
f
(
some
t
)
os
=
some
(
keysMax
t
(
List.map
key
os
)
)
source
theorem
Hex
.
GraphIso
.
Nauty
.
foldl_incMax_cons
{
n
:
Nat
}
{
f
:
Option
(
Key
n
)
→
Nat
→
Option
(
Key
n
)
}
{
key
:
Nat
→
Key
n
}
{
o
:
Nat
}
{
os
:
List
Nat
}
(
h
:
∀ (
acc
:
Option
(
Key
n
)
) (
x
:
Nat
),
x
∈
o
::
os
→
f
acc
x
=
some
(
incMax
acc
(
key
x
)
)
)
(
tail0
:
Option
(
Key
n
)
)
:
List.foldl
f
tail0
(
o
::
os
)
=
some
(
incMax
tail0
(
keysMax
(
key
o
)
(
List.map
key
os
)
)
)