|
| 1 | +/- |
| 2 | +Copyright (c) 2016 Jeremy Avigad. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Jeremy Avigad |
| 5 | +
|
| 6 | +The integers, with addition, multiplication, and subtraction. |
| 7 | +-/ |
| 8 | +import Mathlib.Mathport.Rename |
| 9 | +import Mathlib.Init.Data.Nat.Basic |
| 10 | +import Mathlib.Init.ZeroOne |
| 11 | +import Std.Data.Int.Lemmas |
| 12 | + |
| 13 | +open Nat |
| 14 | + |
| 15 | +-- TODO: backport? |
| 16 | +#align int.neg_succ_of_nat Int.negSucc |
| 17 | + |
| 18 | +-- @[inherit_doc] |
| 19 | +notation "ℤ" => Int |
| 20 | + |
| 21 | +namespace Int |
| 22 | + |
| 23 | +/-- The number `0 : ℤ`, as a standalone definition. -/ |
| 24 | +@[deprecated] protected def zero : ℤ := ofNat 0 |
| 25 | + |
| 26 | +/-- The number `1 : ℤ`, as a standalone definition. -/ |
| 27 | +@[deprecated] protected def one : ℤ := ofNat 1 |
| 28 | + |
| 29 | +#align int.of_nat_zero Int.ofNat_zero |
| 30 | +#align int.of_nat_one Int.ofNat_one |
| 31 | +#align int.sub_nat_nat_of_sub_eq_zero Int.subNatNat_of_sub_eq_zero |
| 32 | +#align int.sub_nat_nat_of_sub_eq_succ Int.subNatNat_of_sub_eq_succ |
| 33 | +#align int.of_nat_add Int.ofNat_add |
| 34 | +#align int.of_nat_mul Int.ofNat_mul |
| 35 | +#align int.of_nat_succ Int.ofNat_succ |
| 36 | +#align int.neg_of_nat_of_succ Int.neg_ofNat_of_succ |
| 37 | + |
| 38 | +theorem neg_negSucc (n : ℕ) : - -[n+1] = ofNat (succ n) := rfl |
| 39 | +#align int.neg_neg_of_nat_succ Int.neg_negSucc |
| 40 | + |
| 41 | +@[deprecated, nolint synTaut] |
| 42 | +theorem ofNat_eq_coe (n : ℕ) : ofNat n = ↑n := rfl |
| 43 | +#align int.of_nat_eq_coe Int.ofNat_eq_coe |
| 44 | + |
| 45 | +#align int.neg_succ_of_nat_coe Int.negSucc_coe |
| 46 | +#align int.coe_nat_add Int.ofNat_add |
| 47 | +#align int.coe_nat_mul Int.ofNat_mul |
| 48 | +#align int.coe_nat_zero Int.ofNat_zero |
| 49 | +#align int.coe_nat_one Int.ofNat_one |
| 50 | +#align int.coe_nat_succ Int.ofNat_succ |
| 51 | + |
| 52 | +protected theorem ofNat_add_out (m n : ℕ) : ↑m + ↑n = (↑(m + n) : ℤ) := rfl |
| 53 | +#align int.coe_nat_add_out Int.ofNat_add_out |
| 54 | + |
| 55 | +protected theorem ofNat_mul_out (m n : ℕ) : ↑m * ↑n = (↑(m * n) : ℤ) := rfl |
| 56 | +#align int.coe_nat_mul_out Int.ofNat_mul_out |
| 57 | + |
| 58 | +protected theorem ofNat_add_one_out (n : ℕ) : ↑n + (1 : ℤ) = ↑(succ n) := rfl |
| 59 | +#align int.coe_nat_add_one_out Int.ofNat_add_one_out |
| 60 | + |
| 61 | +#align int.of_nat_add_of_nat Int.ofNat_add_ofNat |
| 62 | + |
| 63 | +#align int.of_nat_add_neg_succ_of_nat Int.ofNat_add_negSucc |
| 64 | +#align int.neg_succ_of_nat_add_of_nat Int.negSucc_add_ofNat |
| 65 | +#align int.neg_succ_of_nat_add_neg_succ_of_nat Int.negSucc_add_negSucc |
| 66 | +#align int.of_nat_mul_of_nat Int.ofNat_mul_ofNat |
| 67 | +#align int.of_nat_mul_neg_succ_of_nat Int.ofNat_mul_negSucc' |
| 68 | +#align int.neg_succ_of_nat_of_nat Int.negSucc_mul_ofNat' |
| 69 | +#align int.mul_neg_succ_of_nat_neg_succ_of_nat Int.negSucc_mul_negSucc' |
| 70 | + |
| 71 | +#align int.coe_nat_inj Int.ofNat.inj |
| 72 | +#align int.of_nat_eq_of_nat_iff Int.ofNat_inj |
| 73 | +#align int.coe_nat_eq_coe_nat_iff Int.ofNat_inj |
| 74 | +#align int.neg_succ_of_nat_inj_iff Int.negSucc_inj |
| 75 | +#align int.neg_succ_of_nat_eq Int.negSucc_eq |
| 76 | + |
| 77 | +protected theorem neg_eq_neg {a b : ℤ} (h : -a = -b) : a = b := Int.neg_inj.1 h |
| 78 | +#align int.neg_inj Int.neg_eq_neg |
| 79 | + |
| 80 | +#align int.sub_nat_nat_elim Int.subNatNat_elim |
| 81 | +#align int.sub_nat_nat_add_left Int.subNatNat_add_left |
| 82 | +#align int.sub_nat_nat_add_right Int.subNatNat_add_right |
| 83 | +#align int.sub_nat_nat_add_add Int.subNatNat_add_add |
| 84 | +#align int.sub_nat_nat_of_le Int.subNatNat_of_le |
| 85 | +#align int.sub_nat_nat_of_lt Int.subNatNat_of_lt |
| 86 | +#align int.nat_abs_of_nat Int.natAbs_ofNat |
| 87 | + |
| 88 | +@[deprecated natAbs_eq_zero] |
| 89 | +theorem eq_zero_of_natAbs_eq_zero : ∀ {a : ℤ}, natAbs a = 0 → a = 0 := natAbs_eq_zero.1 |
| 90 | +#align int.eq_zero_of_nat_abs_eq_zero Int.eq_zero_of_natAbs_eq_zero |
| 91 | + |
| 92 | +@[deprecated natAbs_pos] |
| 93 | +theorem natAbs_pos_of_ne_zero {a : ℤ} (h : a ≠ 0) : 0 < natAbs a := natAbs_pos.2 h |
| 94 | +#align int.nat_abs_pos_of_ne_zero Int.natAbs_pos_of_ne_zero |
| 95 | + |
| 96 | +#align int.nat_abs_zero Int.natAbs_zero |
| 97 | +#align int.nat_abs_one Int.natAbs_one |
| 98 | +#align int.nat_abs_mul_self Int.natAbs_mul_self |
| 99 | +#align int.nat_abs_neg Int.natAbs_neg |
| 100 | +#align int.nat_abs_eq Int.natAbs_eq |
| 101 | +#align int.eq_coe_or_neg Int.eq_nat_or_neg |
| 102 | + |
| 103 | +#align int.div Int.ediv |
| 104 | +#align int.mod Int.emod |
| 105 | +#align int.quot Int.div |
| 106 | +#align int.rem Int.mod |
| 107 | + |
| 108 | +#align int.sub_nat_nat_sub Int.subNatNat_subₓ -- reordered implicits |
| 109 | +#align int.sub_nat_nat_add Int.subNatNat_add |
| 110 | +#align int.sub_nat_nat_add_neg_succ_of_nat Int.subNatNat_add_negSucc |
| 111 | + |
| 112 | +#align int.add_assoc_aux1 Int.add_assoc.aux1 |
| 113 | +#align int.add_assoc_aux2 Int.add_assoc.aux2 |
| 114 | + |
| 115 | +#align int.sub_nat_self Int.subNatNat_self |
| 116 | + |
| 117 | +#align int.of_nat_mul_neg_of_nat Int.ofNat_mul_negOfNat |
| 118 | +#align int.neg_of_nat_mul_of_nat Int.negOfNat_mul_ofNat |
| 119 | +#align int.neg_succ_of_nat_mul_neg_of_nat Int.negSucc_mul_negOfNat |
| 120 | +#align int.neg_of_nat_mul_neg_succ_of_nat Int.negOfNat_mul_negSucc |
| 121 | +#align int.neg_of_nat_eq_sub_nat_nat_zero Int.negOfNat_eq_subNatNat_zero |
| 122 | +#align int.of_nat_mul_sub_nat_nat Int.ofNat_mul_subNatNat |
| 123 | +#align int.neg_of_nat_add Int.negOfNat_add |
| 124 | +#align int.neg_succ_of_nat_mul_sub_nat_nat Int.negSucc_mul_subNatNat |
| 125 | +#align int.distrib_left Int.mul_add |
| 126 | +#align int.distrib_right Int.add_mul |
| 127 | +#align int.of_nat_sub Int.ofNat_subₓ -- reordered implicits |
| 128 | +#align int.neg_succ_of_nat_coe' Int.negSucc_coe' |
| 129 | +#align int.coe_nat_sub Int.ofNat_sub |
| 130 | +#align int.sub_nat_nat_eq_coe Int.subNatNat_eq_coe |
| 131 | +#align int.to_nat_sub Int.toNat_sub |
| 132 | +#align int.sign_mul_nat_abs Int.sign_mul_natAbs |
0 commit comments