Documentation

Mathlib.Algebra.Ring.Divisibility.Basic

Lemmas about divisibility in rings #

Note that this file is imported by basic tactics like linarith and so must have only minimal imports. Further results about divisibility in rings may be found in Mathlib.Algebra.Ring.Divisibility.Lemmas which is not subject to this import constraint.

theorem map_dvd_iff {α : Type u_1} {β : Type u_2} [Semigroup α] [Semigroup β] {F : Type u_3} [EquivLike F α β] [MulEquivClass F α β] (f : F) {a : α} {b : α} :
f a f b a b
theorem MulEquiv.decompositionMonoid {α : Type u_1} {β : Type u_2} [Semigroup α] [Semigroup β] {F : Type u_3} [EquivLike F α β] [MulEquivClass F α β] (f : F) [DecompositionMonoid β] :
theorem dvd_add {α : Type u_1} [Add α] [Semigroup α] [LeftDistribClass α] {a : α} {b : α} {c : α} (h₁ : a b) (h₂ : a c) :
a b + c
theorem Dvd.dvd.add {α : Type u_1} [Add α] [Semigroup α] [LeftDistribClass α] {a : α} {b : α} {c : α} (h₁ : a b) (h₂ : a c) :
a b + c

Alias of dvd_add.

@[simp]
theorem two_dvd_bit0 {α : Type u_1} [Semiring α] {a : α} :
2 bit0 a
theorem min_pow_dvd_add {α : Type u_1} [Semiring α] {a : α} {b : α} {c : α} {m : } {n : } (ha : c ^ m a) (hb : c ^ n b) :
c ^ min m n a + b
theorem Dvd.dvd.linear_comb {α : Type u_1} [NonUnitalCommSemiring α] {d : α} {x : α} {y : α} (hdx : d x) (hdy : d y) (a : α) (b : α) :
d a * x + b * y
@[simp]
theorem dvd_neg {α : Type u_1} [Semigroup α] [HasDistribNeg α] {a : α} {b : α} :
a -b a b

An element a of a semigroup with a distributive negation divides the negation of an element b iff a divides b.

@[simp]
theorem neg_dvd {α : Type u_1} [Semigroup α] [HasDistribNeg α] {a : α} {b : α} :
-a b a b

The negation of an element a of a semigroup with a distributive negation divides another element b iff a divides b.

theorem Dvd.dvd.neg_left {α : Type u_1} [Semigroup α] [HasDistribNeg α] {a : α} {b : α} :
a b-a b

Alias of the reverse direction of neg_dvd.


The negation of an element a of a semigroup with a distributive negation divides another element b iff a divides b.

theorem Dvd.dvd.of_neg_left {α : Type u_1} [Semigroup α] [HasDistribNeg α] {a : α} {b : α} :
-a ba b

Alias of the forward direction of neg_dvd.


The negation of an element a of a semigroup with a distributive negation divides another element b iff a divides b.

theorem Dvd.dvd.of_neg_right {α : Type u_1} [Semigroup α] [HasDistribNeg α] {a : α} {b : α} :
a -ba b

Alias of the forward direction of dvd_neg.


An element a of a semigroup with a distributive negation divides the negation of an element b iff a divides b.

theorem Dvd.dvd.neg_right {α : Type u_1} [Semigroup α] [HasDistribNeg α] {a : α} {b : α} :
a ba -b

Alias of the reverse direction of dvd_neg.


An element a of a semigroup with a distributive negation divides the negation of an element b iff a divides b.

theorem dvd_sub {α : Type u_1} [NonUnitalRing α] {a : α} {b : α} {c : α} (h₁ : a b) (h₂ : a c) :
a b - c
theorem Dvd.dvd.sub {α : Type u_1} [NonUnitalRing α] {a : α} {b : α} {c : α} (h₁ : a b) (h₂ : a c) :
a b - c

Alias of dvd_sub.

theorem dvd_add_left {α : Type u_1} [NonUnitalRing α] {a : α} {b : α} {c : α} (h : a c) :
a b + c a b

If an element a divides another element c in a ring, a divides the sum of another element b with c iff a divides b.

theorem dvd_add_right {α : Type u_1} [NonUnitalRing α] {a : α} {b : α} {c : α} (h : a b) :
a b + c a c

If an element a divides another element b in a ring, a divides the sum of b and another element c iff a divides c.

theorem dvd_sub_left {α : Type u_1} [NonUnitalRing α] {a : α} {b : α} {c : α} (h : a c) :
a b - c a b

If an element a divides another element c in a ring, a divides the difference of another element b with c iff a divides b.

theorem dvd_sub_right {α : Type u_1} [NonUnitalRing α] {a : α} {b : α} {c : α} (h : a b) :
a b - c a c

If an element a divides another element b in a ring, a divides the difference of b and another element c iff a divides c.

theorem dvd_iff_dvd_of_dvd_sub {α : Type u_1} [NonUnitalRing α] {a : α} {b : α} {c : α} (h : a b - c) :
a b a c
theorem dvd_sub_comm {α : Type u_1} [NonUnitalRing α] {a : α} {b : α} {c : α} :
a b - c a c - b
theorem two_dvd_bit1 {α : Type u_1} [Ring α] {a : α} :
2 bit1 a 2 1
@[simp]
theorem dvd_add_self_left {α : Type u_1} [Ring α] {a : α} {b : α} :
a a + b a b

An element a divides the sum a + b if and only if a divides b.

@[simp]
theorem dvd_add_self_right {α : Type u_1} [Ring α] {a : α} {b : α} :
a b + a a b

An element a divides the sum b + a if and only if a divides b.

@[simp]
theorem dvd_sub_self_left {α : Type u_1} [Ring α] {a : α} {b : α} :
a a - b a b

An element a divides the difference a - b if and only if a divides b.

@[simp]
theorem dvd_sub_self_right {α : Type u_1} [Ring α] {a : α} {b : α} :
a b - a a b

An element a divides the difference b - a if and only if a divides b.

theorem dvd_mul_sub_mul {α : Type u_1} [NonUnitalCommRing α] {k : α} {a : α} {b : α} {x : α} {y : α} (hab : k a - b) (hxy : k x - y) :
k a * x - b * y