Library Coq.Numbers.Natural.Abstract.NMaxMin
Require
Import
NAxioms
NSub
GenericMinMax
.
Properties of minimum and maximum specific to natural numbers
Module
Type
NMaxMinProp
(
Import
N
:
NAxiomsMiniSig´
).
Include
NSubProp
N
.
Zero
Lemma
max_0_l
:
forall
n
,
max
0
n
==
n
.
Lemma
max_0_r
:
forall
n
,
max
n
0
==
n
.
Lemma
min_0_l
:
forall
n
,
min
0
n
==
0.
Lemma
min_0_r
:
forall
n
,
min
n
0
==
0.
The following results are concrete instances of
max_monotone
and similar lemmas.
Succ
Lemma
succ_max_distr
:
forall
n
m
,
S
(
max
n
m
)
==
max
(
S
n
) (
S
m
).
Lemma
succ_min_distr
:
forall
n
m
,
S
(
min
n
m
)
==
min
(
S
n
) (
S
m
).
Add
Lemma
add_max_distr_l
:
forall
n
m
p
,
max
(
p
+
n
) (
p
+
m
)
==
p
+
max
n
m
.
Lemma
add_max_distr_r
:
forall
n
m
p
,
max
(
n
+
p
) (
m
+
p
)
==
max
n
m
+
p
.
Lemma
add_min_distr_l
:
forall
n
m
p
,
min
(
p
+
n
) (
p
+
m
)
==
p
+
min
n
m
.
Lemma
add_min_distr_r
:
forall
n
m
p
,
min
(
n
+
p
) (
m
+
p
)
==
min
n
m
+
p
.
Mul
Lemma
mul_max_distr_l
:
forall
n
m
p
,
max
(
p
*
n
) (
p
*
m
)
==
p
*
max
n
m
.
Lemma
mul_max_distr_r
:
forall
n
m
p
,
max
(
n
*
p
) (
m
*
p
)
==
max
n
m
*
p
.
Lemma
mul_min_distr_l
:
forall
n
m
p
,
min
(
p
*
n
) (
p
*
m
)
==
p
*
min
n
m
.
Lemma
mul_min_distr_r
:
forall
n
m
p
,
min
(
n
*
p
) (
m
*
p
)
==
min
n
m
*
p
.
Sub
Lemma
sub_max_distr_l
:
forall
n
m
p
,
max
(
p
-
n
) (
p
-
m
)
==
p
-
min
n
m
.
Lemma
sub_max_distr_r
:
forall
n
m
p
,
max
(
n
-
p
) (
m
-
p
)
==
max
n
m
-
p
.
Lemma
sub_min_distr_l
:
forall
n
m
p
,
min
(
p
-
n
) (
p
-
m
)
==
p
-
max
n
m
.
Lemma
sub_min_distr_r
:
forall
n
m
p
,
min
(
n
-
p
) (
m
-
p
)
==
min
n
m
-
p
.
End
NMaxMinProp
.