Loogle!
Result
Found 168 declarations mentioning Int.negSucc.
- Int.negSucc π Init.Data.Int.Basic
: β β β€ - Int.negSucc.injEq π Init.Data.Int.Basic
(aβ aβΒΉ : β) : (Int.negSucc aβ = Int.negSucc aβΒΉ) = (aβ = aβΒΉ) - Int.negSucc.sizeOf_spec π Init.Data.Int.Basic
(aβ : β) : sizeOf (Int.negSucc aβ) = 1 + sizeOf aβ - Int.fdiv.eq_4 π Init.Data.Int.DivMod.Basic
(a : β) : (Int.negSucc a).fdiv 0 = 0 - Int.fdiv.eq_3 π Init.Data.Int.DivMod.Basic
(m n : β) : (Int.ofNat m.succ).fdiv (Int.negSucc n) = Int.negSucc (m / n.succ) - Int.fdiv.eq_5 π Init.Data.Int.DivMod.Basic
(m n : β) : (Int.negSucc m).fdiv (Int.ofNat n.succ) = Int.negSucc (m / n.succ) - Int.fdiv.eq_6 π Init.Data.Int.DivMod.Basic
(m n : β) : (Int.negSucc m).fdiv (Int.negSucc n) = Int.ofNat (m.succ / n.succ) - Int.negSucc_emod_ofNat π Init.Data.Int.DivMod.Basic
{a b : β} : Int.negSucc a % βb = Int.subNatNat b (a % b).succ - Int.negSucc_ediv_ofNat_succ π Init.Data.Int.DivMod.Basic
{a b : β} : Int.negSucc a / β(b + 1) = Int.negSucc (a / b.succ) - Int.ofNat_ediv_negSucc π Init.Data.Int.DivMod.Basic
{a b : β} : Int.ofNat a / Int.negSucc b = -β(a / (b + 1)) - Int.negSucc_ediv_negSucc π Init.Data.Int.DivMod.Basic
{a b : β} : Int.negSucc a / Int.negSucc b = β(a / (b + 1) + 1) - Int.negSucc_emod_negSucc π Init.Data.Int.DivMod.Basic
{a b : β} : Int.negSucc a % Int.negSucc b = Int.subNatNat (b + 1) (a % (b + 1)).succ - Int.negSucc_ne_zero π Init.Data.Int.Lemmas
(n : β) : Int.negSucc n β 0 - Int.zero_ne_negSucc π Init.Data.Int.Lemmas
(n : β) : 0 β Int.negSucc n - Int.negSucc_inj π Init.Data.Int.Lemmas
{m n : β} : Int.negSucc m = Int.negSucc n β m = n - Int.neg_ofNat_succ π Init.Data.Int.Lemmas
(n : β) : -βn.succ = Int.negSucc n - Int.negSucc_add_ofNat π Init.Data.Int.Lemmas
(m n : β) : Int.negSucc m + βn = Int.subNatNat n m.succ - Int.ofNat_add_negSucc π Init.Data.Int.Lemmas
(m n : β) : βm + Int.negSucc n = Int.subNatNat m n.succ - Int.subNatNat_of_lt π Init.Data.Int.Lemmas
{m n : β} (h : m < n) : Int.subNatNat m n = Int.negSucc (n - m).pred - Int.subNatNat_of_sub_eq_succ π Init.Data.Int.Lemmas
{m n k : β} (h : n - m = k.succ) : Int.subNatNat m n = Int.negSucc k - Int.negSucc_eq π Init.Data.Int.Lemmas
(n : β) : Int.negSucc n = -(βn + 1) - Int.neg_negSucc π Init.Data.Int.Lemmas
(n : β) : -Int.negSucc n = β(n + 1) - Int.negOfNat_mul_negSucc π Init.Data.Int.Lemmas
(m n : β) : Int.negOfNat n * Int.negSucc m = Int.ofNat (n * m.succ) - Int.negSucc_add_negSucc π Init.Data.Int.Lemmas
(m n : β) : Int.negSucc m + Int.negSucc n = Int.negSucc (m + n).succ - Int.negSucc_mul_negOfNat π Init.Data.Int.Lemmas
(m n : β) : Int.negSucc m * Int.negOfNat n = Int.ofNat (m.succ * n) - Int.subNatNat_add_negSucc π Init.Data.Int.Lemmas
(m n k : β) : Int.subNatNat m n + Int.negSucc k = Int.subNatNat m (n + k.succ) - Int.subNatNat_add_right π Init.Data.Int.Lemmas
{m n : β} : Int.subNatNat m (m + n + 1) = Int.negSucc n - Int.negSucc_add_one_eq_neg_ofNat_iff π Init.Data.Int.Lemmas
{a b : β} : Int.negSucc a + 1 = -βb β a = b - Int.negSucc_eq_neg_ofNat_iff π Init.Data.Int.Lemmas
{a b : β} : Int.negSucc a = -βb β a + 1 = b - Int.neg_ofNat_eq_negSucc_add_one_iff π Init.Data.Int.Lemmas
{a b : β} : -βa = Int.negSucc b + 1 β a = b - Int.neg_ofNat_eq_negSucc_iff π Init.Data.Int.Lemmas
{a b : β} : -βa = Int.negSucc b β a = b + 1 - Int.negSucc_sub_one π Init.Data.Int.Lemmas
(n : β) : Int.negSucc n - 1 = Int.negSucc (n + 1) - Int.ofNat_add_negSucc_of_lt π Init.Data.Int.Lemmas
{m n : β} (h : m < n.succ) : Int.ofNat m + Int.negSucc n = Int.negSucc (n - m) - Int.negSucc_mul_negSucc π Init.Data.Int.Lemmas
(m n : β) : Int.negSucc m * Int.negSucc n = βm.succ * βn.succ - Int.negSucc_mul_ofNat π Init.Data.Int.Lemmas
(m n : β) : Int.negSucc m * βn = -β(m.succ * n) - Int.ofNat_mul_negSucc π Init.Data.Int.Lemmas
(m n : β) : βm * Int.negSucc n = -β(m * n.succ) - Int.subNatNat.eq_1 π Init.Data.Int.Lemmas
(m n : β) : Int.subNatNat m n = match n - m with | 0 => Int.ofNat (m - n) | k.succ => Int.negSucc k - Int.negSucc_mul_subNatNat π Init.Data.Int.Lemmas
(m n k : β) : Int.negSucc m * Int.subNatNat n k = Int.subNatNat (m.succ * k) (m.succ * n) - Int.subNatNat_elim π Init.Data.Int.Lemmas
(m n : β) (motive : β β β β β€ β Prop) (hp : β (i n : β), motive (n + i) n βi) (hn : β (i m : β), motive m (m + i + 1) (Int.negSucc i)) : motive m n (Int.subNatNat m n) - Int.natAbs_negSucc π Init.Data.Int.Order
(n : β) : (Int.negSucc n).natAbs = n.succ - Int.natAbs.eq_2 π Init.Data.Int.Order
(n_1 : β) : (Int.negSucc n_1).natAbs = n_1.succ - Int.toNat?.eq_2 π Init.Data.Int.Order
(a : β) : (Int.negSucc a).toNat? = none - Int.negSucc_le_zero π Init.Data.Int.Order
(n : β) : Int.negSucc n β€ 0 - Int.negSucc_lt_zero π Init.Data.Int.Order
(n : β) : Int.negSucc n < 0 - Int.toNat_negSucc π Init.Data.Int.Order
(n : β) : (Int.negSucc n).toNat = 0 - Int.toNat.eq_2 π Init.Data.Int.Order
(a : β) : (Int.negSucc a).toNat = 0 - Int.negSucc_not_nonneg π Init.Data.Int.Order
(n : β) : 0 β€ Int.negSucc n β False - Int.negSucc_not_pos π Init.Data.Int.Order
(n : β) : 0 < Int.negSucc n β False - Int.sign_negSucc π Init.Data.Int.Order
(x : β) : (Int.negSucc x).sign = -1 - Int.sign.eq_3 π Init.Data.Int.Order
(a : β) : (Int.negSucc a).sign = -1 - Int.eq_negSucc_of_lt_zero π Init.Data.Int.Order
{a : β€} : a < 0 β β n, a = Int.negSucc n - Int.negSucc_max_zero π Init.Data.Int.Order
(n : β) : max (Int.negSucc n) 0 = 0 - Int.zero_max_negSucc π Init.Data.Int.Order
(n : β) : max 0 (Int.negSucc n) = 0 - Int.mul.eq_2 π Init.Data.Int.Order
(m_2 n_2 : β) : (Int.ofNat m_2).mul (Int.negSucc n_2) = Int.negOfNat (m_2 * n_2.succ) - Int.mul.eq_3 π Init.Data.Int.Order
(m_2 n_2 : β) : (Int.negSucc m_2).mul (Int.ofNat n_2) = Int.negOfNat (m_2.succ * n_2) - Int.mul.eq_4 π Init.Data.Int.Order
(m_2 n_2 : β) : (Int.negSucc m_2).mul (Int.negSucc n_2) = Int.ofNat (m_2.succ * n_2.succ) - Int.ediv.eq_3 π Init.Data.Int.DivMod.Bootstrap
(a : β) : (Int.negSucc a).ediv 0 = 0 - Int.ediv.eq_4 π Init.Data.Int.DivMod.Bootstrap
(m n : β) : (Int.negSucc m).ediv (Int.ofNat n.succ) = Int.negSucc (m / n.succ) - Int.ediv.eq_5 π Init.Data.Int.DivMod.Bootstrap
(m n : β) : (Int.negSucc m).ediv (Int.negSucc n) = Int.ofNat (m / n.succ).succ - Int.ediv.eq_2 π Init.Data.Int.DivMod.Bootstrap
(m n : β) : (Int.ofNat m).ediv (Int.negSucc n) = -Int.ofNat (m / n.succ) - Int.negSucc_pow π Init.Data.Int.Pow
(m n : β) : Int.negSucc m ^ n = if n % 2 = 0 then Int.ofNat (m.succ ^ n) else Int.negOfNat (m.succ ^ n) - Int.tmod.eq_2 π Init.Data.Int.DivMod.Lemmas
(m n : β) : (Int.ofNat m).tmod (Int.negSucc n) = Int.ofNat (m % n.succ) - Int.fmod.eq_4 π Init.Data.Int.DivMod.Lemmas
(m n : β) : (Int.negSucc m).fmod (Int.ofNat n) = Int.subNatNat n (m % n).succ - Int.tdiv.eq_4 π Init.Data.Int.DivMod.Lemmas
(m n : β) : (Int.negSucc m).tdiv (Int.negSucc n) = Int.ofNat (m.succ / n.succ) - Int.emod.eq_2 π Init.Data.Int.DivMod.Lemmas
(xβ : β€) (m : β) : (Int.negSucc m).emod xβ = Int.subNatNat xβ.natAbs (m % xβ.natAbs).succ - Int.fmod.eq_3 π Init.Data.Int.DivMod.Lemmas
(m n : β) : (Int.ofNat m.succ).fmod (Int.negSucc n) = Int.subNatNat (m % n.succ) n - Int.tdiv.eq_2 π Init.Data.Int.DivMod.Lemmas
(m n : β) : (Int.ofNat m).tdiv (Int.negSucc n) = -Int.ofNat (m / n.succ) - Int.tdiv.eq_3 π Init.Data.Int.DivMod.Lemmas
(m n : β) : (Int.negSucc m).tdiv (Int.ofNat n) = -Int.ofNat (m.succ / n) - Int.tmod.eq_3 π Init.Data.Int.DivMod.Lemmas
(m n : β) : (Int.negSucc m).tmod (Int.ofNat n) = -Int.ofNat (m.succ % n) - Int.fmod.eq_5 π Init.Data.Int.DivMod.Lemmas
(m n : β) : (Int.negSucc m).fmod (Int.negSucc n) = -Int.ofNat (m.succ % n.succ) - Int.tmod.eq_4 π Init.Data.Int.DivMod.Lemmas
(m n : β) : (Int.negSucc m).tmod (Int.negSucc n) = -Int.ofNat (m.succ % n.succ) - Int.emod_negSucc π Init.Data.Int.DivMod.Lemmas
(m : β) (n : β€) : Int.negSucc m % n = Int.subNatNat n.natAbs (m % n.natAbs).succ - Int.dvd_negSucc π Init.Data.Int.DivMod.Lemmas
{a : β€} {b : β} : a β£ Int.negSucc b β a β£ β(b + 1) - Int.negSucc_dvd π Init.Data.Int.DivMod.Lemmas
{a : β} {b : β€} : Int.negSucc a β£ b β β(a + 1) β£ b - Int.negSucc_ediv π Init.Data.Int.DivMod.Lemmas
(m : β) {b : β€} (H : 0 < b) : Int.negSucc m / b = -((βm).ediv b + 1) - Int.negSucc_emod π Init.Data.Int.DivMod.Lemmas
(m : β) {b : β€} (bpos : 0 < b) : Int.negSucc m % b = b - 1 - βm % b - Int.negSucc_emod_negSucc_eq_zero_iff π Init.Data.Int.DivMod.Lemmas
{a b : β} : Int.negSucc a % Int.negSucc b = 0 β (a + 1) % (b + 1) = 0 - Int.negSucc_emod_ofNat_succ_eq_zero_iff π Init.Data.Int.DivMod.Lemmas
{a b : β} : Int.negSucc a % (βb + 1) = 0 β (a + 1) % (b + 1) = 0 - Int.shiftRight.eq_2 π Init.Data.Int.Bitwise.Lemmas
(xβ n : β) : (Int.negSucc n).shiftRight xβ = Int.negSucc (n >>> xβ) - Int.negSucc_shiftRight π Init.Data.Int.Bitwise.Lemmas
(m n : β) : Int.negSucc m >>> n = Int.negSucc (m >>> n) - Int.shiftLeft.eq_2 π Init.Data.Int.Bitwise.Lemmas
(xβ n : β) : (Int.negSucc n).shiftLeft xβ = Int.negSucc ((n + 1) <<< xβ - 1) - BitVec.ofInt_negSucc_eq_not_ofNat π Init.Data.BitVec.Lemmas
{w n : β} : BitVec.ofInt w (Int.negSucc n) = ~~~BitVec.ofNat w n - Rat.divInt.eq_2 π Init.Data.Rat.Lemmas
(xβ : β€) (d : β) : Rat.divInt xβ (Int.negSucc d) = Rat.normalize (-xβ) d.succ β― - Rat.toDyadic.eq_2 π Init.Data.Dyadic.Basic
(x : β) (n : β) : x.toDyadic (Int.negSucc n) = Dyadic.ofIntWithPrec (x.num / β(x.den <<< (n + 1))) (Int.negSucc n) - Dyadic.toRat.eq_3 π Init.Data.Dyadic.Basic
(n : β€) (k : β) (hn : n % 2 = 1) : (Dyadic.ofOdd n (Int.negSucc k) hn).toRat = β(n * β(2 ^ (k + 1))) - Int.testBit.eq_2 π Batteries.Data.Int
(xβ m : β) : (Int.negSucc m).testBit xβ = !m.testBit xβ - DivInvMonoid.zpow_neg' π Mathlib.Algebra.Group.Defs
{G : Type u} [self : DivInvMonoid G] (n : β) (a : G) : DivInvMonoid.zpow (Int.negSucc n) a = (DivInvMonoid.zpow (βn.succ) a)β»ΒΉ - SubNegMonoid.zsmul_neg' π Mathlib.Algebra.Group.Defs
{G : Type u} [self : SubNegMonoid G] (n : β) (a : G) : SubNegMonoid.zsmul (Int.negSucc n) a = -SubNegMonoid.zsmul (βn.succ) a - negSucc_zsmul π Mathlib.Algebra.Group.Defs
{G : Type u_2} [SubNegMonoid G] (a : G) (n : β) : Int.negSucc n β’ a = -((n + 1) β’ a) - zpow_negSucc π Mathlib.Algebra.Group.Defs
{G : Type u_1} [DivInvMonoid G] (a : G) (n : β) : a ^ Int.negSucc n = (a ^ (n + 1))β»ΒΉ - DivInvMonoid.mk π Mathlib.Algebra.Group.Defs
{G : Type u} [toMonoid : Monoid G] [toInv : Inv G] [toDiv : Div G] (div_eq_mul_inv : β (a b : G), a / b = a * bβ»ΒΉ := by intros; rfl) (zpow : β€ β G β G) (zpow_zero' : β (a : G), zpow 0 a = 1 := by intros; rfl) (zpow_succ' : β (n : β) (a : G), zpow (βn.succ) a = zpow (βn) a * a := by intros; rfl) (zpow_neg' : β (n : β) (a : G), zpow (Int.negSucc n) a = (zpow (βn.succ) a)β»ΒΉ := by intros; rfl) : DivInvMonoid G - SubNegMonoid.mk π Mathlib.Algebra.Group.Defs
{G : Type u} [toAddMonoid : AddMonoid G] [toNeg : Neg G] [toSub : Sub G] (sub_eq_add_neg : β (a b : G), a - b = a + -b := by intros; rfl) (zsmul : β€ β G β G) (zsmul_zero' : β (a : G), zsmul 0 a = 0 := by intros; rfl) (zsmul_succ' : β (n : β) (a : G), zsmul (βn.succ) a = zsmul (βn) a + a := by intros; rfl) (zsmul_neg' : β (n : β) (a : G), zsmul (Int.negSucc n) a = -zsmul (βn.succ) a := by intros; rfl) : SubNegMonoid G - Int.gcd_negSucc_ofNat π Mathlib.Data.Int.Init
(m n : β) : (Int.negSucc m).gcd βn = (m + 1).gcd n - Int.gcd_ofNat_negSucc π Mathlib.Data.Int.Init
(m n : β) : (βm).gcd (Int.negSucc n) = m.gcd (n + 1) - Int.ofNat_add_negSucc_of_ge π Mathlib.Data.Int.Init
{m n : β} (h : n.succ β€ m) : Int.ofNat m + Int.negSucc n = Int.ofNat (m - n.succ) - Int.gcd_negSucc_negSucc π Mathlib.Data.Int.Init
(m n : β) : (Int.negSucc m).gcd (Int.negSucc n) = (m + 1).gcd (n + 1) - Int.inductionOn'.neg π Mathlib.Data.Int.Init
{motive : β€ β Sort u_1} (b : β€) (zero : motive b) (pred : (k : β€) β k β€ b β motive k β motive (k - 1)) (n : β) : motive (b + Int.negSucc n) - CommGroupWithZero.zpow_neg' π Mathlib.Algebra.GroupWithZero.Defs
{Gβ : Type u_2} [self : CommGroupWithZero Gβ] (n : β) (a : Gβ) : CommGroupWithZero.zpow (Int.negSucc n) a = (CommGroupWithZero.zpow (βn.succ) a)β»ΒΉ - GroupWithZero.zpow_neg' π Mathlib.Algebra.GroupWithZero.Defs
{Gβ : Type u} [self : GroupWithZero Gβ] (n : β) (a : Gβ) : GroupWithZero.zpow (Int.negSucc n) a = (GroupWithZero.zpow (βn.succ) a)β»ΒΉ - GroupWithZero.mk π Mathlib.Algebra.GroupWithZero.Defs
{Gβ : Type u} [toMonoidWithZero : MonoidWithZero Gβ] [toInv : Inv Gβ] [toDiv : Div Gβ] (div_eq_mul_inv : β (a b : Gβ), a / b = a * bβ»ΒΉ := by intros; rfl) (zpow : β€ β Gβ β Gβ) (zpow_zero' : β (a : Gβ), zpow 0 a = 1 := by intros; rfl) (zpow_succ' : β (n : β) (a : Gβ), zpow (βn.succ) a = zpow (βn) a * a := by intros; rfl) (zpow_neg' : β (n : β) (a : Gβ), zpow (Int.negSucc n) a = (zpow (βn.succ) a)β»ΒΉ := by intros; rfl) [toNontrivial : Nontrivial Gβ] (inv_zero : 0β»ΒΉ = 0) (mul_inv_cancel : β (a : Gβ), a β 0 β a * aβ»ΒΉ = 1) : GroupWithZero Gβ - CommGroupWithZero.mk π Mathlib.Algebra.GroupWithZero.Defs
{Gβ : Type u_2} [toCommMonoidWithZero : CommMonoidWithZero Gβ] [toInv : Inv Gβ] [toDiv : Div Gβ] (div_eq_mul_inv : β (a b : Gβ), a / b = a * bβ»ΒΉ := by intros; rfl) (zpow : β€ β Gβ β Gβ) (zpow_zero' : β (a : Gβ), zpow 0 a = 1 := by intros; rfl) (zpow_succ' : β (n : β) (a : Gβ), zpow (βn.succ) a = zpow (βn) a * a := by intros; rfl) (zpow_neg' : β (n : β) (a : Gβ), zpow (Int.negSucc n) a = (zpow (βn.succ) a)β»ΒΉ := by intros; rfl) [toNontrivial : Nontrivial Gβ] (inv_zero : 0β»ΒΉ = 0) (mul_inv_cancel : β (a : Gβ), a β 0 β a * aβ»ΒΉ = 1) : CommGroupWithZero Gβ - AddGroupWithOne.zsmul_neg' π Mathlib.Data.Int.Cast.Defs
{R : Type u} [self : AddGroupWithOne R] (n : β) (a : R) : AddGroupWithOne.zsmul (Int.negSucc n) a = -AddGroupWithOne.zsmul (βn.succ) a - AddGroupWithOne.intCast_negSucc π Mathlib.Data.Int.Cast.Defs
{R : Type u} [self : AddGroupWithOne R] (n : β) : IntCast.intCast (Int.negSucc n) = -β(n + 1) - AddCommGroupWithOne.intCast_negSucc π Mathlib.Data.Int.Cast.Defs
{R : Type u} [self : AddCommGroupWithOne R] (n : β) : IntCast.intCast (Int.negSucc n) = -β(n + 1) - AddCommGroupWithOne.mk π Mathlib.Data.Int.Cast.Defs
{R : Type u} [toAddCommGroup : AddCommGroup R] [toIntCast : IntCast R] [toNatCast : NatCast R] [toOne : One R] (natCast_zero : β0 = 0 := by intros; rfl) (natCast_succ : β (n : β), β(n + 1) = βn + 1 := by intros; rfl) (intCast_ofNat : β (n : β), IntCast.intCast βn = βn := by intros; rfl) (intCast_negSucc : β (n : β), IntCast.intCast (Int.negSucc n) = -β(n + 1) := by intros; rfl) : AddCommGroupWithOne R - AddGroupWithOne.mk π Mathlib.Data.Int.Cast.Defs
{R : Type u} [toIntCast : IntCast R] [toAddMonoidWithOne : AddMonoidWithOne R] [toNeg : Neg R] [toSub : Sub R] (sub_eq_add_neg : β (a b : R), a - b = a + -b := by intros; rfl) (zsmul : β€ β R β R) (zsmul_zero' : β (a : R), zsmul 0 a = 0 := by intros; rfl) (zsmul_succ' : β (n : β) (a : R), zsmul (βn.succ) a = zsmul (βn) a + a := by intros; rfl) (zsmul_neg' : β (n : β) (a : R), zsmul (Int.negSucc n) a = -zsmul (βn.succ) a := by intros; rfl) (neg_add_cancel : β (a : R), -a + a = 0) (intCast_ofNat : β (n : β), IntCast.intCast βn = βn := by intros; rfl) (intCast_negSucc : β (n : β), IntCast.intCast (Int.negSucc n) = -β(n + 1) := by intros; rfl) : AddGroupWithOne R - Ring.zsmul_neg' π Mathlib.Algebra.Ring.Defs
{R : Type u} [self : Ring R] (n : β) (a : R) : Ring.zsmul (Int.negSucc n) a = -Ring.zsmul (βn.succ) a - Ring.intCast_negSucc π Mathlib.Algebra.Ring.Defs
{R : Type u} [self : Ring R] (n : β) : IntCast.intCast (Int.negSucc n) = -β(n + 1) - NonAssocRing.intCast_negSucc π Mathlib.Algebra.Ring.Defs
{Ξ± : Type u_1} [self : NonAssocRing Ξ±] (n : β) : IntCast.intCast (Int.negSucc n) = -β(n + 1) - NonAssocRing.mk π Mathlib.Algebra.Ring.Defs
{Ξ± : Type u_1} [toNonUnitalNonAssocRing : NonUnitalNonAssocRing Ξ±] [toOne : One Ξ±] (one_mul : β (a : Ξ±), 1 * a = a) (mul_one : β (a : Ξ±), a * 1 = a) [toNatCast : NatCast Ξ±] (natCast_zero : β0 = 0 := by intros; rfl) (natCast_succ : β (n : β), β(n + 1) = βn + 1 := by intros; rfl) [toIntCast : IntCast Ξ±] (intCast_ofNat : β (n : β), IntCast.intCast βn = βn := by intros; rfl) (intCast_negSucc : β (n : β), IntCast.intCast (Int.negSucc n) = -β(n + 1) := by intros; rfl) : NonAssocRing Ξ± - Ring.mk π Mathlib.Algebra.Ring.Defs
{R : Type u} [toSemiring : Semiring R] [toNeg : Neg R] [toSub : Sub R] (sub_eq_add_neg : β (a b : R), a - b = a + -b := by intros; rfl) (zsmul : β€ β R β R) (zsmul_zero' : β (a : R), zsmul 0 a = 0 := by intros; rfl) (zsmul_succ' : β (n : β) (a : R), zsmul (βn.succ) a = zsmul (βn) a + a := by intros; rfl) (zsmul_neg' : β (n : β) (a : R), zsmul (Int.negSucc n) a = -zsmul (βn.succ) a := by intros; rfl) (neg_add_cancel : β (a : R), -a + a = 0) [toIntCast : IntCast R] (intCast_ofNat : β (n : β), IntCast.intCast βn = βn := by intros; rfl) (intCast_negSucc : β (n : β), IntCast.intCast (Int.negSucc n) = -β(n + 1) := by intros; rfl) : Ring R - Int.cast_negSucc π Mathlib.Data.Int.Cast.Basic
{R : Type u} [AddGroupWithOne R] (n : β) : β(Int.negSucc n) = -β(n + 1) - LinearOrderedAddCommGroupWithTop.zsmul_neg' π Mathlib.Algebra.Order.AddGroupWithTop
{Ξ± : Type u_3} [self : LinearOrderedAddCommGroupWithTop Ξ±] (n : β) (a : Ξ±) : LinearOrderedAddCommGroupWithTop.zsmul (Int.negSucc n) a = -LinearOrderedAddCommGroupWithTop.zsmul (βn.succ) a - LinearOrderedAddCommGroupWithTop.mk π Mathlib.Algebra.Order.AddGroupWithTop
{Ξ± : Type u_3} [toLinearOrderedAddCommMonoidWithTop : LinearOrderedAddCommMonoidWithTop Ξ±] [toNeg : Neg Ξ±] [toSub : Sub Ξ±] (sub_eq_add_neg : β (a b : Ξ±), a - b = a + -b := by intros; rfl) (zsmul : β€ β Ξ± β Ξ±) (zsmul_zero' : β (a : Ξ±), zsmul 0 a = 0 := by intros; rfl) (zsmul_succ' : β (n : β) (a : Ξ±), zsmul (βn.succ) a = zsmul (βn) a + a := by intros; rfl) (zsmul_neg' : β (n : β) (a : Ξ±), zsmul (Int.negSucc n) a = -zsmul (βn.succ) a := by intros; rfl) [toNontrivial : Nontrivial Ξ±] (neg_top : -β€ = β€) (add_neg_cancel_of_ne_top : β β¦x : Ξ±β¦, x β β€ β x + -x = 0) : LinearOrderedAddCommGroupWithTop Ξ± - LinearOrderedCommGroupWithZero.zpow_neg' π Mathlib.Algebra.Order.GroupWithZero.Canonical
{Ξ± : Type u_3} [self : LinearOrderedCommGroupWithZero Ξ±] (n : β) (a : Ξ±) : LinearOrderedCommGroupWithZero.zpow (Int.negSucc n) a = (LinearOrderedCommGroupWithZero.zpow (βn.succ) a)β»ΒΉ - LinearOrderedCommGroupWithZero.mk π Mathlib.Algebra.Order.GroupWithZero.Canonical
{Ξ± : Type u_3} [toLinearOrderedCommMonoidWithZero : LinearOrderedCommMonoidWithZero Ξ±] [toInv : Inv Ξ±] [toDiv : Div Ξ±] (div_eq_mul_inv : β (a b : Ξ±), a / b = a * bβ»ΒΉ := by intros; rfl) (zpow : β€ β Ξ± β Ξ±) (zpow_zero' : β (a : Ξ±), zpow 0 a = 1 := by intros; rfl) (zpow_succ' : β (n : β) (a : Ξ±), zpow (βn.succ) a = zpow (βn) a * a := by intros; rfl) (zpow_neg' : β (n : β) (a : Ξ±), zpow (Int.negSucc n) a = (zpow (βn.succ) a)β»ΒΉ := by intros; rfl) [toNontrivial : Nontrivial Ξ±] (inv_zero : 0β»ΒΉ = 0) (mul_inv_cancel : β (a : Ξ±), a β 0 β a * aβ»ΒΉ = 1) : LinearOrderedCommGroupWithZero Ξ± - DivisionRing.zpow_neg' π Mathlib.Algebra.Field.Defs
{K : Type u_2} [self : DivisionRing K] (n : β) (a : K) : DivisionRing.zpow (Int.negSucc n) a = (DivisionRing.zpow (βn.succ) a)β»ΒΉ - DivisionSemiring.zpow_neg' π Mathlib.Algebra.Field.Defs
{K : Type u_2} [self : DivisionSemiring K] (n : β) (a : K) : DivisionSemiring.zpow (Int.negSucc n) a = (DivisionSemiring.zpow (βn.succ) a)β»ΒΉ - Field.zpow_neg' π Mathlib.Algebra.Field.Defs
{K : Type u} [self : Field K] (n : β) (a : K) : Field.zpow (Int.negSucc n) a = (Field.zpow (βn.succ) a)β»ΒΉ - Semifield.zpow_neg' π Mathlib.Algebra.Field.Defs
{K : Type u_2} [self : Semifield K] (n : β) (a : K) : Semifield.zpow (Int.negSucc n) a = (Semifield.zpow (βn.succ) a)β»ΒΉ - DivisionSemiring.mk π Mathlib.Algebra.Field.Defs
{K : Type u_2} [toSemiring : Semiring K] [toInv : Inv K] [toDiv : Div K] (div_eq_mul_inv : β (a b : K), a / b = a * bβ»ΒΉ := by intros; rfl) (zpow : β€ β K β K) (zpow_zero' : β (a : K), zpow 0 a = 1 := by intros; rfl) (zpow_succ' : β (n : β) (a : K), zpow (βn.succ) a = zpow (βn) a * a := by intros; rfl) (zpow_neg' : β (n : β) (a : K), zpow (Int.negSucc n) a = (zpow (βn.succ) a)β»ΒΉ := by intros; rfl) [toNontrivial : Nontrivial K] (inv_zero : 0β»ΒΉ = 0) (mul_inv_cancel : β (a : K), a β 0 β a * aβ»ΒΉ = 1) [toNNRatCast : NNRatCast K] (nnratCast_def : β (q : ββ₯0), βq = βq.num / βq.den := by intros; rfl) (nnqsmul : ββ₯0 β K β K) (nnqsmul_def : β (q : ββ₯0) (a : K), nnqsmul q a = βq * a := by intros; rfl) : DivisionSemiring K - Semifield.mk π Mathlib.Algebra.Field.Defs
{K : Type u_2} [toCommSemiring : CommSemiring K] [toInv : Inv K] [toDiv : Div K] (div_eq_mul_inv : β (a b : K), a / b = a * bβ»ΒΉ := by intros; rfl) (zpow : β€ β K β K) (zpow_zero' : β (a : K), zpow 0 a = 1 := by intros; rfl) (zpow_succ' : β (n : β) (a : K), zpow (βn.succ) a = zpow (βn) a * a := by intros; rfl) (zpow_neg' : β (n : β) (a : K), zpow (Int.negSucc n) a = (zpow (βn.succ) a)β»ΒΉ := by intros; rfl) [toNontrivial : Nontrivial K] (inv_zero : 0β»ΒΉ = 0) (mul_inv_cancel : β (a : K), a β 0 β a * aβ»ΒΉ = 1) [toNNRatCast : NNRatCast K] (nnratCast_def : β (q : ββ₯0), βq = βq.num / βq.den := by intros; rfl) (nnqsmul : ββ₯0 β K β K) (nnqsmul_def : β (q : ββ₯0) (a : K), nnqsmul q a = βq * a := by intros; rfl) : Semifield K - DivisionRing.mk π Mathlib.Algebra.Field.Defs
{K : Type u_2} [toRing : Ring K] [toInv : Inv K] [toDiv : Div K] (div_eq_mul_inv : β (a b : K), a / b = a * bβ»ΒΉ := by intros; rfl) (zpow : β€ β K β K) (zpow_zero' : β (a : K), zpow 0 a = 1 := by intros; rfl) (zpow_succ' : β (n : β) (a : K), zpow (βn.succ) a = zpow (βn) a * a := by intros; rfl) (zpow_neg' : β (n : β) (a : K), zpow (Int.negSucc n) a = (zpow (βn.succ) a)β»ΒΉ := by intros; rfl) [toNontrivial : Nontrivial K] [toNNRatCast : NNRatCast K] [toRatCast : RatCast K] (mul_inv_cancel : β (a : K), a β 0 β a * aβ»ΒΉ = 1) (inv_zero : 0β»ΒΉ = 0) (nnratCast_def : β (q : ββ₯0), βq = βq.num / βq.den := by intros; rfl) (nnqsmul : ββ₯0 β K β K) (nnqsmul_def : β (q : ββ₯0) (a : K), nnqsmul q a = βq * a := by intros; rfl) (ratCast_def : β (q : β), βq = βq.num / βq.den := by intros; rfl) (qsmul : β β K β K) (qsmul_def : β (a : β) (x : K), qsmul a x = βa * x := by intros; rfl) : DivisionRing K - Field.mk π Mathlib.Algebra.Field.Defs
{K : Type u} [toCommRing : CommRing K] [toInv : Inv K] [toDiv : Div K] (div_eq_mul_inv : β (a b : K), a / b = a * bβ»ΒΉ := by intros; rfl) (zpow : β€ β K β K) (zpow_zero' : β (a : K), zpow 0 a = 1 := by intros; rfl) (zpow_succ' : β (n : β) (a : K), zpow (βn.succ) a = zpow (βn) a * a := by intros; rfl) (zpow_neg' : β (n : β) (a : K), zpow (Int.negSucc n) a = (zpow (βn.succ) a)β»ΒΉ := by intros; rfl) [toNontrivial : Nontrivial K] [toNNRatCast : NNRatCast K] [toRatCast : RatCast K] (mul_inv_cancel : β (a : K), a β 0 β a * aβ»ΒΉ = 1) (inv_zero : 0β»ΒΉ = 0) (nnratCast_def : β (q : ββ₯0), βq = βq.num / βq.den := by intros; rfl) (nnqsmul : ββ₯0 β K β K) (nnqsmul_def : β (q : ββ₯0) (a : K), nnqsmul q a = βq * a := by intros; rfl) (ratCast_def : β (q : β), βq = βq.num / βq.den := by intros; rfl) (qsmul : β β K β K) (qsmul_def : β (a : β) (x : K), qsmul a x = βa * x := by intros; rfl) : Field K - Int.negOfNat.eq_2 π Mathlib.Tactic.Ring.Basic
(m : β) : Int.negOfNat m.succ = Int.negSucc m - Int.divisorsAntidiag.eq_2 π Mathlib.NumberTheory.Divisors
(n : β) : (Int.negSucc n).divisorsAntidiag = (Finset.map (Nat.castEmbedding.prodMap (Nat.castEmbedding.trans (Equiv.toEmbedding (Equiv.neg β€)))) (n + 1).divisorsAntidiagonal).disjUnion (Finset.map ((Nat.castEmbedding.trans (Equiv.toEmbedding (Equiv.neg β€))).prodMap Nat.castEmbedding) (n + 1).divisorsAntidiagonal) β― - DirectSum.GRing.intCast_negSucc_ofNat π Mathlib.Algebra.DirectSum.Ring
{ΞΉ : Type u_1} {A : ΞΉ β Type u_2} {instβ : AddMonoid ΞΉ} {instβΒΉ : (i : ΞΉ) β AddCommGroup (A i)} [self : DirectSum.GRing A] (n : β) : DirectSum.GRing.intCast (Int.negSucc n) = -DirectSum.GSemiring.natCast (n + 1) - DirectSum.GRing.mk π Mathlib.Algebra.DirectSum.Ring
{ΞΉ : Type u_1} {A : ΞΉ β Type u_2} [AddMonoid ΞΉ] [(i : ΞΉ) β AddCommGroup (A i)] [toGSemiring : DirectSum.GSemiring A] (intCast : β€ β A 0) (intCast_ofNat : β (n : β), intCast βn = DirectSum.GSemiring.natCast n) (intCast_negSucc_ofNat : β (n : β), intCast (Int.negSucc n) = -DirectSum.GSemiring.natCast (n + 1)) : DirectSum.GRing A - CochainComplex.ConnectData.X_negSucc π Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C β} {L : CochainComplex C β} (n : β) : CochainComplex.ConnectData.X K L (Int.negSucc n) = K.X n - CochainComplex.ConnectData.d.eq_3 π Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C β} {L : CochainComplex C β} (h : CochainComplex.ConnectData K L) : h.d (Int.negSucc 0) (Int.ofNat 0) = h.dβ - CochainComplex.ConnectData.d.eq_2 π Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C β} {L : CochainComplex C β} (h : CochainComplex.ConnectData K L) (n m : β) : h.d (Int.negSucc n) (Int.negSucc m) = K.d n m - CochainComplex.ConnectData.d_negSucc π Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C β} {L : CochainComplex C β} (h : CochainComplex.ConnectData K L) (n m : β) : h.d (Int.negSucc n) (Int.negSucc m) = K.d n m - CochainComplex.ConnectData.d.eq_4 π Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C β} {L : CochainComplex C β} (h : CochainComplex.ConnectData K L) (a a_1 : β) : h.d (Int.ofNat a) (Int.negSucc a_1) = 0 - CochainComplex.ConnectData.d.eq_5 π Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C β} {L : CochainComplex C β} (h : CochainComplex.ConnectData K L) (a a_1 : β) (x_2 : a = 0 β a_1 = 0 β False) : h.d (Int.negSucc a) (Int.ofNat a_1) = 0 - CochainComplex.ConnectData.restrictionLEIso_hom_f π Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C β} {L : CochainComplex C β} (h : CochainComplex.ConnectData K L) (i : β) : h.restrictionLEIso.hom.f i = (HomologicalComplex.restrictionXIso h.cochainComplex (ComplexShape.embeddingUpIntLE (-1)) β―).hom - CochainComplex.ConnectData.restrictionLEIso_inv_f π Mathlib.Algebra.Homology.Embedding.Connect
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {K : ChainComplex C β} {L : CochainComplex C β} (h : CochainComplex.ConnectData K L) (i : β) : h.restrictionLEIso.inv.f i = (HomologicalComplex.restrictionXIso h.cochainComplex (ComplexShape.embeddingUpIntLE (-1)) β―).inv - Polynomial.Chebyshev.T.induct π Mathlib.RingTheory.Polynomial.Chebyshev
(motive : β€ β Prop) (case1 : motive 0) (case2 : motive 1) (case3 : β (n : β), motive (βn + 1) β motive βn β motive (Int.ofNat n.succ.succ)) (case4 : β (n : β), motive (-βn) β motive (-βn + 1) β motive (Int.negSucc n)) (aβ : β€) : motive aβ - Polynomial.Chebyshev.C.eq_4 π Mathlib.RingTheory.Polynomial.Chebyshev
(R : Type u_1) [CommRing R] (n : β) : Polynomial.Chebyshev.C R (Int.negSucc n) = Polynomial.X * Polynomial.Chebyshev.C R (-βn) - Polynomial.Chebyshev.C R (-βn + 1) - Polynomial.Chebyshev.S.eq_4 π Mathlib.RingTheory.Polynomial.Chebyshev
(R : Type u_1) [CommRing R] (n : β) : Polynomial.Chebyshev.S R (Int.negSucc n) = Polynomial.X * Polynomial.Chebyshev.S R (-βn) - Polynomial.Chebyshev.S R (-βn + 1) - Polynomial.Chebyshev.T.eq_4 π Mathlib.RingTheory.Polynomial.Chebyshev
(R : Type u_1) [CommRing R] (n : β) : Polynomial.Chebyshev.T R (Int.negSucc n) = 2 * Polynomial.X * Polynomial.Chebyshev.T R (-βn) - Polynomial.Chebyshev.T R (-βn + 1) - Polynomial.Chebyshev.U.eq_4 π Mathlib.RingTheory.Polynomial.Chebyshev
(R : Type u_1) [CommRing R] (n : β) : Polynomial.Chebyshev.U R (Int.negSucc n) = 2 * Polynomial.X * Polynomial.Chebyshev.U R (-βn) - Polynomial.Chebyshev.U R (-βn + 1) - zsmulRec.eq_2 π Mathlib.Topology.ContinuousMap.Bounded.Normed
{G : Type u_1} [Zero G] [Add G] [Neg G] (nsmul : β β G β G) (xβ : G) (n : β) : zsmulRec nsmul (Int.negSucc n) xβ = -nsmul n.succ xβ - Int.castDef.eq_2 π Mathlib.RingTheory.GradedAlgebra.HomogeneousLocalization
{R : Type u} [NatCast R] [Neg R] (n : β) : (Int.negSucc n).castDef = -β(n + 1) - Turing.Tape.nth.eq_3 π Mathlib.Computability.Tape
{Ξ : Type u_1} [Inhabited Ξ] (T : Turing.Tape Ξ) (n : β) : T.nth (Int.negSucc n) = T.left.nth n - Int.lnot.eq_1 π Mathlib.Data.Int.Bitwise
(n : β) : (Int.ofNat n).lnot = Int.negSucc n - Int.bodd.eq_2 π Mathlib.Data.Int.Bitwise
(n : β) : (Int.negSucc n).bodd = !n.bodd - Int.lnot.eq_2 π Mathlib.Data.Int.Bitwise
(n : β) : (Int.negSucc n).lnot = βn - Int.bit_negSucc π Mathlib.Data.Int.Bitwise
(b : Bool) (n : β) : Int.bit b (Int.negSucc n) = Int.negSucc (Nat.bit (!b) n) - Int.lor.eq_2 π Mathlib.Data.Int.Bitwise
(m n : β) : (Int.ofNat m).lor (Int.negSucc n) = Int.negSucc (n.ldiff m) - Int.lor.eq_3 π Mathlib.Data.Int.Bitwise
(m n : β) : (Int.negSucc m).lor (Int.ofNat n) = Int.negSucc (m.ldiff n) - Int.ldiff.eq_4 π Mathlib.Data.Int.Bitwise
(m n : β) : (Int.negSucc m).ldiff (Int.negSucc n) = β(n.ldiff m) - Int.ldiff.eq_3 π Mathlib.Data.Int.Bitwise
(m n : β) : (Int.negSucc m).ldiff (Int.ofNat n) = Int.negSucc (m ||| n) - Int.lor.eq_4 π Mathlib.Data.Int.Bitwise
(m n : β) : (Int.negSucc m).lor (Int.negSucc n) = Int.negSucc (m &&& n) - Int.xor.eq_2 π Mathlib.Data.Int.Bitwise
(m n : β) : (Int.ofNat m).xor (Int.negSucc n) = Int.negSucc (m ^^^ n) - Int.xor.eq_3 π Mathlib.Data.Int.Bitwise
(m n : β) : (Int.negSucc m).xor (Int.ofNat n) = Int.negSucc (m ^^^ n) - Int.ldiff.eq_2 π Mathlib.Data.Int.Bitwise
(m n : β) : (Int.ofNat m).ldiff (Int.negSucc n) = β(m &&& n) - Int.xor.eq_4 π Mathlib.Data.Int.Bitwise
(m n : β) : (Int.negSucc m).xor (Int.negSucc n) = β(m ^^^ n) - Int.shiftLeft_negSucc π Mathlib.Data.Int.Bitwise
(m n : β) : Int.negSucc m <<< βn = Int.negSucc (Nat.shiftLeft' true m n) - Int.bitwise.eq_2 π Mathlib.Data.Int.Bitwise
(f : Bool β Bool β Bool) (m n : β) : Int.bitwise f (Int.ofNat m) (Int.negSucc n) = Int.natBitwise (fun x y => f x !y) m n - Int.bitwise.eq_3 π Mathlib.Data.Int.Bitwise
(f : Bool β Bool β Bool) (m n : β) : Int.bitwise f (Int.negSucc m) (Int.ofNat n) = Int.natBitwise (fun x y => f (!x) y) m n - Int.bitwise.eq_4 π Mathlib.Data.Int.Bitwise
(f : Bool β Bool β Bool) (m n : β) : Int.bitwise f (Int.negSucc m) (Int.negSucc n) = Int.natBitwise (fun x y => f (!x) !y) m n - Int.shiftRight_negSucc π Mathlib.Data.Int.Bitwise
(m n : β) : Int.negSucc m >>> βn = Int.negSucc (m >>> n) - Int.natBitwise.eq_1 π Mathlib.Data.Int.Bitwise
(f : Bool β Bool β Bool) (m n : β) : Int.natBitwise f m n = bif f false false then Int.negSucc (Nat.bitwise (fun x y => !f x y) m n) else β(Nat.bitwise f m n) - ZNum.ofInt'.eq_2 π Mathlib.Data.Num.ZNum
(n : β) : ZNum.ofInt' (Int.negSucc n) = (Num.ofNat' (n + 1)).toZNumNeg - Zsqrtd.Nonnegg.eq_4 π Mathlib.NumberTheory.Zsqrtd.Basic
(c d a a_1 : β) : Zsqrtd.Nonnegg c d (Int.negSucc a) (Int.negSucc a_1) = False - Zsqrtd.Nonnegg.eq_2 π Mathlib.NumberTheory.Zsqrtd.Basic
(c d a b : β) : Zsqrtd.Nonnegg c d (Int.ofNat a) (Int.negSucc b) = Zsqrtd.SqLe (b + 1) c a d - Zsqrtd.Nonnegg.eq_3 π Mathlib.NumberTheory.Zsqrtd.Basic
(c d a b : β) : Zsqrtd.Nonnegg c d (Int.negSucc a) (Int.ofNat b) = Zsqrtd.SqLe (a + 1) d b c - HurwitzKernelBounds.f_int_negSucc π Mathlib.NumberTheory.ModularForms.JacobiTheta.Bounds
(k : β) {a : β} (ha : a β€ 1) (t : β) (n : β) : HurwitzKernelBounds.f_int k a t (Int.negSucc n) = HurwitzKernelBounds.f_nat k (1 - a) t n
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using (by default) Ctrl-K Ctrl-S. 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.
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.
This is Loogle revision 6ff4759 serving mathlib revision 519f454