feat(library/data/nat/sub): additional theorems

This commit is contained in:
Joe Hendrix 2016-12-03 15:33:13 -08:00 committed by Leonardo de Moura
parent f244c0e70a
commit d52c3327ba

View file

@ -21,4 +21,18 @@ protected theorem sub_add_cancel : Π{n i : }, i ≤ n → (n - i) + i = n
= ((n - i) + succ i) : congr_arg (λ v, v + succ i) (succ_sub_succ n i)
... = succ n : congr_arg succ (sub_add_cancel (pred_le_pred p))
theorem add_sub_cancel_left : Π (n m : ), n + m - n = m
| 0 m := nat.zero_add m
| (succ a) m :=
calc succ a + m - succ a
= succ (a + m) - succ a
: congr_arg (λz, z - succ a) (nat.succ_add a m)
... = a + m - a : succ_sub_succ_eq_sub (a+m) a
... = m : add_sub_cancel_left a m
-- defined in data/nat/sub.lean
protected theorem sub_le_sub_right {n m : } (H : n ≤ m) : Πk, n - k ≤ m - k
| 0 := H
| (succ z) := pred_le_pred (sub_le_sub_right z)
end nat