Loogle!
Result
Found 467 declarations mentioning Lean.Expr.sort. Of these, only the first 200 are shown.
- Lean.Expr.sort 📋 Lean.Expr
(u : Lean.Level) : Lean.Expr - Qq.QuotedDefEq 📋 Qq.Typ
{u : Lean.Level} {α : Q(Sort u)} (lhs rhs : Q(«$α»)) : Prop - Qq.QuotedDefEq.unsafeIntro 📋 Qq.Typ
{u : Lean.Level} {α : Q(Sort u)} {lhs rhs : Q(«$α»)} : «$lhs» =Q «$rhs» - Qq.QuotedDefEq.check 📋 Qq.Typ
{u : Lean.Level} {α : Q(Sort u)} {lhs rhs : Q(«$α»)} (e : «$lhs» =Q «$rhs») : Lean.MetaM Unit - Qq.synthInstanceQ 📋 Qq.MetaM
{u : Lean.Level} (α : Q(Sort u)) : Lean.MetaM Q(«$α») - Qq.synthInstanceQ? 📋 Qq.MetaM
{u : Lean.Level} (α : Q(Sort u)) : Lean.MetaM (Option Q(«$α»)) - Qq.trySynthInstanceQ 📋 Qq.MetaM
{u : Lean.Level} (α : Q(Sort u)) : Lean.MetaM (Lean.LOption Q(«$α»)) - Qq.instantiateMVarsQ 📋 Qq.MetaM
{u : Lean.Level} {α : Q(Sort u)} (e : Q(«$α»)) : Lean.MetaM Q(«$α») - Qq.MaybeDefEq 📋 Qq.MetaM
{u : Lean.Level} {α : let u := u; Q(Sort u)} (a b : Q(«$α»)) : Type - Qq.checkTypeQ 📋 Qq.MetaM
{u : Lean.Level} (e : Lean.Expr) (ty : have u := u; Q(Sort u)) : Lean.MetaM (Option Q(«$ty»)) - Qq.mkFreshExprMVarQ 📋 Qq.MetaM
{u : Lean.Level} (ty : Q(Sort u)) (kind : Lean.MetavarKind := Lean.MetavarKind.natural) (userName : Lean.Name := Lean.Name.anonymous) : Lean.MetaM Q(«$ty») - Qq.MaybeDefEq.notDefEq 📋 Qq.MetaM
{u : Lean.Level} {α : let u := u; Q(Sort u)} {a b : Q(«$α»)} : Qq.MaybeDefEq a b - Qq.instReprMaybeDefEq 📋 Qq.MetaM
{u✝ : Lean.Level} {α✝ : have u := u✝; Q(Sort u)} {a b : Q($α✝)} : Repr (Qq.MaybeDefEq a b) - Qq.isDefEqQ 📋 Qq.MetaM
{u : Lean.Level} {α : have u := u; Q(Sort u)} (a b : Q(«$α»)) : Lean.MetaM (Qq.MaybeDefEq a b) - Qq.assertDefEqQ 📋 Qq.MetaM
{u : Lean.Level} {α : have u := u; Q(Sort u)} (a b : Q(«$α»)) : Lean.MetaM (PLift («$a» =Q «$b»)) - Qq.inferTypeQ 📋 Qq.MetaM
(e : Lean.Expr) : Lean.MetaM ((u : Lean.Level) × (α : have u := u; Q(Sort u)) × Q(«$α»)) - Qq.elabTermEnsuringTypeQ 📋 Qq.MetaM
{u : Lean.Level} (stx : Lean.Syntax) (expectedType : Q(Sort u)) (catchExPostpone implicitLambda : Bool := true) (errorMsgHeader? : Option String := none) : Lean.Elab.TermElabM Q(«$expectedType») - Qq.withLocalDeclDQ 📋 Qq.MetaM
{n : Type → Type u_1} {u : Lean.Level} {α : Type} [Monad n] [MonadControlT Lean.MetaM n] (name : Lean.Name) (β : Q(Sort u)) (k : Q(«$β») → n α) : n α - Qq.MaybeDefEq.defEq 📋 Qq.MetaM
{u : Lean.Level} {α : let u := u; Q(Sort u)} {a b : Q(«$α»)} : «$a» =Q «$b» → Qq.MaybeDefEq a b - Qq.withLocalDeclQ 📋 Qq.MetaM
{n : Type → Type u_1} {u : Lean.Level} {α : Type} [Monad n] [MonadControlT Lean.MetaM n] (name : Lean.Name) (bi : Lean.BinderInfo) (β : Q(Sort u)) (k : Q(«$β») → n α) : n α - Lean.Meta.Simp.ResultQ 📋 Qq.Simp
{u : Lean.Level} {α : Q(Sort u)} (_e : Q(«$α»)) : Type - Lean.Meta.Simp.StepQ 📋 Qq.Simp
{u : Lean.Level} {α : Q(Sort u)} (_e : Q(«$α»)) : Type - Lean.Meta.Simp.StepQ.done 📋 Qq.Simp
{u : Lean.Level} {α : Q(Sort u)} {e : Q(«$α»)} (r : Lean.Meta.Simp.ResultQ e) : Lean.Meta.Simp.StepQ e - Lean.Meta.Simp.StepQ.visit 📋 Qq.Simp
{u : Lean.Level} {α : Q(Sort u)} {e : Q(«$α»)} (r : Lean.Meta.Simp.ResultQ e) : Lean.Meta.Simp.StepQ e - Lean.Meta.Simp.StepQ.continue 📋 Qq.Simp
{u : Lean.Level} {α : Q(Sort u)} {e : Q(«$α»)} (r : Option (Lean.Meta.Simp.ResultQ e) := none) : Lean.Meta.Simp.StepQ e - Lean.Meta.Simp.ResultQ.mk 📋 Qq.Simp
{u : Lean.Level} {α : Q(Sort u)} {e : Q(«$α»)} (expr : Q(«$α»)) (proof? : Option Q(«$e» = «$expr»)) (cache : Bool := true) : Lean.Meta.Simp.ResultQ e - Qq.Impl.PatVarDecl.fvarTy 📋 Qq.MatchImpl
: Qq.Impl.PatVarDecl → Q(Type) - Qq.Impl.mkIsDefEqType 📋 Qq.MatchImpl
: List Qq.Impl.PatVarDecl → Q(Type) - Qq.Impl.PatVarDecl.fvar 📋 Qq.MatchImpl
(decl : Qq.Impl.PatVarDecl) : have a := decl.fvarTy; Q(«$a») - Qq.Impl.mkIsDefEqResult 📋 Qq.MatchImpl
(val : Bool) (decls : List Qq.Impl.PatVarDecl) : have a := Qq.Impl.mkIsDefEqType decls; Q(«$a») - Qq.Impl.mkIsDefEqResultVal 📋 Qq.MatchImpl
(decls : List Qq.Impl.PatVarDecl) : (have a := Qq.Impl.mkIsDefEqType decls; Q(«$a»)) → Q(Bool) - Qq.Impl.mkQqLets 📋 Qq.Match
{γ : Q(Type)} (decls : List Qq.Impl.PatVarDecl) : (have a := Qq.Impl.mkIsDefEqType decls; Q(«$a»)) → Lean.Elab.TermElabM Q(«$γ») → Lean.Elab.TermElabM Q(«$γ») - Qq.Impl.mkInstantiateMVars 📋 Qq.Match
(decls a✝ : List Qq.Impl.PatVarDecl) : Lean.MetaM (have a := Qq.Impl.mkIsDefEqType decls; Q(Lean.MetaM «$a»)) - Qq.Impl.mkIsDefEq 📋 Qq.Match
(decls : List Qq.Impl.PatVarDecl) (pat discr : Q(Lean.Expr)) : Lean.MetaM (have a := Qq.Impl.mkIsDefEqType decls; Q(Lean.MetaM «$a»)) - Qq.Impl.mkIsDefEqCore 📋 Qq.Match
(decls : List Qq.Impl.PatVarDecl) (pat discr : Q(Lean.Expr)) : List Qq.Impl.PatVarDecl → Lean.MetaM (have a := Qq.Impl.mkIsDefEqType decls; Q(Lean.MetaM «$a»)) - Qq.Impl.makeMatchCode 📋 Qq.Match
{v : Lean.Level} {γ : Q(Type)} {m : Q(Type → Type v)} (_instLift : Q(MonadLiftT Lean.MetaM «$m»)) (_instBind : Q(Bind «$m»)) (decls : List Qq.Impl.PatVarDecl) (uTy : Q(Lean.Level)) (ty : Q(Q(Sort «$uTy»))) (pat discr : Q(Q(«$$ty»))) (alt : Q(«$m» «$γ»)) (expectedType : Lean.Expr) (k : Lean.Expr → Lean.Elab.TermElabM Q(«$m» «$γ»)) : Lean.Elab.TermElabM Q(«$m» «$γ») - ExistsAndEq.mkNestedExists 📋 Mathlib.Tactic.Simproc.ExistsAndEq
(fvars : List ExistsAndEq.VarQ) (body : Q(Prop)) : Lean.MetaM Q(Prop) - ExistsAndEq.construct 📋 Mathlib.Tactic.Simproc.ExistsAndEq
{goal : Q(Prop)} (exs : List ExistsAndEq.VarQ) (path : ExistsAndEq.Path) (leaves : List ExistsAndEq.HypQ) : Lean.MetaM Q(«$goal») - ExistsAndEq.findEqPath 📋 Mathlib.Tactic.Simproc.ExistsAndEq
{u : Lean.Level} {α : Q(Sort u)} (a : Q(«$α»)) (P : Q(Prop)) : OptionT Lean.MetaM ExistsAndEq.Path - ExistsAndEq.destruct 📋 Mathlib.Tactic.Simproc.ExistsAndEq
{P goal : Q(Prop)} (h : Q(«$P»)) (exs : List ExistsAndEq.VarQ) (path : ExistsAndEq.Path) (acc : List ExistsAndEq.HypQ) (k : List ExistsAndEq.HypQ → ExistsAndEq.HypQ → Lean.MetaM Q(«$goal»)) : Lean.MetaM Q(«$goal») - ExistsAndEq.findEq 📋 Mathlib.Tactic.Simproc.ExistsAndEq
{u : Lean.Level} {α : Q(Sort u)} (a : Q(«$α»)) (P : Q(Prop)) (path : ExistsAndEq.Path) : Lean.MetaM (List ExistsAndEq.VarQ × Lean.LocalContext × Q(Prop) × Q(«$α»)) - ExistsAndEq.mkBeforeToAfter 📋 Mathlib.Tactic.Simproc.ExistsAndEq
{u : Lean.Level} {α : Q(Sort u)} {p : Q(«$α» → Prop)} {P' : Q(Prop)} (fvars : List ExistsAndEq.VarQ) (path : ExistsAndEq.Path) : Lean.MetaM Q((∃ a, «$p» a) → «$P'») - ExistsAndEq.mkAfterToBefore 📋 Mathlib.Tactic.Simproc.ExistsAndEq
{u : Lean.Level} {α : Q(Sort u)} {p : Q(«$α» → Prop)} {P' : Q(Prop)} (a' : Q(«$α»)) (fvars : List ExistsAndEq.VarQ) (path : ExistsAndEq.Path) : Lean.MetaM Q(«$P'» → ∃ a, «$p» a) - Mathlib.Tactic.Tauto.casesMatcher 📋 Mathlib.Tactic.Tauto
(e : Q(Prop)) : Lean.MetaM Bool - Mathlib.Tactic.Tauto.coreConstructorMatcher 📋 Mathlib.Tactic.Tauto
(e : Q(Prop)) : Lean.MetaM Bool - Mathlib.Tactic.Tauto.finishingConstructorMatcher 📋 Mathlib.Tactic.Tauto
(e : Q(Prop)) : Lean.MetaM Bool - Mathlib.Tactic.AtomM.addAtomQ 📋 Mathlib.Util.AtomM
{u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) : Mathlib.Tactic.AtomM (ℕ × { e' // «$e» =Q «$e'» }) - Mathlib.Tactic.AtomM.containsThenAddQ 📋 Mathlib.Util.AtomM
{u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) : Mathlib.Tactic.AtomM (Bool × ℕ × { e' // «$e» =Q «$e'» }) - Mathlib.Tactic.TFAE.elabTFAEType 📋 Mathlib.Tactic.TFAE
(tfaeList : List Q(Prop)) : Lean.TSyntax `Mathlib.Tactic.TFAE.Parser.tfaeType → Lean.Elab.TermElabM Lean.Expr - Mathlib.Tactic.TFAE.getTFAEList 📋 Mathlib.Tactic.TFAE
(t : Lean.Expr) : Lean.MetaM (Q(List Prop) × List Q(Prop)) - Mathlib.Tactic.TFAE.proveImpl 📋 Mathlib.Tactic.TFAE
(hyps : Array (ℕ × ℕ × Lean.Expr)) (atoms : Array Q(Prop)) (i j : ℕ) (P P' : Q(Prop)) : Lean.MetaM Q(«$P» → «$P'») - Mathlib.Tactic.TFAE.dfs 📋 Mathlib.Tactic.TFAE
(hyps : Array (ℕ × ℕ × Lean.Expr)) (atoms : Array Q(Prop)) (i j : ℕ) (P P' : Q(Prop)) (hP : Q(«$P»)) : StateT (Std.HashSet ℕ) Lean.MetaM Q(«$P'») - Mathlib.Tactic.TFAE.proveTFAE 📋 Mathlib.Tactic.TFAE
(hyps : Array (ℕ × ℕ × Lean.Expr)) (atoms : Array Q(Prop)) (is : List ℕ) (l : Q(List Prop)) : Lean.MetaM Q(«$l».TFAE) - Mathlib.Tactic.TFAE.proveGetLastDImpl 📋 Mathlib.Tactic.TFAE
(hyps : Array (ℕ × ℕ × Lean.Expr)) (atoms : Array Q(Prop)) (i i' : ℕ) (is : List ℕ) (P P' : Q(Prop)) (l : Q(List Prop)) : Lean.MetaM Q(«$l».getLastD «$P'» → «$P») - Mathlib.Tactic.TFAE.proveChain 📋 Mathlib.Tactic.TFAE
(hyps : Array (ℕ × ℕ × Lean.Expr)) (atoms : Array Q(Prop)) (i : ℕ) (is : List ℕ) (P : Q(Prop)) (l : Q(List Prop)) : Lean.MetaM Q(List.IsChain (fun x1 x2 => x1 → x2) («$P» :: «$l»)) - Mathlib.Tactic.Nontriviality.nontrivialityByElim 📋 Mathlib.Tactic.Nontriviality.Core
{u : Lean.Level} (α : Q(Type u)) (g : Lean.MVarId) (simpArgs : Array Lean.Syntax) : Lean.MetaM Lean.MVarId - Mathlib.Tactic.Bound.hypPriority 📋 Mathlib.Tactic.Bound.Attribute
(hyp : Q(Prop)) : Lean.MetaM ℕ - Mathlib.Tactic.Bound.isZero 📋 Mathlib.Tactic.Bound.Attribute
{u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) : Lean.MetaM Bool - Mathlib.Tactic.Bound.ineqPriority 📋 Mathlib.Tactic.Bound.Attribute
{u : Lean.Level} {α : Q(Type u)} (a b : Q(«$α»)) : Lean.MetaM ℕ - Mathlib.Meta.NormNum.BoolResult 📋 Mathlib.Tactic.NormNum.Result
(p : Q(Prop)) (b : Bool) : Type - Mathlib.Meta.NormNum.Result 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} (x : Q(«$α»)) : Type - Mathlib.Meta.NormNum.Result.ofRawNat 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) : Mathlib.Meta.NormNum.Result e - Mathlib.Meta.NormNum.instInhabitedResult 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {x : Q(«$α»)} : Inhabited (Mathlib.Meta.NormNum.Result x) - Mathlib.Meta.NormNum.instToMessageDataResult 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {x : Q(«$α»)} : Lean.ToMessageData (Mathlib.Meta.NormNum.Result x) - Mathlib.Meta.NormNum.Result.ofRawInt 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} (n : ℤ) (e : Q(«$α»)) : Mathlib.Meta.NormNum.Result e - Mathlib.Meta.NormNum.Result.toRat 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {e : Q(«$α»)} : Mathlib.Meta.NormNum.Result e → Option ℚ - Mathlib.Meta.NormNum.Result.toSimpResult 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {e : Q(«$α»)} : Mathlib.Meta.NormNum.Result e → Lean.MetaM Lean.Meta.Simp.Result - Mathlib.Meta.NormNum.Result.toRatNZ 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {e : Q(«$α»)} : Mathlib.Meta.NormNum.Result e → Option (ℚ × Option Lean.Expr) - Mathlib.Meta.NormNum.inferAddMonoidWithOne 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} (α : Q(Type u)) : Lean.MetaM Q(AddMonoidWithOne «$α») - Mathlib.Meta.NormNum.inferRing 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} (α : Q(Type u)) : Lean.MetaM Q(Ring «$α») - Mathlib.Meta.NormNum.inferSemiring 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} (α : Q(Type u)) : Lean.MetaM Q(Semiring «$α») - Mathlib.Meta.NormNum.Result.ofRawNNRat 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} (q : ℚ) (e : Q(«$α»)) (hyp : Option Lean.Expr := none) : Mathlib.Meta.NormNum.Result e - Mathlib.Meta.NormNum.Result.ofRawRat 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} (q : ℚ) (e : Q(«$α»)) (hyp : Option Lean.Expr := none) : Mathlib.Meta.NormNum.Result e - Mathlib.Meta.NormNum.Result.isTrue 📋 Mathlib.Tactic.NormNum.Result
{x : Q(Prop)} (proof : Q(«$x»)) : Mathlib.Meta.NormNum.Result q(«$x») - Mathlib.Meta.NormNum.Result.isFalse 📋 Mathlib.Tactic.NormNum.Result
{x : Q(Prop)} (proof : Q(¬«$x»)) : Mathlib.Meta.NormNum.Result q(«$x») - Mathlib.Meta.NormNum.Result.ofBoolResult 📋 Mathlib.Tactic.NormNum.Result
{p : Q(Prop)} {b : Bool} (prf : Mathlib.Meta.NormNum.BoolResult p b) : Mathlib.Meta.NormNum.Result q(Prop) - Mathlib.Meta.NormNum.Result.toRawEq 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {e : Q(«$α»)} : Mathlib.Meta.NormNum.Result e → (e' : Q(«$α»)) × Q(«$e» = «$e'») - Mathlib.Meta.NormNum.Result.eqTrans 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {a b : Q(«$α»)} (eq : Q(«$a» = «$b»)) : Mathlib.Meta.NormNum.Result b → Mathlib.Meta.NormNum.Result a - Mathlib.Meta.NormNum.Result.toRawIntEq 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {e : Q(«$α»)} : Mathlib.Meta.NormNum.Result e → Option (ℤ × (e' : Q(«$α»)) × Q(«$e» = «$e'»)) - Mathlib.Meta.NormNum.Result.isNat 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {x : Q(«$α»)} (inst : Q(AddMonoidWithOne «$α») := by assumption) (lit : Q(ℕ)) (proof : Q(Mathlib.Meta.NormNum.IsNat «$x» «$lit»)) : Mathlib.Meta.NormNum.Result x - Mathlib.Meta.NormNum.Result.isInt 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {x : Q(«$α»)} (inst : Q(Ring «$α») := by assumption) (z : Q(ℤ)) (n : ℤ) (proof : Q(Mathlib.Meta.NormNum.IsInt «$x» «$z»)) : Mathlib.Meta.NormNum.Result x - Mathlib.Meta.NormNum.Result.isNegNat 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {x : Q(«$α»)} (inst : Q(Ring «$α») := by assumption) (lit : Q(ℕ)) (proof : Q(Mathlib.Meta.NormNum.IsInt «$x» (Int.negOfNat «$lit»))) : Mathlib.Meta.NormNum.Result x - Mathlib.Meta.NormNum.Result.toInt 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {e : Q(«$α»)} (_i : Q(Ring «$α») := by with_reducible assumption) : Mathlib.Meta.NormNum.Result e → Option (ℤ × (lit : Q(ℤ)) × Q(Mathlib.Meta.NormNum.IsInt «$e» «$lit»)) - Mathlib.Meta.NormNum.mkOfNat 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} (α : Q(Type u)) (_sα : Q(AddMonoidWithOne «$α»)) (lit : Q(ℕ)) : Lean.MetaM ((a' : Q(«$α»)) × Q(↑«$lit» = «$a'»)) - Mathlib.Meta.NormNum.Result.isNNRat 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {x : Q(«$α»)} (inst : Q(DivisionSemiring «$α») := by assumption) (q : ℚ) (n d : Q(ℕ)) (proof : Q(Mathlib.Meta.NormNum.IsNNRat «$x» «$n» «$d»)) : Mathlib.Meta.NormNum.Result x - Mathlib.Meta.NormNum.Result.isNNRat' 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {x : Q(«$α»)} (inst : Q(DivisionSemiring «$α») := by assumption) (q : ℚ) (n d : Q(ℕ)) (proof : Q(Mathlib.Meta.NormNum.IsNNRat «$x» «$n» «$d»)) : Mathlib.Meta.NormNum.Result x - Mathlib.Meta.NormNum.Result.isRat 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {x : Q(«$α»)} (inst : Q(DivisionRing «$α») := by assumption) (q : ℚ) (n : Q(ℤ)) (d : Q(ℕ)) (proof : Q(Mathlib.Meta.NormNum.IsRat «$x» «$n» «$d»)) : Mathlib.Meta.NormNum.Result x - Mathlib.Meta.NormNum.Result.isNegNNRat 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {x : Q(«$α»)} (inst : Q(DivisionRing «$α») := by assumption) (q : ℚ) (n d : Q(ℕ)) (proof : Q(Mathlib.Meta.NormNum.IsRat «$x» (Int.negOfNat «$n») «$d»)) : Mathlib.Meta.NormNum.Result x - Mathlib.Meta.NormNum.Result.toNNRat' 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {e : Q(«$α»)} (_i : Q(DivisionSemiring «$α») := by with_reducible assumption) : Mathlib.Meta.NormNum.Result e → Option (ℚ × (n : Q(ℕ)) × (d : Q(ℕ)) × Q(Mathlib.Meta.NormNum.IsNNRat «$e» «$n» «$d»)) - Mathlib.Meta.NormNum.Result.toRat' 📋 Mathlib.Tactic.NormNum.Result
{u : Lean.Level} {α : Q(Type u)} {e : Q(«$α»)} (_i : Q(DivisionRing «$α») := by with_reducible assumption) : Mathlib.Meta.NormNum.Result e → Option (ℚ × (n : Q(ℤ)) × (d : Q(ℕ)) × Q(Mathlib.Meta.NormNum.IsRat «$e» «$n» «$d»)) - Qq.mkDecideProofQ 📋 Mathlib.Util.Qq
(p : Q(Prop)) : Lean.MetaM Q(«$p») - Qq.findLocalDeclWithTypeQ? 📋 Mathlib.Util.Qq
{u : Lean.Level} (sort : Q(Sort u)) : Lean.MetaM (Option Q(«$sort»)) - Qq.getLevelQ 📋 Mathlib.Util.Qq
(e : Lean.Expr) : Lean.MetaM ((u : Lean.Level) × Q(Sort u)) - Qq.getLevelQ' 📋 Mathlib.Util.Qq
(e : Lean.Expr) : Lean.MetaM ((u : Lean.Level) × Q(Type u)) - Qq.QuotedDefEq.rfl 📋 Mathlib.Util.Qq
{u : Lean.Level} {α : Q(Sort u)} {a : Q(«$α»)} : «$a» =Q «$a» - Qq.inferTypeQ' 📋 Mathlib.Util.Qq
(e : Lean.Expr) : Lean.MetaM ((u : Lean.Level) × (α : have u := u; Q(Type u)) × Q(«$α»)) - Qq.instantiateMVarsQ' 📋 Mathlib.Util.Qq
{u : Lean.Level} {α : Q(Sort u)} (e : Q(«$α»)) : Lean.MetaM ((e' : Q(«$α»)) ×' «$e'» =Q «$e») - Qq.mkSetLiteralQ 📋 Mathlib.Util.Qq
{u v : Lean.Level} {α : Q(Type u)} (β : Q(Type v)) (elems : List Q(«$α»)) : autoParam Q(EmptyCollection «$β») Qq.mkSetLiteralQ._auto_1 → autoParam Q(Singleton «$α» «$β») Qq.mkSetLiteralQ._auto_3 → autoParam Q(Insert «$α» «$β») Qq.mkSetLiteralQ._auto_5 → Q(«$β») - Mathlib.Meta.NormNum.deriveBool 📋 Mathlib.Tactic.NormNum.Core
(p : Q(Prop)) : Lean.MetaM ((b : Bool) × Mathlib.Meta.NormNum.BoolResult p b) - Mathlib.Meta.NormNum.NormNumExt.eval 📋 Mathlib.Tactic.NormNum.Core
(self : Mathlib.Meta.NormNum.NormNumExt) {u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) : Lean.MetaM (Mathlib.Meta.NormNum.Result e) - Mathlib.Meta.NormNum.derive 📋 Mathlib.Tactic.NormNum.Core
{u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) (post : Bool := false) : Lean.MetaM (Mathlib.Meta.NormNum.Result e) - Mathlib.Meta.NormNum.NormNumExt.mk 📋 Mathlib.Tactic.NormNum.Core
(pre post : Bool) (eval : {u : Lean.Level} → {α : Q(Type u)} → (e : Q(«$α»)) → Lean.MetaM (Mathlib.Meta.NormNum.Result e)) (name : Lean.Name := by exact decl_name%) : Mathlib.Meta.NormNum.NormNumExt - Mathlib.Meta.NormNum.deriveBoolOfIff 📋 Mathlib.Tactic.NormNum.Core
(p p' : Q(Prop)) (hp : Q(«$p» ↔ «$p'»)) : Lean.MetaM ((b : Bool) × Mathlib.Meta.NormNum.BoolResult p' b) - Mathlib.Meta.NormNum.deriveInt 📋 Mathlib.Tactic.NormNum.Core
{u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) (_inst : Q(Ring «$α») := by with_reducible assumption) : Lean.MetaM ((lit : Q(ℤ)) × Q(Mathlib.Meta.NormNum.IsInt «$e» «$lit»)) - Mathlib.Meta.NormNum.deriveNat 📋 Mathlib.Tactic.NormNum.Core
{u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) (_inst : Q(AddMonoidWithOne «$α») := by with_reducible assumption) : Lean.MetaM ((lit : Q(ℕ)) × Q(Mathlib.Meta.NormNum.IsNat «$e» «$lit»)) - Mathlib.Meta.NormNum.deriveRat 📋 Mathlib.Tactic.NormNum.Core
{u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) (_inst : Q(DivisionRing «$α») := by with_reducible assumption) : Lean.MetaM (ℚ × (n : Q(ℤ)) × (d : Q(ℕ)) × Q(Mathlib.Meta.NormNum.IsRat «$e» «$n» «$d»)) - Mathlib.Meta.Positivity.solve 📋 Mathlib.Tactic.Positivity.Core
(t : Q(Prop)) : Lean.MetaM Lean.Expr - Mathlib.Meta.Positivity.Strictness 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) (e : Q(«$α»)) : Option Q(PartialOrder «$α») → Type - Mathlib.Meta.Positivity.Strictness.none 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} {zα : Q(Zero «$α»)} {e : Q(«$α»)} {pα? : Option Q(PartialOrder «$α»)} : Mathlib.Meta.Positivity.Strictness zα e pα? - Mathlib.Meta.Positivity.core 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) (pα? : Option Q(PartialOrder «$α»)) (e : Q(«$α»)) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e pα?) - Mathlib.Meta.Positivity.Strictness.toString 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) {e : Q(«$α»)} {pα? : Option Q(PartialOrder «$α»)} : Mathlib.Meta.Positivity.Strictness zα e pα? → String - Mathlib.Meta.Positivity.compareHypNonzero 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) {pα? : Option Q(PartialOrder «$α»)} (e : Q(«$α»)) (ldecl : Lean.LocalDecl) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e pα?) - Mathlib.Meta.Positivity.PositivityExt.eval 📋 Mathlib.Tactic.Positivity.Core
(self : Mathlib.Meta.Positivity.PositivityExt) {u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) (pα? : Option Q(PartialOrder «$α»)) (e : Q(«$α»)) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e pα?) - Mathlib.Meta.Positivity.PositivityExt.mk 📋 Mathlib.Tactic.Positivity.Core
(eval : {u : Lean.Level} → {α : Q(Type u)} → (zα : Q(Zero «$α»)) → (pα? : Option Q(PartialOrder «$α»)) → (e : Q(«$α»)) → Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e pα?)) : Mathlib.Meta.Positivity.PositivityExt - Mathlib.Meta.Positivity.catchNone 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} {zα : Q(Zero «$α»)} {e : Q(«$α»)} {pα? : Option Q(PartialOrder «$α»)} (t : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e pα?)) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e pα?) - Mathlib.Meta.Positivity.throwNone 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} {zα : Q(Zero «$α»)} {e : Q(«$α»)} {pα? : Option Q(PartialOrder «$α»)} (t : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e pα?)) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e pα?) - Mathlib.Meta.Positivity.normNumPositivity 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) (pα : Q(PartialOrder «$α»)) (e : Q(«$α»)) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e (some pα)) - Mathlib.Meta.Positivity.positivityCanon 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) (pα : Q(PartialOrder «$α»)) (e : Q(«$α»)) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e (some pα)) - Mathlib.Meta.Positivity.compareHyp 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) (pα : Q(PartialOrder «$α»)) (e : Q(«$α»)) (ldecl : Lean.LocalDecl) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e (some pα)) - Mathlib.Meta.Positivity.orElse 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} {zα : Q(Zero «$α»)} {pα? : Option Q(PartialOrder «$α»)} {e : Q(«$α»)} (t₁ : Mathlib.Meta.Positivity.Strictness zα e pα?) (t₂ : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e pα?)) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e pα?) - Mathlib.Meta.Positivity.compareHypEq 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) (pα : Q(PartialOrder «$α»)) (e x : Q(«$α»)) (p₂ : Q(«$x» = «$e»)) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e (some pα)) - Mathlib.Meta.Positivity.Strictness.nonzero 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} {zα : Q(Zero «$α»)} {e : Q(«$α»)} {pα? : Option Q(PartialOrder «$α»)} (pf : Q(«$e» ≠ 0)) : Mathlib.Meta.Positivity.Strictness zα e pα? - Mathlib.Meta.Positivity.Strictness.toNonzero 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) {e : Q(«$α»)} {pα? : Option Q(PartialOrder «$α»)} : Mathlib.Meta.Positivity.Strictness zα e pα? → Option Q(«$e» ≠ 0) - Mathlib.Meta.Positivity.compareHypLE 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) (pα : Q(PartialOrder «$α»)) (lo e : Q(«$α»)) (p₂ : Q(«$lo» ≤ «$e»)) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e (some pα)) - Mathlib.Meta.Positivity.compareHypLT 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) (pα : Q(PartialOrder «$α»)) (lo e : Q(«$α»)) (p₂ : Q(«$lo» < «$e»)) : Lean.MetaM (Mathlib.Meta.Positivity.Strictness zα e (some pα)) - Mathlib.Meta.Positivity.Strictness.nonnegative 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} {zα : Q(Zero «$α»)} {e : Q(«$α»)} {pα : Q(PartialOrder «$α»)} (pf : Q(0 ≤ «$e»)) : Mathlib.Meta.Positivity.Strictness zα e (some pα) - Mathlib.Meta.Positivity.Strictness.positive 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} {zα : Q(Zero «$α»)} {e : Q(«$α»)} {pα : Q(PartialOrder «$α»)} (pf : Q(0 < «$e»)) : Mathlib.Meta.Positivity.Strictness zα e (some pα) - Mathlib.Meta.Positivity.Strictness.toNonneg 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) {e : Q(«$α»)} {pα : Q(PartialOrder «$α»)} : Mathlib.Meta.Positivity.Strictness zα e (some pα) → Option Q(0 ≤ «$e») - Mathlib.Meta.Positivity.Strictness.toPositive 📋 Mathlib.Tactic.Positivity.Core
{u : Lean.Level} {α : Q(Type u)} (zα : Q(Zero «$α»)) {e : Q(«$α»)} {pα : Q(PartialOrder «$α»)} : Mathlib.Meta.Positivity.Strictness zα e (some pα) → Option Q(0 < «$e») - Mathlib.Meta.NormNum.inferDivisionRing 📋 Mathlib.Tactic.NormNum.Basic
{u : Lean.Level} (α : Q(Type u)) : Lean.MetaM Q(DivisionRing «$α») - Mathlib.Meta.NormNum.inferDivisionSemiring 📋 Mathlib.Tactic.NormNum.Basic
{u : Lean.Level} (α : Q(Type u)) : Lean.MetaM Q(DivisionSemiring «$α») - Mathlib.Meta.NormNum.Result.add 📋 Mathlib.Tactic.NormNum.Basic
{u : Lean.Level} {α : Q(Type u)} {a b : Q(«$α»)} (ra : Mathlib.Meta.NormNum.Result q(«$a»)) (rb : Mathlib.Meta.NormNum.Result q(«$b»)) (inst : Q(Add «$α») := by exact q(delta% inferInstance)) : Lean.MetaM (Mathlib.Meta.NormNum.Result q(«$a» + «$b»)) - Mathlib.Meta.NormNum.Result.mul 📋 Mathlib.Tactic.NormNum.Basic
{u : Lean.Level} {α : Q(Type u)} {a b : Q(«$α»)} (ra : Mathlib.Meta.NormNum.Result q(«$a»)) (rb : Mathlib.Meta.NormNum.Result q(«$b»)) (inst : Q(Semiring «$α») := by exact q(delta% inferInstance)) : Lean.MetaM (Mathlib.Meta.NormNum.Result q(«$a» * «$b»)) - Mathlib.Meta.NormNum.Result.neg 📋 Mathlib.Tactic.NormNum.Basic
{u : Lean.Level} {α : Q(Type u)} {a : Q(«$α»)} (ra : Mathlib.Meta.NormNum.Result q(«$a»)) (rα : Q(Ring «$α») := by exact q(delta% inferInstance)) : Lean.MetaM (Mathlib.Meta.NormNum.Result q(-«$a»)) - Mathlib.Meta.NormNum.Result.sub 📋 Mathlib.Tactic.NormNum.Basic
{u : Lean.Level} {α : Q(Type u)} {a b : Q(«$α»)} (ra : Mathlib.Meta.NormNum.Result q(«$a»)) (rb : Mathlib.Meta.NormNum.Result q(«$b»)) (inst : Q(Ring «$α») := by exact q(delta% inferInstance)) : Lean.MetaM (Mathlib.Meta.NormNum.Result q(«$a» - «$b»)) - Mathlib.Tactic.FieldSimp.Sign 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} (M : Q(Type v)) : Type - Mathlib.Tactic.FieldSimp.Sign.plus 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} : Mathlib.Tactic.FieldSimp.Sign M - Mathlib.Tactic.FieldSimp.Sign.expr 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} : Mathlib.Tactic.FieldSimp.Sign M → Q(«$M») → Q(«$M») - Mathlib.Tactic.FieldSimp.Sign.minus 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} (iM : Q(Field «$M»)) : Mathlib.Tactic.FieldSimp.Sign M - Mathlib.Tactic.FieldSimp.Sign.congr 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} {y y' : Q(«$M»)} (g : Mathlib.Tactic.FieldSimp.Sign M) (pf : Q(«$y» = «$y'»)) : have a := g.expr y'; have a_1 := g.expr y; Q(«$a_1» = «$a») - Mathlib.Tactic.FieldSimp.Sign.neg 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} (iM : Q(Field «$M»)) (y : Q(«$M»)) (g : Mathlib.Tactic.FieldSimp.Sign M) : Lean.MetaM ((G : Mathlib.Tactic.FieldSimp.Sign M) × have a := G.expr y; have a_1 := g.expr y; Q(-«$a_1» = «$a»)) - Mathlib.Tactic.FieldSimp.Sign.inv 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) (y : Q(«$M»)) (g : Mathlib.Tactic.FieldSimp.Sign M) : Lean.MetaM (have a := g.expr q(«$y»⁻¹); have a_1 := g.expr y; Q(«$a_1»⁻¹ = «$a»)) - Mathlib.Tactic.FieldSimp.Sign.div 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) (y₁ y₂ : Q(«$M»)) (g₁ g₂ : Mathlib.Tactic.FieldSimp.Sign M) : Lean.MetaM ((G : Mathlib.Tactic.FieldSimp.Sign M) × have a := G.expr q(«$y₁» / «$y₂»); have a_1 := g₂.expr y₂; have a_2 := g₁.expr y₁; Q(«$a_2» / «$a_1» = «$a»)) - Mathlib.Tactic.FieldSimp.Sign.mulRight 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) (c y : Q(«$M»)) (g : Mathlib.Tactic.FieldSimp.Sign M) : Lean.MetaM (have a := g.expr y; have a_1 := g.expr q(«$c» * «$y»); Q(«$a_1» = «$c» * «$a»)) - Mathlib.Tactic.FieldSimp.Sign.zpow 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) (y : Q(«$M»)) (g : Mathlib.Tactic.FieldSimp.Sign M) (s : ℤ) : Lean.MetaM ((G : Mathlib.Tactic.FieldSimp.Sign M) × have a := G.expr q(«$y» ^ «$s»); have a_1 := g.expr y; Q(«$a_1» ^ «$s» = «$a»)) - Mathlib.Tactic.FieldSimp.Sign.mul 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) (y₁ y₂ : Q(«$M»)) (g₁ g₂ : Mathlib.Tactic.FieldSimp.Sign M) : Lean.MetaM ((G : Mathlib.Tactic.FieldSimp.Sign M) × have a := G.expr q(«$y₁» * «$y₂»); have a_1 := g₂.expr y₂; have a_2 := g₁.expr y₁; Q(«$a_2» * «$a_1» = «$a»)) - Mathlib.Tactic.FieldSimp.Sign.pow 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) (y : Q(«$M»)) (g : Mathlib.Tactic.FieldSimp.Sign M) (s : ℕ) : Lean.MetaM ((G : Mathlib.Tactic.FieldSimp.Sign M) × have a := G.expr q(«$y» ^ «$s»); have a_1 := g.expr y; Q(«$a_1» ^ «$s» = «$a»)) - Mathlib.Tactic.FieldSimp.Sign.mkEqMul 📋 Mathlib.Tactic.FieldSimp.Lemmas
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) {a b C d e : Q(«$M»)} {g : Mathlib.Tactic.FieldSimp.Sign M} (pf₁ : have a_1 := g.expr b; Q(«$a» = «$a_1»)) (pf₂ : Q(«$b» = «$C» * «$d»)) (pf₃ : Q(«$d» = «$e»)) : Lean.MetaM (have a_1 := g.expr e; Q(«$a» = «$C» * «$a_1»)) - synthesizeUsingTactic' 📋 Mathlib.Util.SynthesizeUsing
{u : Lean.Level} (type : Q(Sort u)) (tac : Lean.Syntax) : Lean.MetaM Q(«$type») - synthesizeUsing' 📋 Mathlib.Util.SynthesizeUsing
{u : Lean.Level} (type : Q(Sort u)) (tac : Lean.Elab.Tactic.TacticM Unit) : Lean.MetaM Q(«$type») - synthesizeUsingTactic 📋 Mathlib.Util.SynthesizeUsing
{u : Lean.Level} (type : Q(Sort u)) (tac : Lean.Syntax) : Lean.MetaM (List Lean.MVarId × Q(«$type»)) - synthesizeUsing 📋 Mathlib.Util.SynthesizeUsing
{u : Lean.Level} (type : Q(Sort u)) (tac : Lean.Elab.Tactic.TacticM Unit) : Lean.MetaM (List Lean.MVarId × Q(«$type»)) - Mathlib.Tactic.FieldSimp.qNF 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} (M : Q(Type v)) : Type - Mathlib.Tactic.FieldSimp.reduceExpr 📋 Mathlib.Tactic.FieldSimp
(disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) (x : Lean.Expr) : Mathlib.Tactic.AtomM Lean.Meta.Simp.Result - Mathlib.Tactic.FieldSimp.reduceProp 📋 Mathlib.Tactic.FieldSimp
(disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) (t : Lean.Expr) : Mathlib.Tactic.AtomM Lean.Meta.Simp.Result - Mathlib.Tactic.FieldSimp.qNF.onExponent 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (l : Mathlib.Tactic.FieldSimp.qNF M) (f : ℤ → ℤ) : Mathlib.Tactic.FieldSimp.qNF M - Mathlib.Tactic.FieldSimp.qNF.div 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} : Mathlib.Tactic.FieldSimp.qNF M → Mathlib.Tactic.FieldSimp.qNF M → Mathlib.Tactic.FieldSimp.qNF M - Mathlib.Tactic.FieldSimp.DenomCondition 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (iM : Q(GroupWithZero «$M»)) : Type - Mathlib.Tactic.FieldSimp.DenomCondition.none 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} {iM : Q(GroupWithZero «$M»)} : Mathlib.Tactic.FieldSimp.DenomCondition iM - Mathlib.Tactic.FieldSimp.DenomCondition.nonzero 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} {iM : Q(GroupWithZero «$M»)} : Mathlib.Tactic.FieldSimp.DenomCondition iM - Mathlib.Tactic.FieldSimp.DenomCondition.proof 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} {iM : Q(GroupWithZero «$M»)} (L : Mathlib.Tactic.FieldSimp.qNF M) : Mathlib.Tactic.FieldSimp.DenomCondition iM → Type - Mathlib.Tactic.FieldSimp.qNF.mul 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} : Mathlib.Tactic.FieldSimp.qNF q(«$M») → Mathlib.Tactic.FieldSimp.qNF q(«$M») → Mathlib.Tactic.FieldSimp.qNF q(«$M») - Mathlib.Tactic.FieldSimp.qNF.toNF 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (l : Mathlib.Tactic.FieldSimp.qNF q(«$M»)) : Q(Mathlib.Tactic.FieldSimp.NF «$M») - Mathlib.Tactic.FieldSimp.parseDischarger 📋 Mathlib.Tactic.FieldSimp
(d : Option (Lean.TSyntax `Lean.Parser.Tactic.discharger)) (args : Option (Lean.TSyntax `Lean.Parser.Tactic.simpArgs)) : Lean.Elab.Tactic.TacticM ({u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) - Mathlib.Tactic.FieldSimp.reduceExprQ 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) (iM : Q(CommGroupWithZero «$M»)) (x : Q(«$M»)) : Mathlib.Tactic.AtomM ((x' : Q(«$M»)) × Q(«$x» = «$x'»)) - Mathlib.Tactic.FieldSimp.qNF.evalPrettyMonomial 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (iM : Q(GroupWithZero «$M»)) (r : ℤ) (x : Q(«$M»)) : Lean.MetaM ((e : Q(«$M»)) × Q(Mathlib.Tactic.FieldSimp.zpow' «$x» «$r» = «$e»)) - Mathlib.Tactic.FieldSimp.reduceEqQ 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) (iM : Q(CommGroupWithZero «$M»)) (e₁ e₂ : Q(«$M»)) : Mathlib.Tactic.AtomM ((f₁ : Q(«$M»)) × (f₂ : Q(«$M»)) × Q((«$e₁» = «$e₂») = («$f₁» = «$f₂»))) - Mathlib.Tactic.FieldSimp.qNF.evalPretty 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) (l : Mathlib.Tactic.FieldSimp.qNF M) : Lean.MetaM ((e : Q(«$M»)) × have a := l.toNF; Q(«$a».eval = «$e»)) - Mathlib.Tactic.FieldSimp.DenomCondition.proofZero 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} {iM : Q(CommGroupWithZero «$M»)} (cond : Mathlib.Tactic.FieldSimp.DenomCondition q(inferInstance)) : Mathlib.Tactic.FieldSimp.DenomCondition.proof [] cond - Mathlib.Tactic.FieldSimp.normalize 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) (iM : Q(CommGroupWithZero «$M»)) (x : Q(«$M»)) : Mathlib.Tactic.AtomM ((y : Q(«$M»)) × ((g : Mathlib.Tactic.FieldSimp.Sign M) × have a := g.expr y; Q(«$x» = «$a»)) × (l : Mathlib.Tactic.FieldSimp.qNF M) × have a := l.toNF; Q(«$y» = «$a».eval)) - Mathlib.Tactic.FieldSimp.qNF.removeZeros 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) (iM : Q(CommGroupWithZero «$M»)) (l : Mathlib.Tactic.FieldSimp.qNF M) : Lean.MetaM ((l' : Mathlib.Tactic.FieldSimp.qNF M) × have a := l'.toNF; have a_1 := l.toNF; Q(«$a_1».eval = «$a».eval)) - Mathlib.Tactic.FieldSimp.qNF.tryClearZero 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) (iM : Q(CommGroupWithZero «$M»)) (r : ℤ) (x : Q(«$M»)) (i : ℕ) (l : Mathlib.Tactic.FieldSimp.qNF M) : Lean.MetaM ((l' : Mathlib.Tactic.FieldSimp.qNF M) × have a := l'.toNF; have a_1 := Mathlib.Tactic.FieldSimp.qNF.toNF (((r, x), i) :: l); Q(«$a_1».eval = «$a».eval)) - Mathlib.Tactic.FieldSimp.mkDenomConditionProofSucc' 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} {iM : Q(CommGroupWithZero «$M»)} (disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) {cond : Mathlib.Tactic.FieldSimp.DenomCondition q(inferInstance)} {L : Mathlib.Tactic.FieldSimp.qNF M} (hL : Mathlib.Tactic.FieldSimp.DenomCondition.proof L cond) (e : Q(«$M»)) (r : ℤ) (i : ℕ) : Lean.MetaM (Mathlib.Tactic.FieldSimp.DenomCondition.proof (((r, e), i) :: L) cond) - Mathlib.Tactic.FieldSimp.qNF.mkDivProof 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) (l₁ l₂ : Mathlib.Tactic.FieldSimp.qNF M) : have a := (l₁.div l₂).toNF; have a_1 := l₂.toNF; have a_2 := l₁.toNF; Q(«$a_2».eval / «$a_1».eval = «$a».eval) - Mathlib.Tactic.FieldSimp.qNF.split 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) (l : Mathlib.Tactic.FieldSimp.qNF M) : Lean.MetaM ((l_n : Mathlib.Tactic.FieldSimp.qNF M) × (l_d : Mathlib.Tactic.FieldSimp.qNF M) × have a := l_d.toNF; have a_1 := l_n.toNF; have a_2 := l.toNF; Q(«$a_2».eval = «$a_1».eval / «$a».eval)) - Mathlib.Tactic.FieldSimp.qNF.mkMulProof 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) (l₁ l₂ : Mathlib.Tactic.FieldSimp.qNF M) : have a := (l₁.mul l₂).toNF; have a_1 := l₂.toNF; have a_2 := l₁.toNF; Q(«$a_2».eval * «$a_1».eval = «$a».eval) - Mathlib.Tactic.FieldSimp.mkDenomConditionProofSucc 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} {iM : Q(CommGroupWithZero «$M»)} (disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) {cond : Mathlib.Tactic.FieldSimp.DenomCondition q(inferInstance)} {L : Mathlib.Tactic.FieldSimp.qNF M} (hL : Mathlib.Tactic.FieldSimp.DenomCondition.proof L cond) (e : Q(«$M»)) (r : ℤ) (i : ℕ) : Lean.MetaM (Q(«$e» ≠ 0) × Mathlib.Tactic.FieldSimp.DenomCondition.proof (((r, e), i) :: L) cond) - Mathlib.Tactic.FieldSimp.DenomCondition.positive 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} {iM : Q(GroupWithZero «$M»)} (iM' : Q(PartialOrder «$M»)) (iM'' : Q(PosMulStrictMono «$M»)) (iM''' : Q(PosMulReflectLT «$M»)) (iM'''' : Q(ZeroLEOneClass «$M»)) : Mathlib.Tactic.FieldSimp.DenomCondition iM - Mathlib.Tactic.FieldSimp.reduceLeQ 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) (iM : Q(CommGroupWithZero «$M»)) (iM' : Q(PartialOrder «$M»)) (iM'' : Q(PosMulStrictMono «$M»)) (iM''' : Q(PosMulReflectLE «$M»)) (iM'''' : Q(ZeroLEOneClass «$M»)) (e₁ e₂ : Q(«$M»)) : Mathlib.Tactic.AtomM ((f₁ : Q(«$M»)) × (f₂ : Q(«$M»)) × Q((«$e₁» ≤ «$e₂») = («$f₁» ≤ «$f₂»))) - Mathlib.Tactic.FieldSimp.reduceLtQ 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) (iM : Q(CommGroupWithZero «$M»)) (iM' : Q(PartialOrder «$M»)) (iM'' : Q(PosMulStrictMono «$M»)) (iM''' : Q(PosMulReflectLT «$M»)) (iM'''' : Q(ZeroLEOneClass «$M»)) (e₁ e₂ : Q(«$M»)) : Mathlib.Tactic.AtomM ((f₁ : Q(«$M»)) × (f₂ : Q(«$M»)) × Q((«$e₁» < «$e₂») = («$f₁» < «$f₂»))) - Mathlib.Tactic.FieldSimp.qNF.gcd 📋 Mathlib.Tactic.FieldSimp
{v : Lean.Level} {M : Q(Type v)} (iM : Q(CommGroupWithZero «$M»)) (l₁ l₂ : Mathlib.Tactic.FieldSimp.qNF M) (disch : {u : Lean.Level} → (type : Q(Sort u)) → Lean.MetaM Q(«$type»)) (cond : Mathlib.Tactic.FieldSimp.DenomCondition q(inferInstance)) : Lean.MetaM ((L : Mathlib.Tactic.FieldSimp.qNF M) × (l₁' : Mathlib.Tactic.FieldSimp.qNF M) × (l₂' : Mathlib.Tactic.FieldSimp.qNF M) × (have a := l₁.toNF; have a_1 := l₁'.toNF; have a_2 := L.toNF; Q(«$a_2».eval * «$a_1».eval = «$a».eval)) × (have a := l₂.toNF; have a_1 := l₂'.toNF; have a_2 := L.toNF; Q(«$a_2».eval * «$a_1».eval = «$a».eval)) × Mathlib.Tactic.FieldSimp.DenomCondition.proof L cond) - Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne 📋 Mathlib.Tactic.NormNum.Inv
{u : Lean.Level} {α : Q(Type u)} (_i : Q(AddMonoidWithOne «$α») := by with_reducible assumption) : Lean.MetaM Q(CharZero «$α») - Mathlib.Meta.NormNum.inferCharZeroOfAddMonoidWithOne? 📋 Mathlib.Tactic.NormNum.Inv
{u : Lean.Level} {α : Q(Type u)} (_i : Q(AddMonoidWithOne «$α») := by with_reducible assumption) : Lean.MetaM (Option Q(CharZero «$α»)) - Mathlib.Meta.NormNum.inferCharZeroOfRing 📋 Mathlib.Tactic.NormNum.Inv
{u : Lean.Level} {α : Q(Type u)} (_i : Q(Ring «$α») := by with_reducible assumption) : Lean.MetaM Q(CharZero «$α») - Mathlib.Meta.NormNum.inferCharZeroOfRing? 📋 Mathlib.Tactic.NormNum.Inv
{u : Lean.Level} {α : Q(Type u)} (_i : Q(Ring «$α») := by with_reducible assumption) : Lean.MetaM (Option Q(CharZero «$α»)) - Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing 📋 Mathlib.Tactic.NormNum.Inv
{u : Lean.Level} {α : Q(Type u)} (_i : Q(DivisionRing «$α») := by with_reducible assumption) : Lean.MetaM Q(CharZero «$α») - Mathlib.Meta.NormNum.inferCharZeroOfDivisionRing? 📋 Mathlib.Tactic.NormNum.Inv
{u : Lean.Level} {α : Q(Type u)} (_i : Q(DivisionRing «$α») := by with_reducible assumption) : Lean.MetaM (Option Q(CharZero «$α»)) - Mathlib.Meta.NormNum.inferCharZeroOfDivisionSemiring? 📋 Mathlib.Tactic.NormNum.Inv
{u : Lean.Level} {α : Q(Type u)} (_i : Q(DivisionSemiring «$α») := by with_reducible assumption) : Lean.MetaM (Option Q(CharZero «$α»)) - Mathlib.Meta.NormNum.Result.inv 📋 Mathlib.Tactic.NormNum.Inv
{u : Lean.Level} {α : Q(Type u)} {a : Q(«$α»)} (ra : Mathlib.Meta.NormNum.Result a) (dsα : Q(DivisionSemiring «$α»)) (czα? : Option Q(CharZero «$α»)) : Lean.MetaM (Mathlib.Meta.NormNum.Result q(«$a»⁻¹)) - Mathlib.Meta.NormNum.evalPow.core 📋 Mathlib.Tactic.NormNum.Pow
{u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) (f : Q(«$α» → ℕ → «$α»)) (a : Q(«$α»)) (b nb : Q(ℕ)) (pb : Q(Mathlib.Meta.NormNum.IsNat «$b» «$nb»)) (sα : Q(Semiring «$α»)) (ra : Mathlib.Meta.NormNum.Result a) : OptionT Lean.CoreM (Mathlib.Meta.NormNum.Result e) - Mathlib.Tactic.Ring.RatCoeff 📋 Mathlib.Tactic.Ring.Common
{u : Lean.Level} {α : Q(Type u)} (e : Q(«$α»)) : Type - Mathlib.Tactic.Ring.Common.RingCompare 📋 Mathlib.Tactic.Ring.Common
{u : Lean.Level} {α : Q(Type u)} (BaseType : Q(«$α») → Type) : Type - Mathlib.Tactic.Ring.Common.Result 📋 Mathlib.Tactic.Ring.Common
{u : Lean.Level} {α : Q(Type u)} (E : Q(«$α») → Type u_1) (e : Q(«$α»)) : Type u_1 - Mathlib.Tactic.Ring.Common.instInhabitedRatCoeff 📋 Mathlib.Tactic.Ring.Common
{a✝ : Lean.Level} {a✝¹ : Q(Type a✝)} {a✝² : Q($a✝)} : Inhabited (Mathlib.Tactic.Ring.RatCoeff a✝²) - Mathlib.Tactic.Ring.RatCoeff.value 📋 Mathlib.Tactic.Ring.Common
{u : Lean.Level} {α : Q(Type u)} {e : Q(«$α»)} (self : Mathlib.Tactic.Ring.RatCoeff e) : ℚ - Mathlib.Tactic.Ring.RatCoeff.hyp 📋 Mathlib.Tactic.Ring.Common
{u : Lean.Level} {α : Q(Type u)} {e : Q(«$α»)} (self : Mathlib.Tactic.Ring.RatCoeff e) : Option Lean.Expr - Mathlib.Tactic.Ring.RatCoeff.mk 📋 Mathlib.Tactic.Ring.Common
{u : Lean.Level} {α : Q(Type u)} {e : Q(«$α»)} (value : ℚ) (hyp : Option Lean.Expr) : Mathlib.Tactic.Ring.RatCoeff e - Mathlib.Tactic.Ring.Common.Cache 📋 Mathlib.Tactic.Ring.Common
{u : Lean.Level} {α : Q(Type u)} (sα : Q(CommSemiring «$α»)) : Type - Mathlib.Tactic.Ring.Common.Result.expr 📋 Mathlib.Tactic.Ring.Common
{u : Lean.Level} {α : Q(Type u)} {E : Q(«$α») → Type u_1} {e : Q(«$α»)} (self : Mathlib.Tactic.Ring.Common.Result E e) : Q(«$α») - Mathlib.Tactic.Ring.Common.RingCompute 📋 Mathlib.Tactic.Ring.Common
{u : Lean.Level} {α : Q(Type u)} (BaseType : Q(«$α») → Type) (sα : Q(CommSemiring «$α»)) : Type
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 4f617dc