feat(library/algebra): missing theorems

This commit is contained in:
Rob Lewis 2016-05-25 15:31:44 -04:00 committed by Leonardo de Moura
parent 670ee10b27
commit 6f25abfb87
2 changed files with 35 additions and 0 deletions

View file

@ -135,6 +135,7 @@ section
theorem not_lt_of_ge (H : a ≥ b) : ¬ a < b :=
assume H1 : a < b,
lt.irrefl _ (lt_of_le_of_lt H H1)
end
structure strong_order_pair [class] (A : Type) extends weak_order A, has_lt A :=
@ -245,6 +246,26 @@ section
(assume H', absurd (H' ▸ !le.refl) H)
(assume H', H')
theorem lt_iff_not_ge : a < b ↔ ¬ a ≥ b :=
iff.intro
(suppose a < b, not_le_of_gt this)
(suppose ¬ a ≥ b, lt_of_not_ge this)
theorem le_iff_not_gt : a ≤ b ↔ ¬ a > b :=
iff.intro
(suppose a ≤ b, not_lt_of_ge this)
(suppose ¬ a > b, le_of_not_gt this)
theorem gt_iff_not_le : a > b ↔ ¬ a ≤ b :=
iff.intro
(suppose a > b, not_le_of_gt this)
(suppose ¬ a ≤ b, lt_of_not_ge this)
theorem ge_iff_not_lt : a ≥ b ↔ ¬ a < b :=
iff.intro
(suppose a ≥ b, not_lt_of_ge this)
(suppose ¬ a < b, le_of_not_gt this)
theorem lt_or_ge : a < b a ≥ b :=
lt.by_cases
(assume H1 : a < b, or.inl H1)

View file

@ -588,4 +588,18 @@ section discrete_linear_ordered_field
have b = 0, from eq_of_le_of_ge (le_of_not_gt Hgt) Hb,
by rewrite [this, div_zero]; apply le.refl
theorem div_le_div_of_le_of_nonneg (H : a ≤ b) (Hc : 0 ≤ c) : a / c ≤ b / c :=
begin
cases lt_or_eq_of_le Hc with Hlt Heq,
apply div_le_div_of_le_of_pos H Hlt,
rewrite [-Heq, 2 div_zero]
end
theorem div_le_div_of_le_of_nonpos (H : b ≤ a) (Hc : c ≤ 0) : a / c ≤ b / c :=
begin
cases lt_or_eq_of_le Hc with Hlt Heq,
apply div_le_div_of_le_of_neg H Hlt,
rewrite [Heq, 2 div_zero]
end
end discrete_linear_ordered_field