feat(library/data/nat/order): add theorems for max and min
This commit is contained in:
parent
1a164d8fc9
commit
b19331f28f
1 changed files with 26 additions and 0 deletions
|
@ -446,4 +446,30 @@ decidable.by_cases
|
|||
assert H' : b ≤ a, from le_of_lt (lt_of_not_ge H),
|
||||
by rewrite (max_eq_left H'); apply H₁)
|
||||
|
||||
theorem min_add_add_left (a b c : ℕ) : min (a + b) (a + c) = a + min b c :=
|
||||
decidable.by_cases
|
||||
(assume H : b ≤ c,
|
||||
assert H1 : a + b ≤ a + c, from add_le_add_left H _,
|
||||
by rewrite [min_eq_left H, min_eq_left H1])
|
||||
(assume H : ¬ b ≤ c,
|
||||
assert H' : c ≤ b, from le_of_lt (lt_of_not_ge H),
|
||||
assert H1 : a + c ≤ a + b, from add_le_add_left H' _,
|
||||
by rewrite [min_eq_right H', min_eq_right H1])
|
||||
|
||||
theorem min_add_add_right (a b c : ℕ) : min (a + c) (b + c) = min a b + c :=
|
||||
by rewrite [add.comm a c, add.comm b c, add.comm _ c]; apply min_add_add_left
|
||||
|
||||
theorem max_add_add_left (a b c : ℕ) : max (a + b) (a + c) = a + max b c :=
|
||||
decidable.by_cases
|
||||
(assume H : b ≤ c,
|
||||
assert H1 : a + b ≤ a + c, from add_le_add_left H _,
|
||||
by rewrite [max_eq_right H, max_eq_right H1])
|
||||
(assume H : ¬ b ≤ c,
|
||||
assert H' : c ≤ b, from le_of_lt (lt_of_not_ge H),
|
||||
assert H1 : a + c ≤ a + b, from add_le_add_left H' _,
|
||||
by rewrite [max_eq_left H', max_eq_left H1])
|
||||
|
||||
theorem max_add_add_right (a b c : ℕ) : max (a + c) (b + c) = max a b + c :=
|
||||
by rewrite [add.comm a c, add.comm b c, add.comm _ c]; apply max_add_add_left
|
||||
|
||||
end nat
|
||||
|
|
Loading…
Reference in a new issue