Loogle!
Result
Found 211 declarations mentioning Nat.ModEq. Of these, only the first 200 are shown.
- Nat.ModEq π Mathlib.Data.Nat.ModEq
(n a b : β) : Prop - Nat.ModEq.instRefl π Mathlib.Data.Nat.ModEq
{n : β} : Std.Refl n.ModEq - Nat.ModEq.refl π Mathlib.Data.Nat.ModEq
{n : β} (a : β) : a β‘ a [MOD n] - Nat.ModEq.rfl π Mathlib.Data.Nat.ModEq
{n a : β} : a β‘ a [MOD n] - Nat.instDecidableModEq π Mathlib.Data.Nat.ModEq
{n a b : β} : Decidable (a β‘ b [MOD n]) - Nat.modulus_modEq_zero π Mathlib.Data.Nat.ModEq
{n : β} : n β‘ 0 [MOD n] - Nat.modEq_one π Mathlib.Data.Nat.ModEq
{a b : β} : a β‘ b [MOD 1] - Nat.ModEq.instTrans π Mathlib.Data.Nat.ModEq
{n : β} : Trans n.ModEq n.ModEq n.ModEq - Nat.ModEq.symm π Mathlib.Data.Nat.ModEq
{n a b : β} : a β‘ b [MOD n] β b β‘ a [MOD n] - Nat.ModEq.comm π Mathlib.Data.Nat.ModEq
{n a b : β} : a β‘ b [MOD n] β b β‘ a [MOD n] - AddCommGroup.modEq_iff_natModEq π Mathlib.Data.Nat.ModEq
{a b n : β} : a β‘ b [PMOD n] β a β‘ b [MOD n] - Nat.add_modEq_left π Mathlib.Data.Nat.ModEq
{n a : β} : n + a β‘ a [MOD n] - Nat.add_modEq_right π Mathlib.Data.Nat.ModEq
{n a : β} : a + n β‘ a [MOD n] - Nat.mod_modEq π Mathlib.Data.Nat.ModEq
(a n : β) : a % n β‘ a [MOD n] - Nat.modEq_zero_iff π Mathlib.Data.Nat.ModEq
{a b : β} : a β‘ b [MOD 0] β a = b - Dvd.dvd.modEq_zero_nat π Mathlib.Data.Nat.ModEq
{n a : β} (h : n β£ a) : a β‘ 0 [MOD n] - Dvd.dvd.zero_modEq_nat π Mathlib.Data.Nat.ModEq
{n a : β} (h : n β£ a) : 0 β‘ a [MOD n] - Nat.ModEq.gcd_eq π Mathlib.Data.Nat.ModEq
{m a b : β} (h : a β‘ b [MOD m]) : a.gcd m = b.gcd m - Nat.modEq_zero_iff_dvd π Mathlib.Data.Nat.ModEq
{n a : β} : a β‘ 0 [MOD n] β n β£ a - Nat.ModEq.trans π Mathlib.Data.Nat.ModEq
{n a b c : β} : a β‘ b [MOD n] β b β‘ c [MOD n] β a β‘ c [MOD n] - Nat.ModEq.of_dvd π Mathlib.Data.Nat.ModEq
{m n a b : β} (d : m β£ n) (h : a β‘ b [MOD n]) : a β‘ b [MOD m] - Nat.mod_lcm π Mathlib.Data.Nat.ModEq
{m n a b : β} (hn : a β‘ b [MOD n]) (hm : a β‘ b [MOD m]) : a β‘ b [MOD n.lcm m] - Nat.chineseRemainder π Mathlib.Data.Nat.ModEq
{m n : β} (co : n.Coprime m) (a b : β) : { k // k β‘ a [MOD n] β§ k β‘ b [MOD m] } - Nat.modEq_sub π Mathlib.Data.Nat.ModEq
{a b : β} (h : b β€ a) : a β‘ b [MOD a - b] - Nat.add_modulus_modEq_iff π Mathlib.Data.Nat.ModEq
{n a b : β} : a + n β‘ b [MOD n] β a β‘ b [MOD n] - Nat.modEq_add_modulus_iff π Mathlib.Data.Nat.ModEq
{n a b : β} : a β‘ b + n [MOD n] β a β‘ b [MOD n] - Nat.modEq_modulus_add_iff π Mathlib.Data.Nat.ModEq
{n a b : β} : a β‘ n + b [MOD n] β a β‘ b [MOD n] - Nat.modulus_add_modEq_iff π Mathlib.Data.Nat.ModEq
{n a b : β} : n + a β‘ b [MOD n] β a β‘ b [MOD n] - Nat.ModEq.dvd' π Mathlib.Data.Nat.ModEq
{n a b : β} (h : a β‘ b [MOD n]) : n β£ b - a - Nat.ModEq.of_mul_left π Mathlib.Data.Nat.ModEq
{n a b : β} (m : β) (h : a β‘ b [MOD m * n]) : a β‘ b [MOD n] - Nat.ModEq.of_mul_right π Mathlib.Data.Nat.ModEq
{n a b : β} (m : β) : a β‘ b [MOD n * m] β a β‘ b [MOD n] - Nat.add_modEq_left_iff π Mathlib.Data.Nat.ModEq
{n a b : β} : a + b β‘ a [MOD n] β n β£ b - Nat.add_modEq_right_iff π Mathlib.Data.Nat.ModEq
{n a b : β} : a + b β‘ b [MOD n] β n β£ a - Nat.left_modEq_add_iff π Mathlib.Data.Nat.ModEq
{n a b : β} : a β‘ a + b [MOD n] β n β£ b - Nat.right_modEq_add_iff π Mathlib.Data.Nat.ModEq
{n a b : β} : b β‘ a + b [MOD n] β n β£ a - Nat.ModEq.eq_of_lt_of_lt π Mathlib.Data.Nat.ModEq
{m a b : β} (h : a β‘ b [MOD m]) (ha : a < m) (hb : b < m) : a = b - Nat.chineseRemainder' π Mathlib.Data.Nat.ModEq
{m n a b : β} (h : a β‘ b [MOD n.gcd m]) : { k // k β‘ a [MOD n] β§ k β‘ b [MOD m] } - Nat.coprime_of_mul_modEq_one π Mathlib.Data.Nat.ModEq
(b : β) {a n : β} (h : a * b β‘ 1 [MOD n]) : a.Coprime n - Nat.ModEq.modulus_mul_add π Mathlib.Data.Nat.ModEq
{m a b : β} : m * a + b β‘ b [MOD m] - Nat.mod_eq_of_modEq π Mathlib.Data.Nat.ModEq
{a b n : β} (h : a β‘ b [MOD n]) (hb : b < n) : a % n = b - Nat.ModEq.dvd_iff π Mathlib.Data.Nat.ModEq
{m a b d : β} (h : a β‘ b [MOD m]) (hdm : d β£ m) : d β£ a β d β£ b - Nat.modEq_of_dvd' π Mathlib.Data.Nat.ModEq
{n a b : β} (h : a β€ b) : n β£ b - a β a β‘ b [MOD n] - Nat.modEq_sub_modulus_iff π Mathlib.Data.Nat.ModEq
{n a b : β} (h : n β€ b) : a β‘ b - n [MOD n] β a β‘ b [MOD n] - Nat.sub_modulus_modEq_iff π Mathlib.Data.Nat.ModEq
{n a b : β} (h : n β€ a) : a - n β‘ b [MOD n] β a β‘ b [MOD n] - Nat.ModEq.add_le_of_lt π Mathlib.Data.Nat.ModEq
{m a b : β} (h1 : a β‘ b [MOD m]) (h2 : a < b) : a + m β€ b - Nat.ModEq.le_of_lt_add π Mathlib.Data.Nat.ModEq
{m a b : β} (h1 : a β‘ b [MOD m]) (h2 : a < b + m) : a β€ b - Nat.modEq_iff_dvd' π Mathlib.Data.Nat.ModEq
{n a b : β} (h : a β€ b) : a β‘ b [MOD n] β n β£ b - a - Nat.ModEq.add_left π Mathlib.Data.Nat.ModEq
{n a b : β} (c : β) (h : a β‘ b [MOD n]) : c + a β‘ c + b [MOD n] - Nat.ModEq.add_left_cancel' π Mathlib.Data.Nat.ModEq
{n a b : β} (c : β) (h : c + a β‘ c + b [MOD n]) : a β‘ b [MOD n] - Nat.ModEq.add_right π Mathlib.Data.Nat.ModEq
{n a b : β} (c : β) (h : a β‘ b [MOD n]) : a + c β‘ b + c [MOD n] - Nat.ModEq.add_right_cancel' π Mathlib.Data.Nat.ModEq
{n a b : β} (c : β) (h : a + c β‘ b + c [MOD n]) : a β‘ b [MOD n] - Nat.ModEq.mul_left π Mathlib.Data.Nat.ModEq
{n a b : β} (c : β) (h : a β‘ b [MOD n]) : c * a β‘ c * b [MOD n] - Nat.ModEq.mul_right π Mathlib.Data.Nat.ModEq
{n a b : β} (c : β) (h : a β‘ b [MOD n]) : a * c β‘ b * c [MOD n] - Nat.add_modulus_mul_modEq_iff π Mathlib.Data.Nat.ModEq
{n a b c : β} : a + n * b β‘ c [MOD n] β a β‘ c [MOD n] - Nat.add_mul_modulus_modEq_iff π Mathlib.Data.Nat.ModEq
{n a b c : β} : a + b * n β‘ c [MOD n] β a β‘ c [MOD n] - Nat.modEq_add_modulus_mul_iff π Mathlib.Data.Nat.ModEq
{n a b c : β} : a β‘ b + n * c [MOD n] β a β‘ b [MOD n] - Nat.modEq_add_mul_modulus_iff π Mathlib.Data.Nat.ModEq
{n a b c : β} : a β‘ b + c * n [MOD n] β a β‘ b [MOD n] - Nat.modEq_and_modEq_iff_modEq_mul π Mathlib.Data.Nat.ModEq
{a b m n : β} (hmn : m.Coprime n) : a β‘ b [MOD m] β§ a β‘ b [MOD n] β a β‘ b [MOD m * n] - Nat.modEq_modulus_mul_add_iff π Mathlib.Data.Nat.ModEq
{n a b c : β} : a β‘ n * b + c [MOD n] β a β‘ c [MOD n] - Nat.modEq_mul_modulus_add_iff π Mathlib.Data.Nat.ModEq
{n a b c : β} : a β‘ b * n + c [MOD n] β a β‘ c [MOD n] - Nat.modEq_of_dvd π Mathlib.Data.Nat.ModEq
{n a b : β} : βn β£ βb - βa β a β‘ b [MOD n] - Nat.modulus_mul_add_modEq_iff π Mathlib.Data.Nat.ModEq
{n a b c : β} : n * b + a β‘ c [MOD n] β a β‘ c [MOD n] - Nat.mul_modulus_add_modEq_iff π Mathlib.Data.Nat.ModEq
{n a b c : β} : b * n + a β‘ c [MOD n] β a β‘ c [MOD n] - Nat.ModEq.dvd π Mathlib.Data.Nat.ModEq
{n a b : β} : a β‘ b [MOD n] β βn β£ βb - βa - Nat.modEq_iff_dvd π Mathlib.Data.Nat.ModEq
{n a b : β} : a β‘ b [MOD n] β βn β£ βb - βa - Nat.ext_div_modEq π Mathlib.Data.Nat.ModEq
{n a b : β} (h0 : a / n = b / n) (h1 : a β‘ b [MOD n]) : a = b - Nat.modEq_iff_eq_of_div_eq π Mathlib.Data.Nat.ModEq
{n a b : β} (h : a / n = b / n) : a β‘ b [MOD n] β a = b - Nat.ext_div_modEq_iff π Mathlib.Data.Nat.ModEq
(n a b : β) : a = b β a / n = b / n β§ a β‘ b [MOD n] - Nat.ModEq.add π Mathlib.Data.Nat.ModEq
{n a b c d : β} (hβ : a β‘ b [MOD n]) (hβ : c β‘ d [MOD n]) : a + c β‘ b + d [MOD n] - Nat.ModEq.add_left_cancel π Mathlib.Data.Nat.ModEq
{n a b c d : β} (hβ : a β‘ b [MOD n]) (hβ : a + c β‘ b + d [MOD n]) : c β‘ d [MOD n] - Nat.ModEq.add_right_cancel π Mathlib.Data.Nat.ModEq
{n a b c d : β} (hβ : c β‘ d [MOD n]) (hβ : a + c β‘ b + d [MOD n]) : a β‘ b [MOD n] - Nat.ModEq.mul π Mathlib.Data.Nat.ModEq
{n a b c d : β} (hβ : a β‘ b [MOD n]) (hβ : c β‘ d [MOD n]) : a * c β‘ b * d [MOD n] - Nat.ModEq.add_iff_left π Mathlib.Data.Nat.ModEq
{n a b c d : β} (h : a β‘ b [MOD n]) : a + c β‘ b + d [MOD n] β c β‘ d [MOD n] - Nat.ModEq.add_iff_right π Mathlib.Data.Nat.ModEq
{n a b c d : β} (h : c β‘ d [MOD n]) : a + c β‘ b + d [MOD n] β a β‘ b [MOD n] - Nat.modEq_iff_exists_eq_add π Mathlib.Data.Nat.ModEq
{n a b : β} (h : a β€ b) : a β‘ b [MOD n] β β t, b = a + n * t - Nat.ModEq.mul_left' π Mathlib.Data.Nat.ModEq
{n a b : β} (c : β) (h : a β‘ b [MOD n]) : c * a β‘ c * b [MOD c * n] - Nat.ModEq.mul_right' π Mathlib.Data.Nat.ModEq
{n a b : β} (c : β) (h : a β‘ b [MOD n]) : a * c β‘ b * c [MOD n * c] - Nat.ModEq.eq_of_abs_lt π Mathlib.Data.Nat.ModEq
{m a b : β} (h : a β‘ b [MOD m]) (h2 : |βb - βa| < βm) : a = b - Nat.ModEq.cancel_left_of_coprime π Mathlib.Data.Nat.ModEq
{m a b c : β} (hmc : m.gcd c = 1) (h : c * a β‘ c * b [MOD m]) : a β‘ b [MOD m] - Nat.ModEq.cancel_right_of_coprime π Mathlib.Data.Nat.ModEq
{m a b c : β} (hmc : m.gcd c = 1) (h : a * c β‘ b * c [MOD m]) : a β‘ b [MOD m] - Nat.ModEq.pow π Mathlib.Data.Nat.ModEq
{n a b : β} (m : β) (h : a β‘ b [MOD n]) : a ^ m β‘ b ^ m [MOD n] - Nat.ModEq.sub_left π Mathlib.Data.Nat.ModEq
{n a b c : β} (hba : b β€ a) (hca : c β€ a) (hbc : b β‘ c [MOD n]) : a - b β‘ a - c [MOD n] - Nat.ModEq.sub_right π Mathlib.Data.Nat.ModEq
{n a b c : β} (hab : a β€ b) (hac : a β€ c) (hbc : b β‘ c [MOD n]) : b - a β‘ c - a [MOD n] - AddCommGroup.ModEq.natCast π Mathlib.Data.Nat.ModEq
{M : Type u_1} [AddCommMonoidWithOne M] {a b n : β} (h : a β‘ b [MOD n]) : βa β‘ βb [PMOD βn] - Nat.ModEq.sub_left' π Mathlib.Data.Nat.ModEq
{n a b c : β} (h : b β€ a β c β€ a) (hbc : b β‘ c [MOD n]) : a - b β‘ a - c [MOD n] - Nat.ModEq.sub_right' π Mathlib.Data.Nat.ModEq
{n a b c : β} (h : a β€ b β a β€ c) (hbc : b β‘ c [MOD n]) : b - a β‘ c - a [MOD n] - Nat.ModEq.sub π Mathlib.Data.Nat.ModEq
{n a b c d : β} (hca : c β€ a) (hdb : d β€ b) (hab : a β‘ b [MOD n]) (hcd : c β‘ d [MOD n]) : a - c β‘ b - d [MOD n] - Nat.ModEq.mul_left_cancel' π Mathlib.Data.Nat.ModEq
{a b c m : β} (hc : c β 0) : c * a β‘ c * b [MOD c * m] β a β‘ b [MOD m] - Nat.ModEq.mul_right_cancel' π Mathlib.Data.Nat.ModEq
{a b c m : β} (hc : c β 0) : a * c β‘ b * c [MOD m * c] β a β‘ b [MOD m] - Nat.ModEq.of_natCast π Mathlib.Data.Nat.ModEq
{M : Type u_1} [AddCommMonoidWithOne M] [CharZero M] {a b n : β} : βa β‘ βb [PMOD βn] β a β‘ b [MOD n] - Nat.ModEq.sub' π Mathlib.Data.Nat.ModEq
{n a b c d : β} (h : c β€ a β d β€ b) (hab : a β‘ b [MOD n]) (hcd : c β‘ d [MOD n]) : a - c β‘ b - d [MOD n] - AddCommGroup.natCast_modEq_natCast π Mathlib.Data.Nat.ModEq
{M : Type u_1} [AddCommMonoidWithOne M] [CharZero M] {a b n : β} : βa β‘ βb [PMOD βn] β a β‘ b [MOD n] - Nat.chineseRemainder_modEq_unique π Mathlib.Data.Nat.ModEq
{m n : β} (co : n.Coprime m) {a b z : β} (hzan : z β‘ a [MOD n]) (hzbm : z β‘ b [MOD m]) : z β‘ β(Nat.chineseRemainder co a b) [MOD n * m] - Nat.ModEq.mul_left_cancel_iff' π Mathlib.Data.Nat.ModEq
{a b c m : β} (hc : c β 0) : c * a β‘ c * b [MOD c * m] β a β‘ b [MOD m] - Nat.ModEq.mul_right_cancel_iff' π Mathlib.Data.Nat.ModEq
{a b c m : β} (hc : c β 0) : a * c β‘ b * c [MOD m * c] β a β‘ b [MOD m] - Nat.ModEq.cancel_left_div_gcd π Mathlib.Data.Nat.ModEq
{m a b c : β} (hm : 0 < m) (h : c * a β‘ c * b [MOD m]) : a β‘ b [MOD m / m.gcd c] - Nat.ModEq.cancel_right_div_gcd π Mathlib.Data.Nat.ModEq
{m a b c : β} (hm : 0 < m) (h : a * c β‘ b * c [MOD m]) : a β‘ b [MOD m / m.gcd c] - Nat.chineseRemainder'_lt_lcm π Mathlib.Data.Nat.ModEq
{m n a b : β} (h : a β‘ b [MOD n.gcd m]) (hn : n β 0) (hm : m β 0) : β(Nat.chineseRemainder' h) < n.lcm m - Nat.ModEq.of_div π Mathlib.Data.Nat.ModEq
{m a b c : β} (h : a / c β‘ b / c [MOD m / c]) (ha : c β£ a) : c β£ b β c β£ m β a β‘ b [MOD m] - Nat.ModEq.cancel_left_div_gcd' π Mathlib.Data.Nat.ModEq
{m a b c d : β} (hm : 0 < m) (hcd : c β‘ d [MOD m]) (h : c * a β‘ d * b [MOD m]) : a β‘ b [MOD m / m.gcd c] - Nat.ModEq.cancel_right_div_gcd' π Mathlib.Data.Nat.ModEq
{m a b c d : β} (hm : 0 < m) (hcd : c β‘ d [MOD m]) (h : a * c β‘ b * d [MOD m]) : a β‘ b [MOD m / m.gcd c] - Nat.chineseRemainder_lt_mul π Mathlib.Data.Nat.ModEq
{m n : β} (co : n.Coprime m) (a b : β) (hn : n β 0) (hm : m β 0) : β(Nat.chineseRemainder co a b) < n * m - Int.natCast_modEq_iff π Mathlib.Data.Int.ModEq
{a b n : β} : βa β‘ βb [ZMOD βn] β a β‘ b [MOD n] - CharP.natCast_eq_natCast' π Mathlib.Algebra.CharP.Basic
(R : Type u_1) [AddMonoidWithOne R] (p : β) [CharP R p] {a b : β} (h : a β‘ b [MOD p]) : βa = βb - CharP.natCast_eq_natCast π Mathlib.Algebra.CharP.Basic
(R : Type u_1) [AddMonoidWithOne R] (p : β) [CharP R p] {a b : β} [IsRightCancelAdd R] : βa = βb β a β‘ b [MOD p] - nsmul_eq_zero_iff_modEq π Mathlib.GroupTheory.OrderOfElement
{G : Type u_1} [AddMonoid G] {x : G} {n : β} : n β’ x = 0 β n β‘ 0 [MOD addOrderOf x] - pow_eq_one_iff_modEq π Mathlib.GroupTheory.OrderOfElement
{G : Type u_1} [Monoid G] {x : G} {n : β} : x ^ n = 1 β n β‘ 0 [MOD orderOf x] - IsOfFinAddOrder.nsmul_eq_nsmul_iff_modEq π Mathlib.GroupTheory.OrderOfElement
{G : Type u_1} [AddMonoid G] {x : G} {n m : β} (hx : IsOfFinAddOrder x) : n β’ x = m β’ x β n β‘ m [MOD addOrderOf x] - IsOfFinOrder.pow_eq_pow_iff_modEq π Mathlib.GroupTheory.OrderOfElement
{G : Type u_1} [Monoid G] {x : G} {n m : β} (hx : IsOfFinOrder x) : x ^ n = x ^ m β n β‘ m [MOD orderOf x] - nsmul_eq_nsmul_iff_modEq π Mathlib.GroupTheory.OrderOfElement
{G : Type u_1} [AddLeftCancelMonoid G] {x : G} {m n : β} : n β’ x = m β’ x β n β‘ m [MOD addOrderOf x] - pow_eq_pow_iff_modEq π Mathlib.GroupTheory.OrderOfElement
{G : Type u_1} [LeftCancelMonoid G] {x : G} {m n : β} : x ^ n = x ^ m β n β‘ m [MOD orderOf x] - AddRightCancelMonoid.nsmul_eq_nsmul_iff_modEq π Mathlib.GroupTheory.OrderOfElement
{G : Type u_1} [AddRightCancelMonoid G] {x : G} {m n : β} : n β’ x = m β’ x β n β‘ m [MOD addOrderOf x] - RightCancelMonoid.pow_eq_pow_iff_modEq π Mathlib.GroupTheory.OrderOfElement
{G : Type u_1} [RightCancelMonoid G] {x : G} {m n : β} : x ^ n = x ^ m β n β‘ m [MOD orderOf x] - nsmul_eq_nsmul_of_modEq π Mathlib.GroupTheory.OrderOfElement
{G : Type u_1} [AddMonoid G] {x : G} {n a b : β} (h : a β‘ b [MOD n]) (hx : n β’ x = 0) : a β’ x = b β’ x - pow_eq_pow_of_modEq π Mathlib.GroupTheory.OrderOfElement
{G : Type u_1} [Monoid G] {x : G} {n a b : β} (h : a β‘ b [MOD n]) (hx : x ^ n = 1) : x ^ a = x ^ b - ZMod.natCast_eq_natCast_iff π Mathlib.Data.ZMod.Basic
(a b c : β) : βa = βb β a β‘ b [MOD c] - Nat.ofDigits_modEq' π Mathlib.Data.Nat.Digits.Lemmas
(b b' k : β) (h : b β‘ b' [MOD k]) (L : List β) : Nat.ofDigits b L β‘ Nat.ofDigits b' L [MOD k] - Nat.ofDigits_modEq π Mathlib.Data.Nat.Digits.Lemmas
(b k : β) (L : List β) : Nat.ofDigits b L β‘ Nat.ofDigits (b % k) L [MOD k] - Nat.modEq_digits_sum π Mathlib.Data.Nat.Digits.Lemmas
(b b' : β) (h : b' % b = 1) (n : β) : n β‘ (b'.digits n).sum [MOD b] - Nat.ModEq.multisetProd_one π Mathlib.Algebra.BigOperators.ModEq
{n : β} {s : Multiset β} (h : β x β s, x β‘ 1 [MOD n]) : s.prod β‘ 1 [MOD n] - Nat.ModEq.multisetSum_zero π Mathlib.Algebra.BigOperators.ModEq
{n : β} {s : Multiset β} (h : β x β s, x β‘ 0 [MOD n]) : s.sum β‘ 0 [MOD n] - Nat.ModEq.listProd_one π Mathlib.Algebra.BigOperators.ModEq
{n : β} {l : List β} (h : β x β l, x β‘ 1 [MOD n]) : l.prod β‘ 1 [MOD n] - Nat.ModEq.listSum_zero π Mathlib.Algebra.BigOperators.ModEq
{n : β} {l : List β} (h : β x β l, x β‘ 0 [MOD n]) : l.sum β‘ 0 [MOD n] - Nat.ModEq.multisetProd_map_one π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f : Ξ± β β} {s : Multiset Ξ±} (h : β x β s, f x β‘ 1 [MOD n]) : (Multiset.map f s).prod β‘ 1 [MOD n] - Nat.ModEq.multisetSum_map_zero π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f : Ξ± β β} {s : Multiset Ξ±} (h : β x β s, f x β‘ 0 [MOD n]) : (Multiset.map f s).sum β‘ 0 [MOD n] - Nat.ModEq.listProd_map_one π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {l : List Ξ±} {f : Ξ± β β} (h : β x β l, f x β‘ 1 [MOD n]) : (List.map f l).prod β‘ 1 [MOD n] - Nat.ModEq.multisetProd_map π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f g : Ξ± β β} {s : Multiset Ξ±} (h : β x β s, f x β‘ g x [MOD n]) : (Multiset.map f s).prod β‘ (Multiset.map g s).prod [MOD n] - Nat.ModEq.multisetSum_map π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f g : Ξ± β β} {s : Multiset Ξ±} (h : β x β s, f x β‘ g x [MOD n]) : (Multiset.map f s).sum β‘ (Multiset.map g s).sum [MOD n] - Nat.ModEq.listSum_map_zero π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {l : List Ξ±} {f : Ξ± β β} (h : β x β l, f x β‘ 0 [MOD n]) : (List.map f l).sum β‘ 0 [MOD n] - Nat.ModEq.listProd_map π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {l : List Ξ±} {f g : Ξ± β β} (h : β x β l, f x β‘ g x [MOD n]) : (List.map f l).prod β‘ (List.map g l).prod [MOD n] - Nat.ModEq.prod_one π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f : Ξ± β β} {s : Finset Ξ±} (h : β x β s, f x β‘ 1 [MOD n]) : β x β s, f x β‘ 1 [MOD n] - Nat.ModEq.sum_zero π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f : Ξ± β β} {s : Finset Ξ±} (h : β x β s, f x β‘ 0 [MOD n]) : β x β s, f x β‘ 0 [MOD n] - Nat.ModEq.prod π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f g : Ξ± β β} {s : Finset Ξ±} (h : β x β s, f x β‘ g x [MOD n]) : β x β s, f x β‘ β x β s, g x [MOD n] - Nat.ModEq.sum π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f g : Ξ± β β} {s : Finset Ξ±} (h : β x β s, f x β‘ g x [MOD n]) : β x β s, f x β‘ β x β s, g x [MOD n] - Nat.ModEq.listSum_map π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {l : List Ξ±} {f g : Ξ± β β} (h : β x β l, f x β‘ g x [MOD n]) : (List.map f l).sum β‘ (List.map g l).sum [MOD n] - Nat.prod_modEq_single π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f : Ξ± β β} {s : Finset Ξ±} {a : Ξ±} (ha : a β s β f a β‘ 1 [MOD n]) (hf : β x β s, x β a β f x β‘ 1 [MOD n]) : β x β s, f x β‘ f a [MOD n] - Nat.sum_modEq_single π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f : Ξ± β β} {s : Finset Ξ±} {a : Ξ±} (ha : a β s β f a β‘ 0 [MOD n]) (hf : β x β s, x β a β f x β‘ 0 [MOD n]) : β x β s, f x β‘ f a [MOD n] - Nat.prod_modEq_ite π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f : Ξ± β β} [DecidableEq Ξ±] {s : Finset Ξ±} {a : Ξ±} (hf : β x β s, x β a β f x β‘ 1 [MOD n]) : β x β s, f x β‘ if a β s then f a else 1 [MOD n] - Nat.sum_modEq_ite π Mathlib.Algebra.BigOperators.ModEq
{Ξ± : Type u_1} {n : β} {f : Ξ± β β} [DecidableEq Ξ±] {s : Finset Ξ±} {a : Ξ±} (hf : β x β s, x β a β f x β‘ 0 [MOD n]) : β x β s, f x β‘ if a β s then f a else 0 [MOD n] - Equiv.Perm.IsCycleOn.pow_apply_eq_pow_apply π Mathlib.GroupTheory.Perm.Cycle.Basic
{Ξ± : Type u_2} {f : Equiv.Perm Ξ±} {a : Ξ±} {s : Finset Ξ±} (hf : f.IsCycleOn βs) (ha : a β s) {m n : β} : (f ^ m) a = (f ^ n) a β m β‘ n [MOD s.card] - Equiv.Perm.card_compl_support_modEq π Mathlib.GroupTheory.Perm.Cycle.Type
{Ξ± : Type u_1} [Fintype Ξ±] [DecidableEq Ξ±] {p n : β} [hp : Fact (Nat.Prime p)] {Ο : Equiv.Perm Ξ±} (hΟ : Ο ^ p ^ n = 1) : Ο.supportαΆ.card β‘ Fintype.card Ξ± [MOD p] - Equiv.Perm.card_fixedPoints_modEq π Mathlib.GroupTheory.Perm.Cycle.Type
{Ξ± : Type u_1} [Fintype Ξ±] [DecidableEq Ξ±] {f : Function.End Ξ±} {p n : β} [hp : Fact (Nat.Prime p)] (hf : f ^ p ^ n = 1) : Fintype.card Ξ± β‘ Fintype.card β(Function.fixedPoints f) [MOD p] - IsPGroup.card_modEq_card_fixedPoints π Mathlib.GroupTheory.PGroup
{p : β} {G : Type u_1} [Group G] (hG : IsPGroup p G) [hp : Fact (Nat.Prime p)] (Ξ± : Type u_2) [MulAction G Ξ±] [Finite Ξ±] : Nat.card Ξ± β‘ Nat.card β(MulAction.fixedPoints G Ξ±) [MOD p] - card_sylow_modEq_one π Mathlib.GroupTheory.Sylow
(p : β) (G : Type u_1) [Group G] [Fact (Nat.Prime p)] [Finite (Sylow p G)] : Nat.card (Sylow p G) β‘ 1 [MOD p] - Sylow.card_normalizer_modEq_card π Mathlib.GroupTheory.Sylow
{G : Type u} [Group G] [Finite G] {p n : β} [hp : Fact (Nat.Prime p)] {H : Subgroup G} (hH : Nat.card β₯H = p ^ n) : Nat.card β₯(Subgroup.normalizer βH) β‘ Nat.card G [MOD p ^ (n + 1)] - Sylow.card_quotient_normalizer_modEq_card_quotient π Mathlib.GroupTheory.Sylow
{G : Type u} [Group G] [Finite G] {p n : β} [hp : Fact (Nat.Prime p)] {H : Subgroup G} (hH : Nat.card β₯H = p ^ n) : Nat.card (β₯(Subgroup.normalizer βH) β§Έ Subgroup.comap (Subgroup.normalizer βH).subtype H) β‘ Nat.card (G β§Έ H) [MOD p] - Nat.frequently_modEq π Mathlib.Order.Filter.AtTopBot.ModEq
{n : β} (h : n β 0) (d : β) : βαΆ (m : β) in Filter.atTop, m β‘ d [MOD n] - Nat.ModEq.pow_totient π Mathlib.FieldTheory.Finite.Basic
{x n : β} (h : x.Coprime n) : x ^ n.totient β‘ 1 [MOD n] - Nat.ModEq.pow_card_sub_one_eq_one π Mathlib.FieldTheory.Finite.Basic
{p : β} (hp : Nat.Prime p) {n : β} (hpn : n.Coprime p) : n ^ (p - 1) β‘ 1 [MOD p] - pow_pow_modEq_one π Mathlib.FieldTheory.Finite.Basic
(p m a : β) : (1 + p * a) ^ p ^ m β‘ 1 [MOD p ^ m] - Nat.sq_add_sq_modEq π Mathlib.FieldTheory.Finite.Basic
(p : β) [Fact (Nat.Prime p)] (x : β) : β a b, a β€ p / 2 β§ b β€ p / 2 β§ a ^ 2 + b ^ 2 β‘ x [MOD p] - IsPrimitiveRoot.primitiveRootsPowEquiv π Mathlib.RingTheory.RootsOfUnity.PrimitiveRoots
{R : Type u_4} [CommRing R] [IsDomain R] {a b n : β} (h : a * b β‘ 1 [MOD n]) : β₯(primitiveRoots n R) β β₯(primitiveRoots n R) - IsPrimitiveRoot.primitiveRootsPowEquiv_apply_coe π Mathlib.RingTheory.RootsOfUnity.PrimitiveRoots
{R : Type u_4} [CommRing R] [IsDomain R] {a b n : β} (h : a * b β‘ 1 [MOD n]) (x : β₯(primitiveRoots n R)) : β((IsPrimitiveRoot.primitiveRootsPowEquiv h) x) = βx ^ a - IsPrimitiveRoot.primitiveRootsPowEquiv_symm_apply_coe π Mathlib.RingTheory.RootsOfUnity.PrimitiveRoots
{R : Type u_4} [CommRing R] [IsDomain R] {a b n : β} (h : a * b β‘ 1 [MOD n]) (x : β₯(primitiveRoots n R)) : β((IsPrimitiveRoot.primitiveRootsPowEquiv h).symm x) = βx ^ b - Nat.exists_lt_modEq_of_infinite π Mathlib.Combinatorics.Pigeonhole
{s : Set β} (hs : s.Infinite) {k : β} (hk : 0 < k) : β m β s, β n β s, m < n β§ m β‘ n [MOD k] - schnirelmannDensity_setOfPred_modeq_one π Mathlib.Combinatorics.Schnirelmann
{m : β} : schnirelmannDensity {n | n β‘ 1 [MOD m]} = (βm)β»ΒΉ - schnirelmannDensity_setOf_modeq_one π Mathlib.Combinatorics.Schnirelmann
{m : β} : schnirelmannDensity {n | n β‘ 1 [MOD m]} = (βm)β»ΒΉ - Nat.count_modEq_card_eq_ceil π Mathlib.Data.Int.CardIntervalMod
(b : β) {r : β} (hr : 0 < r) (v : β) : β(Nat.count (fun x => x β‘ v [MOD r]) b) = β(βb - β(v % r)) / βrβ - Nat.Ico_filter_modEq_cast π Mathlib.Data.Int.CardIntervalMod
(a b : β) {r v : β} : Finset.map Nat.castEmbedding ({x β Finset.Ico a b | x β‘ v [MOD r]}) = {x β Finset.Ico βa βb | x β‘ βv [ZMOD βr]} - Nat.Ioc_filter_modEq_cast π Mathlib.Data.Int.CardIntervalMod
(a b : β) {r v : β} : Finset.map Nat.castEmbedding ({x β Finset.Ioc a b | x β‘ v [MOD r]}) = {x β Finset.Ioc βa βb | x β‘ βv [ZMOD βr]} - Nat.count_modEq_card π Mathlib.Data.Int.CardIntervalMod
(b : β) {r : β} (hr : 0 < r) (v : β) : Nat.count (fun x => x β‘ v [MOD r]) b = b / r + if v % r < b % r then 1 else 0 - Nat.Ico_filter_modEq_card π Mathlib.Data.Int.CardIntervalMod
(a b : β) {r : β} (hr : 0 < r) (v : β) : β{x β Finset.Ico a b | x β‘ v [MOD r]}.card = max (β(βb - βv) / βrβ - β(βa - βv) / βrβ) 0 - Nat.Ioc_filter_modEq_card π Mathlib.Data.Int.CardIntervalMod
(a b : β) {r : β} (hr : 0 < r) (v : β) : β{x β Finset.Ioc a b | x β‘ v [MOD r]}.card = max (β(βb - βv) / βrβ - β(βa - βv) / βrβ) 0 - Nat.modEq_list_prod_iff π Mathlib.Data.Nat.ChineseRemainder
{a b : β} {l : List β} (co : List.Pairwise Nat.Coprime l) : a β‘ b [MOD l.prod] β β (i : Fin l.length), a β‘ b [MOD l.get i] - Nat.chineseRemainderOfList π Mathlib.Data.Nat.ChineseRemainder
{ΞΉ : Type u_1} (a s : ΞΉ β β) (l : List ΞΉ) : List.Pairwise (Function.onFun Nat.Coprime s) l β { k // β i β l, k β‘ a i [MOD s i] } - Nat.modEq_list_map_prod_iff π Mathlib.Data.Nat.ChineseRemainder
{ΞΉ : Type u_1} {a b : β} {s : ΞΉ β β} {l : List ΞΉ} (co : List.Pairwise (Function.onFun Nat.Coprime s) l) : a β‘ b [MOD (List.map s l).prod] β β i β l, a β‘ b [MOD s i] - Nat.chineseRemainderOfList_nil π Mathlib.Data.Nat.ChineseRemainder
{ΞΉ : Type u_1} (a s : ΞΉ β β) : β(Nat.chineseRemainderOfList a s [] β―) = 0 - Nat.chineseRemainderOfMultiset π Mathlib.Data.Nat.ChineseRemainder
{ΞΉ : Type u_1} (a s : ΞΉ β β) {m : Multiset ΞΉ} : m.Nodup β (β i β m, s i β 0) β {x | x β m}.Pairwise (Function.onFun Nat.Coprime s) β { k // β i β m, k β‘ a i [MOD s i] } - Nat.chineseRemainderOfFinset π Mathlib.Data.Nat.ChineseRemainder
{ΞΉ : Type u_1} (a s : ΞΉ β β) (t : Finset ΞΉ) (hs : β i β t, s i β 0) (pp : (βt).Pairwise (Function.onFun Nat.Coprime s)) : { k // β i β t, k β‘ a i [MOD s i] } - Nat.chineseRemainderOfList_modEq_unique π Mathlib.Data.Nat.ChineseRemainder
{ΞΉ : Type u_1} (a s : ΞΉ β β) (l : List ΞΉ) (co : List.Pairwise (Function.onFun Nat.Coprime s) l) {z : β} (hz : β i β l, z β‘ a i [MOD s i]) : z β‘ β(Nat.chineseRemainderOfList a s l co) [MOD (List.map s l).prod] - Nat.chineseRemainderOfList_lt_prod π Mathlib.Data.Nat.ChineseRemainder
{ΞΉ : Type u_1} (a s : ΞΉ β β) (l : List ΞΉ) (co : List.Pairwise (Function.onFun Nat.Coprime s) l) (hs : β i β l, s i β 0) : β(Nat.chineseRemainderOfList a s l co) < (List.map s l).prod - Nat.chineseRemainderOfFinset_lt_prod π Mathlib.Data.Nat.ChineseRemainder
{ΞΉ : Type u_1} (a s : ΞΉ β β) {t : Finset ΞΉ} (hs : β i β t, s i β 0) (pp : (βt).Pairwise (Function.onFun Nat.Coprime s)) : β(Nat.chineseRemainderOfFinset a s t hs pp) < β i β t, s i - Nat.chineseRemainderOfMultiset_lt_prod π Mathlib.Data.Nat.ChineseRemainder
{ΞΉ : Type u_1} (a s : ΞΉ β β) {m : Multiset ΞΉ} (nod : m.Nodup) (hs : β i β m, s i β 0) (pp : {x | x β m}.Pairwise (Function.onFun Nat.Coprime s)) : β(Nat.chineseRemainderOfMultiset a s nod hs pp) < (Multiset.map s m).prod - Nat.chineseRemainderOfList_perm π Mathlib.Data.Nat.ChineseRemainder
{ΞΉ : Type u_1} (a s : ΞΉ β β) {l l' : List ΞΉ} (hl : l.Perm l') (hs : β i β l, s i β 0) (co : List.Pairwise (Function.onFun Nat.Coprime s) l) : β(Nat.chineseRemainderOfList a s l co) = β(Nat.chineseRemainderOfList a s l' β―) - Choose.choose_mul_mul_modEq_choose_nat π Mathlib.Data.Nat.Choose.Lucas
{a b p : β} [Fact (Nat.Prime p)] : (p * a).choose (p * b) β‘ a.choose b [MOD p] - Choose.choose_modEq_choose_mod_mul_choose_div_nat π Mathlib.Data.Nat.Choose.Lucas
{n k p : β} [Fact (Nat.Prime p)] : n.choose k β‘ (n % p).choose (k % p) * (n / p).choose (k / p) [MOD p] - Choose.choose_pow_mul_pow_mul_modEq_choose_nat π Mathlib.Data.Nat.Choose.Lucas
{k a b p : β} [Fact (Nat.Prime p)] : (p ^ k * a).choose (p ^ k * b) β‘ a.choose b [MOD p] - Choose.eq_pow_multiplicity_of_choose_modEq_zero_nat π Mathlib.Data.Nat.Choose.Lucas
{n p : β} [Fact (Nat.Prime p)] (hn : 0 < n) (h : β i β Finset.Icc 1 (n - 1), n.choose i β‘ 0 [MOD p]) : n = p ^ multiplicity p n - Choose.choose_modEq_prod_range_choose_nat π Mathlib.Data.Nat.Choose.Lucas
{n k p : β} [Fact (Nat.Prime p)] {a : β} (haβ : n < p ^ a) (haβ : k < p ^ a) : n.choose k β‘ β i β Finset.range a, (n / p ^ i % p).choose (k / p ^ i % p) [MOD p] - Choose.lucas_theorem_nat π Mathlib.Data.Nat.Choose.Lucas
{n k p : β} [Fact (Nat.Prime p)] {a : β} (haβ : n < p ^ a) (haβ : k < p ^ a) : n.choose k β‘ β i β Finset.range a, (n / p ^ i % p).choose (k / p ^ i % p) [MOD p] - Nat.modEq_nine_digits_sum π Mathlib.Data.Nat.Digits.Div
(n : β) : n β‘ (Nat.digits 10 n).sum [MOD 9] - Nat.modEq_three_digits_sum π Mathlib.Data.Nat.Digits.Div
(n : β) : n β‘ (Nat.digits 10 n).sum [MOD 3] - Nat.probablePrime_iff_modEq π Mathlib.NumberTheory.FermatPsp
(n : β) {b : β} (h : 1 β€ b) : n.ProbablePrime b β b ^ (n - 1) β‘ 1 [MOD n] - Pell.yn_modEq_two π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) (n : β) : Pell.yn a1 n β‘ n [MOD 2] - Pell.yn_modEq_a_sub_one π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) (n : β) : Pell.yn a1 n β‘ n [MOD a - 1] - Pell.xn_modEq_x4n_add π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) (n j : β) : Pell.xn a1 (4 * n + j) β‘ Pell.xn a1 j [MOD Pell.xn a1 n] - Pell.xy_modEq_of_modEq π Mathlib.NumberTheory.PellMatiyasevic
{a b c : β} (a1 : 1 < a) (b1 : 1 < b) (h : a β‘ b [MOD c]) (n : β) : Pell.xn a1 n β‘ Pell.xn b1 n [MOD c] β§ Pell.yn a1 n β‘ Pell.yn b1 n [MOD c] - Pell.xn_modEq_x2n_add π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) (n j : β) : Pell.xn a1 (2 * n + j) + Pell.xn a1 j β‘ 0 [MOD Pell.xn a1 n] - Pell.xn_modEq_x2n_sub_lem π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) {n j : β} (h : j β€ n) : Pell.xn a1 (2 * n - j) + Pell.xn a1 j β‘ 0 [MOD Pell.xn a1 n] - Pell.xn_modEq_x4n_sub π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) {n j : β} (h : j β€ 2 * n) : Pell.xn a1 (4 * n - j) β‘ Pell.xn a1 j [MOD Pell.xn a1 n] - Pell.xn_modEq_x2n_sub π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) {n j : β} (h : j β€ 2 * n) : Pell.xn a1 (2 * n - j) + Pell.xn a1 j β‘ 0 [MOD Pell.xn a1 n] - Pell.modEq_of_xn_modEq π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) {i j n : β} (ipos : 0 < i) (hin : i β€ n) (h : Pell.xn a1 j β‘ Pell.xn a1 i [MOD Pell.xn a1 n]) : j β‘ i [MOD 4 * n] β¨ j + i β‘ 0 [MOD 4 * n] - Pell.eq_of_xn_modEq' π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) {i j n : β} (ipos : 0 < i) (hin : i β€ n) (j4n : j β€ 4 * n) (h : Pell.xn a1 j β‘ Pell.xn a1 i [MOD Pell.xn a1 n]) : j = i β¨ j + i = 4 * n - Pell.eq_of_xn_modEq_le π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) {i j n : β} (ij : i β€ j) (j2n : j β€ 2 * n) (h : Pell.xn a1 i β‘ Pell.xn a1 j [MOD Pell.xn a1 n]) (ntriv : Β¬(a = 2 β§ n = 1 β§ i = 0 β§ j = 2)) : i = j - Pell.eq_of_xn_modEq π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) {i j n : β} (i2n : i β€ 2 * n) (j2n : j β€ 2 * n) (h : Pell.xn a1 i β‘ Pell.xn a1 j [MOD Pell.xn a1 n]) (ntriv : a = 2 β n = 1 β (i = 0 β j β 2) β§ (i = 2 β j β 0)) : i = j - Pell.xy_modEq_yn π Mathlib.NumberTheory.PellMatiyasevic
{a : β} (a1 : 1 < a) (n k : β) : Pell.xn a1 (n * k) β‘ Pell.xn a1 n ^ k [MOD Pell.yn a1 n ^ 2] β§ Pell.yn a1 (n * k) β‘ k * Pell.xn a1 n ^ (k - 1) * Pell.yn a1 n [MOD Pell.yn a1 n ^ 3] - Pell.eq_pow_of_pell π Mathlib.NumberTheory.PellMatiyasevic
{m n k : β} : n ^ k = m β k = 0 β§ m = 1 β¨ 0 < k β§ (n = 0 β§ m = 0 β¨ 0 < n β§ β w a t z, β (a1 : 1 < a), Pell.xn a1 k β‘ Pell.yn a1 k * (a - n) + m [MOD t] β§ 2 * a * n = t + (n * n + 1) β§ m < t β§ n β€ w β§ k β€ w β§ a * a - ((w + 1) * (w + 1) - 1) * (w * z) * (w * z) = 1) - Pell.matiyasevic π Mathlib.NumberTheory.PellMatiyasevic
{a k x y : β} : (β (a1 : 1 < a), Pell.xn a1 k = x β§ Pell.yn a1 k = y) β 1 < a β§ k β€ y β§ (x = 1 β§ y = 0 β¨ β u v s t b, x * x - (a * a - 1) * y * y = 1 β§ u * u - (a * a - 1) * v * v = 1 β§ s * s - (b * b - 1) * t * t = 1 β§ 1 < b β§ b β‘ 1 [MOD 4 * y] β§ b β‘ a [MOD u] β§ 0 < v β§ y * y β£ v β§ s β‘ x [MOD u] β§ t β‘ k [MOD 4 * y]) - Dioph.modEq_dioph π Mathlib.NumberTheory.Dioph
{Ξ± : Type} {f g : (Ξ± β β) β β} (df : Dioph.DiophFn f) (dg : Dioph.DiophFn g) {h : (Ξ± β β) β β} (dh : Dioph.DiophFn h) : Dioph {v | f v β‘ g v [MOD h v]} - Nat.infinite_setOfPred_prime_and_modEq π Mathlib.NumberTheory.LSeries.PrimesInAP
{q a : β} (hq : q β 0) (h : a.Coprime q) : {p | Nat.Prime p β§ p β‘ a [MOD q]}.Infinite
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using the Loogle command from the command palette. You can also try the
#loogle command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
πReal.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
π"differ"
finds all lemmas that have"differ"somewhere in their lemma name.By subexpression:
π_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
πReal.sqrt ?a * Real.sqrt ?aIf the pattern has parameters, they are matched in any order. Both of these will find
List.map:
π(?a -> ?b) -> List ?a -> List ?b
πList ?a -> (?a -> ?b) -> List ?bBy main conclusion:
π|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of allβandβ) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
π|- _ < _ β tsum _ < tsum _
will findtsum_lt_tsumeven though the hypothesisf i < g iis not the last.You can filter for definitions vs theorems: Using
β’ (_ : Type _)finds all definitions which provide data whileβ’ (_ : Prop)finds all theorems (and definitions of proofs).
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
π Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ β _
would find all lemmas which mention the constants Real.sin
and tsum, have "two" as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _ (if
there were any such lemmas). Metavariables (?a) are
assigned independently in each filter.
The #lucky button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO. Please review the Lean FRO Terms of Use and Privacy Policy.
This is Loogle revision 9f11169 serving mathlib revision ce5dd8c