Loogle!
Result
Found 12448 declarations mentioning Int. Of these, 20 have a name containing "induction".
- Int.negInduction ๐ Mathlib.Data.Int.Init
{motive : โค โ Sort u_1} (nat : (n : โ) โ motive โn) (neg : ((n : โ) โ motive โn) โ (n : โ) โ motive (-โn)) (n : โค) : motive n - 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) - Int.inductionOn'.pos ๐ Mathlib.Data.Int.Init
{motive : โค โ Sort u_1} (b : โค) (zero : motive b) (succ : (k : โค) โ b โค k โ motive k โ motive (k + 1)) (n : โ) : motive (b + โn) - Int.le_induction ๐ Mathlib.Data.Int.Init
{m : โค} {motive : (n : โค) โ m โค n โ Prop} (base : motive m โฏ) (succ : โ (n : โค) (hmn : m โค n), motive n hmn โ motive (n + 1) โฏ) (n : โค) (hmn : m โค n) : motive n hmn - Int.inductionOn' ๐ Mathlib.Data.Int.Init
{motive : โค โ Sort u_1} (z b : โค) (zero : motive b) (succ : (k : โค) โ b โค k โ motive k โ motive (k + 1)) (pred : (k : โค) โ k โค b โ motive k โ motive (k - 1)) : motive z - Int.inductionOn'_self ๐ Mathlib.Data.Int.Init
{motive : โค โ Sort u_1} {b : โค} {zero : motive b} {succ : (k : โค) โ b โค k โ motive k โ motive (k + 1)} {pred : (k : โค) โ k โค b โ motive k โ motive (k - 1)} : Int.inductionOn' b b zero succ pred = zero - Int.induction_on ๐ Mathlib.Data.Int.Init
{motive : โค โ Prop} (i : โค) (zero : motive 0) (succ : โ (i : โ), motive โi โ motive (โi + 1)) (pred : โ (i : โ), motive (-โi) โ motive (-โi - 1)) : motive i - Int.le_induction_down ๐ Mathlib.Data.Int.Init
{m : โค} {motive : (n : โค) โ n โค m โ Prop} (base : motive m โฏ) (pred : โ (n : โค) (hmn : n โค m), motive n hmn โ motive (n - 1) โฏ) (n : โค) (hmn : n โค m) : motive n hmn - Int.inductionOn'_sub_one ๐ Mathlib.Data.Int.Init
{motive : โค โ Sort u_1} {z b : โค} {zero : motive b} {succ : (k : โค) โ b โค k โ motive k โ motive (k + 1)} {pred : (k : โค) โ k โค b โ motive k โ motive (k - 1)} (hz : z โค b) : Int.inductionOn' (z - 1) b zero succ pred = pred z hz (Int.inductionOn' z b zero succ pred) - Int.inductionOn'.eq_1 ๐ Mathlib.Data.Int.Init
{motive : โค โ Sort u_1} (z b : โค) (zero : motive b) (succ : (k : โค) โ b โค k โ motive k โ motive (k + 1)) (pred : (k : โค) โ k โค b โ motive k โ motive (k - 1)) : Int.inductionOn' z b zero succ pred = cast โฏ (match z - b with | Int.ofNat n => Int.inductionOn'.pos b zero succ n | Int.negSucc n => Int.inductionOn'.neg b zero pred n) - zpow_induction_left ๐ Mathlib.Algebra.Group.Basic
{G : Type u_3} [Group G] {g : G} {P : G โ Prop} (h_one : P 1) (h_mul : โ (a : G), P a โ P (g * a)) (h_inv : โ (a : G), P a โ P (gโปยน * a)) (n : โค) : P (g ^ n) - zpow_induction_right ๐ Mathlib.Algebra.Group.Basic
{G : Type u_3} [Group G] {g : G} {P : G โ Prop} (h_one : P 1) (h_mul : โ (a : G), P a โ P (a * g)) (h_inv : โ (a : G), P a โ P (a * gโปยน)) (n : โค) : P (g ^ n) - zsmul_induction_left ๐ Mathlib.Algebra.Group.Basic
{G : Type u_3} [AddGroup G] {g : G} {P : G โ Prop} (h_one : P 0) (h_mul : โ (a : G), P a โ P (g + a)) (h_inv : โ (a : G), P a โ P (-g + a)) (n : โค) : P (n โข g) - zsmul_induction_right ๐ Mathlib.Algebra.Group.Basic
{G : Type u_3} [AddGroup G] {g : G} {P : G โ Prop} (h_one : P 0) (h_mul : โ (a : G), P a โ P (a + g)) (h_inv : โ (a : G), P a โ P (a + -g)) (n : โค) : P (n โข g) - Int.inductionOn'_add_one ๐ Mathlib.Data.Int.Basic
{C : โค โ Sort u_1} {z b : โค} {H0 : C b} {Hs : (k : โค) โ b โค k โ C k โ C (k + 1)} {Hp : (k : โค) โ k โค b โ C k โ C (k - 1)} (hz : b โค z) : Int.inductionOn' (z + 1) b H0 Hs Hp = Hs z hz (Int.inductionOn' z b H0 Hs Hp) - LaurentPolynomial.induction_on_mul_T ๐ Mathlib.Algebra.Polynomial.Laurent
{R : Type u_1} [Semiring R] {Q : LaurentPolynomial R โ Prop} (f : LaurentPolynomial R) (Qf : โ {f : Polynomial R} {n : โ}, Q (Polynomial.toLaurent f * LaurentPolynomial.T (-โn))) : Q f - LaurentPolynomial.induction_on' ๐ Mathlib.Algebra.Polynomial.Laurent
{R : Type u_1} [Semiring R] {motive : LaurentPolynomial R โ Prop} (p : LaurentPolynomial R) (add : โ (p q : LaurentPolynomial R), motive p โ motive q โ motive (p + q)) (C_mul_T : โ (n : โค) (a : R), motive (LaurentPolynomial.C a * LaurentPolynomial.T n)) : motive p - LaurentPolynomial.induction_on ๐ Mathlib.Algebra.Polynomial.Laurent
{R : Type u_1} [Semiring R] {M : LaurentPolynomial R โ Prop} (p : LaurentPolynomial R) (h_C : โ (a : R), M (LaurentPolynomial.C a)) (h_add : โ {p q : LaurentPolynomial R}, M p โ M q โ M (p + q)) (h_C_mul_T : โ (n : โ) (a : R), M (LaurentPolynomial.C a * LaurentPolynomial.T โn) โ M (LaurentPolynomial.C a * LaurentPolynomial.T (โn + 1))) (h_C_mul_T_Z : โ (n : โ) (a : R), M (LaurentPolynomial.C a * LaurentPolynomial.T (-โn)) โ M (LaurentPolynomial.C a * LaurentPolynomial.T (-โn - 1))) : M p - FixedDetMatrices.induction_on ๐ Mathlib.LinearAlgebra.Matrix.FixedDetMatrices
{m : โค} {C : FixedDetMatrix (Fin 2) โค m โ Prop} {A : FixedDetMatrix (Fin 2) โค m} (hm : m โ 0) (h0 : โ (A : FixedDetMatrix (Fin 2) โค m), โA 1 0 = 0 โ 0 < โA 0 0 โ 0 โค โA 0 1 โ |โA 0 1| < |โA 1 1| โ C A) (hS : โ (B : FixedDetMatrix (Fin 2) โค m), C B โ C (ModularGroup.S โข B)) (hT : โ (B : FixedDetMatrix (Fin 2) โค m), C B โ C (ModularGroup.T โข B)) : C A - Poly.induction ๐ Mathlib.NumberTheory.Dioph
{ฮฑ : Type u_1} {C : Poly ฮฑ โ Prop} (H1 : โ (i : ฮฑ), C (Poly.proj i)) (H2 : โ (n : โค), C (Poly.const n)) (H3 : โ (f g : Poly ฮฑ), C f โ C g โ C (f - g)) (H4 : โ (f g : Poly ฮฑ), C f โ C g โ C (f * g)) (f : Poly ฮฑ) : C f
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 ?a
If 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 ?b
By 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_tsum
even though the hypothesisf i < g i
is 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 66afee5
serving mathlib revision f3731ea