Zulip Chat Archive
Stream: lean4
Topic: Naming convention for trace classes
Michael Rothgang (Oct 08 2025 at 20:00):
As the title says: are there any naming conventions for trace class names? (Context: I added two classes in #27021, and found little documented prior conventions on this.)
Michael Rothgang (Oct 08 2025 at 20:01):
For instance: should my trace class start with Elab. or elab.? Doing set_option trace.Elab.myFooOption reads weirdly to me; set_option trace.elab.myFooOption seems more natural.
Michael Rothgang (Oct 08 2025 at 20:04):
Looking in mathlib, there current convention seems to be
lowercase, sometimeslowerCamelCase(e.g.adaptationNote) orsnake_caseoptions (e.g., matching tactic names, such asfun_prop)- sometimes prepended by a namespace, e.g.
Meta.gcongrorTactic.to_additive - there's no consistent pattern as to whether a tactic's trace class is in the root "namespace", the
Tacticnamespace or evenMeta.Tactic. (Thecctactic also hasDebug.Meta.Tactic.cc, in addition to e.g.Meta.Tactic.cc.merge.)
Thomas Murrills (Oct 13 2025 at 23:28):
I think the last two bullets are important problems: it would be nice to have clear, predictable conventions on what the early components of the name should be.
In particular, it might be useful to choose the conventions for namespace prefixes carefully such that we can take advantage of setting inherited := true for trace classes with that prefix.
Jovan Gerbscheid (Oct 14 2025 at 08:59):
The cc one probably came from simp, where we have trace.Meta.Tactic.simp, which I think is too long of a name.
Michael Rothgang (Oct 15 2025 at 01:40):
Cross-linking #mathlib4 > Mathlib: the Missing Manuals @ 💬
Thomas Murrills (Oct 15 2025 at 04:11):
Here's the first step of listing the available trace classes, in a manner roughly similar to what @Anne Baanen said in that thread. :)
This also sorts by name, and hijacks trace node folding to let you peek at the declaration module and docstring (if it has one). Uncomment (collapsed := false) to make all expanded by default. (Most of this code is for sorting by name, and probably already available somewhere...)
#show_trace_classes
import Lean
import Mathlib
open Lean
namespace Lean.Name
protected inductive Component where
| str (s : String)
| num (n : Nat)
def toComponentsRev : Name → List Name.Component
| .anonymous => []
| .num n k => .num k :: toComponentsRev n
| .str n s => .str s :: toComponentsRev n
def toComponents (n : Name) : List Name.Component := n.toComponentsRev.reverse
instance : Ord Name.Component where
compare
| .str _, .num _ => .gt
| .num _, .str _ => .lt
| .num n, .num k => compare n k
| .str s, .str t => compare s t
local instance : Ord Name where
compare n m := compare n.toComponents m.toComponents
local instance : Ord (Name × OptionDecl) where
compare o₁ o₂ := compare o₁.1 o₂.1
def getTraceClasses : IO (Array (Name × OptionDecl)) :=
return (← getOptionDeclsArray).filter fun (name, _) => name.getRoot == `trace
def _root_.Lean.Environment.getModuleName (env : Environment) (idx : Nat) :
Option Name := env.header.modules[idx]?.map (·.module)
def getModule (n : Name) (env : Environment) : Name :=
env.getModuleIdxFor? n |>.bind env.getModuleName |>.getD .anonymous
-- Surely this exists somewhere already, implemented better.
def _root_.Array.tallyResult {α β} [BEq β] (arr : Array α) (f : α → β) : Array (β × Nat):= Id.run do
let mut collected : Array (β × Nat) := #[]
for a in arr do collected := tallyOne collected (f a)
return collected
where
tallyOne (collected : Array (β × Nat)) (b : β) : Array (β × Nat) := Id.run do
for h : i in 0...collected.size do
if collected[i].1 == b then
return collected.modify i fun (b, n) => (b, n+1)
return collected.push (b,1)
elab "#show_trace_classes" : command => do
let env ← getEnv
let arr := (← getTraceClasses).qsortOrd
let arr := arr.map fun i => (i.2.declName.getModule env |>.getRoot, i)
trace[debug] "Found {arr.size} trace classes.\n{arr.tallyResult (·.1)}\n"
for (mod, name, decl) in arr do
withTraceNode `debug (fun _ => return m!"{mod.getRoot.toString.rightpad 10}{name}") /- (collapsed := false) -/ do
trace[debug] "{mod}"
if let some doc ← findDocString? env decl.declName then
trace[debug] "{doc}"
set_option trace.debug true in
#show_trace_classes
Thomas Murrills (Oct 15 2025 at 04:37):
This code now also prefixes the list with the counts:
Found 442 trace classes.
[(Aesop, 13), (Mathlib, 56), (Lean, 365), (Batteries, 1), ([anonymous], 1), (Plausible, 6)]
Michael Rothgang (Oct 15 2025 at 10:19):
Lean trace classes, part 1
[debug] Lean trace.Compiler ▶
[debug] Lean trace.Compiler.commonJoinPointArgs ▶
[debug] Lean trace.Compiler.cse ▶
[debug] Lean trace.Compiler.eagerLambdaLifting ▶
[debug] Lean trace.Compiler.elimDeadBranches ▶
[debug] Lean trace.Compiler.extendJoinPointContext ▶
[debug] Lean trace.Compiler.extractClosed ▶
[debug] Lean trace.Compiler.findJoinPoints ▶
[debug] Lean trace.Compiler.floatLetIn ▶
[debug] Lean trace.Compiler.inferVisibility ▶
[debug] Lean trace.Compiler.init ▶
[debug] Lean trace.Compiler.jp ▶
[debug] Lean trace.Compiler.lambdaLifting ▶
[debug] Lean trace.Compiler.probe ▶
[debug] Lean trace.Compiler.pullFunDecls ▶
[debug] Lean trace.Compiler.pullInstances ▶
[debug] Lean trace.Compiler.reduceArity ▶
[debug] Lean trace.Compiler.reduceJpArity ▶
[debug] Lean trace.Compiler.result ▶
[debug] Lean trace.Compiler.saveBase ▶
[debug] Lean trace.Compiler.saveMono ▶
[debug] Lean trace.Compiler.simp ▶
[debug] Lean trace.Compiler.simp.inline ▶
[debug] Lean trace.Compiler.simp.jpCases ▶
[debug] Lean trace.Compiler.simp.stat ▶
[debug] Lean trace.Compiler.simp.step ▶
[debug] Lean trace.Compiler.simp.step.new ▶
[debug] Lean trace.Compiler.specialize ▶
[debug] Lean trace.Compiler.specialize.candidate ▶
[debug] Lean trace.Compiler.specialize.info ▶
[debug] Lean trace.Compiler.specialize.step ▶
[debug] Lean trace.Compiler.stat ▶
[debug] Lean trace.Compiler.structProjCases ▶
[debug] Lean trace.Compiler.test ▶
[debug] Lean trace.Compiler.toMono ▶
[debug] Lean trace.Compiler.trace ▶
[debug] Lean trace.Debug.Meta.Tactic.simp ▶
[debug] Lean trace.Debug.Meta.Tactic.simp.congr ▶
[debug] Lean trace.Elab ▶
[debug] Lean trace.Elab.Deriving ▶
[debug] Lean trace.Elab.Deriving.RpcEncodable ▶
[debug] Lean trace.Elab.Deriving.beq ▶
[debug] Lean trace.Elab.Deriving.decEq ▶
[debug] Lean trace.Elab.Deriving.fromJson ▶
[debug] Lean trace.Elab.Deriving.hashable ▶
[debug] Lean trace.Elab.Deriving.inhabited ▶
[debug] Lean trace.Elab.Deriving.ord ▶
[debug] Lean trace.Elab.Deriving.repr ▶
[debug] Lean trace.Elab.Deriving.toExpr ▶
[debug] Lean trace.Elab.Deriving.toJson ▶
[debug] Lean trace.Elab.Tactic.Do.spec ▶
[debug] Lean trace.Elab.Tactic.Do.specAttr ▶
[debug] Lean trace.Elab.Tactic.Do.vcgen ▶
[debug] Lean trace.Elab.Tactic.monotonicity ▶
[debug] Lean trace.Elab.app ▶
[debug] Lean trace.Elab.app.args ▶
[debug] Lean trace.Elab.app.elab_as_elim ▶
[debug] Lean trace.Elab.app.finalize ▶
[debug] Lean trace.Elab.app.propagateExpectedType ▶
[debug] Lean trace.Elab.async ▶
[debug] Lean trace.Elab.autoParam ▶
[debug] Lean trace.Elab.axiom ▶
[debug] Lean trace.Elab.binop ▶
[debug] Lean trace.Elab.binrel ▶
[debug] Lean trace.Elab.block ▶
[debug] Lean trace.Elab.cases ▶
[debug] Lean trace.Elab.coe ▶
[debug] Lean trace.Elab.command ▶
[debug] Lean trace.Elab.debug ▶
[debug] Lean trace.Elab.defaultInstance ▶
[debug] Lean trace.Elab.definition ▶
[debug] Lean trace.Elab.definition.body ▶
[debug] Lean trace.Elab.definition.eqns ▶
[debug] Lean trace.Elab.definition.fixedParams ▶
[debug] Lean trace.Elab.definition.header ▶
[debug] Lean trace.Elab.definition.mkClosure ▶
[debug] Lean trace.Elab.definition.partialFixpoint ▶
[debug] Lean trace.Elab.definition.partialFixpoint.induction ▶
[debug] Lean trace.Elab.definition.scc ▶
[debug] Lean trace.Elab.definition.structural ▶
[debug] Lean trace.Elab.definition.structural.eqns ▶
[debug] Lean trace.Elab.definition.unfoldEqn ▶
[debug] Lean trace.Elab.definition.value ▶
[debug] Lean trace.Elab.definition.wf ▶
[debug] Lean trace.Elab.definition.wf.eqns ▶
[debug] Lean trace.Elab.do ▶
[debug] Lean trace.Elab.eval ▶
[debug] Lean trace.Elab.implicitForall ▶
[debug] Lean trace.Elab.induction ▶
[debug] Lean trace.Elab.inductive ▶
[debug] Lean trace.Elab.info ▶
[debug] Lean trace.Elab.input ▶
[debug] Lean trace.Elab.instance.mkInstanceName ▶
[debug] Lean trace.Elab.let ▶
[debug] Lean trace.Elab.let.decl ▶
[debug] Lean trace.Elab.letrec ▶
[debug] Lean trace.Elab.lint ▶
[debug] Lean trace.Elab.match ▶
[debug] Lean trace.Elab.match_syntax ▶
[debug] Lean trace.Elab.match_syntax.alt ▶
[debug] Lean trace.Elab.match_syntax.onMatch ▶
[debug] Lean trace.Elab.match_syntax.result ▶
[debug] Lean trace.Elab.postpone ▶
[debug] Lean trace.Elab.resume ▶
[debug] Lean trace.Elab.reuse ▶
[debug] Lean trace.Elab.snapshotTree ▶
[debug] Lean trace.Elab.step ▶
[debug] Lean trace.Elab.step.result ▶
[debug] Lean trace.Elab.struct ▶
[debug] Lean trace.Elab.struct.modifyOp ▶
[debug] Lean trace.Elab.structure ▶
[debug] Lean trace.Elab.structure.resolutionOrder ▶
[debug] Lean trace.Elab.tactic ▶
[debug] Lean trace.Elab.tactic.backtrack ▶
[debug] Lean trace.Kernel ▶
[debug] Lean trace.Meta ▶
[debug] Lean trace.Meta.AC ▶
[debug] Lean trace.Meta.FunInd ▶
[debug] Lean trace.Meta.IndPredBelow ▶
[debug] Lean trace.Meta.IndPredBelow.match ▶
[debug] Lean trace.Meta.Match ▶
[debug] Lean trace.Meta.Match.debug ▶
[debug] Lean trace.Meta.Match.match ▶
[debug] Lean trace.Meta.Match.matchEqs ▶
[debug] Lean trace.Meta.Match.unify ▶
[debug] Lean trace.Meta.Tactic ▶
[debug] Lean trace.Meta.Tactic.Do.cases ▶
[debug] Lean trace.Meta.Tactic.Do.specialize ▶
[debug] Lean trace.Meta.Tactic.acyclic ▶
[debug] Lean trace.Meta.Tactic.bv ▶
[debug] Lean trace.Meta.Tactic.cases ▶
[debug] Lean trace.Meta.Tactic.contradiction ▶
[debug] Lean trace.Meta.Tactic.induction ▶
[debug] Lean trace.Meta.Tactic.sat ▶
[debug] Lean trace.Meta.Tactic.simp ▶
[debug] Lean trace.Meta.Tactic.simp.all ▶
[debug] Lean trace.Meta.Tactic.simp.congr ▶
[debug] Lean trace.Meta.Tactic.simp.discharge ▶
[debug] Lean trace.Meta.Tactic.simp.ground ▶
[debug] Lean trace.Meta.Tactic.simp.heads ▶
[debug] Lean trace.Meta.Tactic.simp.loopProtection ▶
[debug] Lean trace.Meta.Tactic.simp.numSteps ▶
[debug] Lean trace.Meta.Tactic.simp.rewrite ▶
[debug] Lean trace.Meta.Tactic.simp.unify ▶
[debug] Lean trace.Meta.Tactic.solveByElim ▶
[debug] Lean trace.Meta.Tactic.splitIf ▶
[debug] Lean trace.Meta.Tactic.subst ▶
[debug] Lean trace.Meta.appBuilder ▶
[debug] Lean trace.Meta.appBuilder.error ▶
[debug] Lean trace.Meta.appBuilder.result ▶
[debug] Lean trace.Meta.check ▶
[debug] Lean trace.Meta.debug ▶
[debug] Lean trace.Meta.injective ▶
[debug] Lean trace.Meta.instantiateMVars ▶
[debug] Lean trace.Meta.isDefEq ▶
[debug] Lean trace.Meta.isDefEq.assign ▶
[debug] Lean trace.Meta.isDefEq.assign.beforeMkLambda ▶
[debug] Lean trace.Meta.isDefEq.assign.checkTypes ▶
[debug] Lean trace.Meta.isDefEq.assign.occursCheck ▶
[debug] Lean trace.Meta.isDefEq.assign.outOfScopeFVar ▶
[debug] Lean trace.Meta.isDefEq.assign.readOnlyMVarWithBiggerLCtx ▶
[debug] Lean trace.Meta.isDefEq.assign.typeError ▶
[debug] Lean trace.Meta.isDefEq.cache ▶
[debug] Lean trace.Meta.isDefEq.constApprox ▶
[debug] Lean trace.Meta.isDefEq.delta ▶
[debug] Lean trace.Meta.isDefEq.delta.unfoldLeft ▶
[debug] Lean trace.Meta.isDefEq.delta.unfoldLeftRight ▶
[debug] Lean trace.Meta.isDefEq.delta.unfoldRight ▶
[debug] Lean trace.Meta.isDefEq.eta.struct ▶
[debug] Lean trace.Meta.isDefEq.foApprox ▶
[debug] Lean trace.Meta.isDefEq.hint ▶
[debug] Lean trace.Meta.isDefEq.onFailure ▶
[debug] Lean trace.Meta.isDefEq.stuck ▶
[debug] Lean trace.Meta.isDefEq.stuckMVar ▶
[debug] Lean trace.Meta.isDefEq.whnf.reduceBinOp ▶
[debug] Lean trace.Meta.isLevelDefEq ▶
[debug] Lean trace.Meta.isLevelDefEq.postponed ▶
[debug] Lean trace.Meta.isLevelDefEq.step ▶
[debug] Lean trace.Meta.isLevelDefEq.stuck ▶
[debug] Lean trace.Meta.letToHave ▶
[debug] Lean trace.Meta.letToHave.debug ▶
[debug] Lean trace.Meta.mkBRecOn ▶
[debug] Lean trace.Meta.mkCasesOn ▶
[debug] Lean trace.Meta.mkNoConfusion ▶
[debug] Lean trace.Meta.realizeConst ▶
[debug] Lean trace.Meta.sizeOf ▶
[debug] Lean trace.Meta.sizeOf.aux ▶
[debug] Lean trace.Meta.sizeOf.loop ▶
[debug] Lean trace.Meta.sizeOf.minor ▶
[debug] Lean trace.Meta.sizeOf.minor.step ▶
[debug] Lean trace.Meta.synthInstance ▶
[debug] Lean trace.Meta.synthInstance.answer ▶
[debug] Lean trace.Meta.synthInstance.instances ▶
[debug] Lean trace.Meta.synthInstance.newAnswer ▶
[debug] Lean trace.Meta.synthInstance.resume ▶
[debug] Lean trace.Meta.synthInstance.tryResolve ▶
[debug] Lean trace.Meta.synthInstance.unusedArgs ▶
[debug] Lean trace.Meta.synthOrder ▶
[debug] Lean trace.Meta.synthPending ▶
[debug] Lean trace.Meta.whnf ▶
Michael Rothgang (Oct 15 2025 at 10:19):
Lean trace classes, part 2
[debug] Lean trace.PrettyPrinter ▶
[debug] Lean trace.PrettyPrinter.delab ▶
[debug] Lean trace.PrettyPrinter.delab.input ▶
[debug] Lean trace.PrettyPrinter.format ▶
[debug] Lean trace.PrettyPrinter.format.backtrack ▶
[debug] Lean trace.PrettyPrinter.format.input ▶
[debug] Lean trace.PrettyPrinter.parenthesize ▶
[debug] Lean trace.PrettyPrinter.parenthesize.backtrack ▶
[debug] Lean trace.PrettyPrinter.parenthesize.input ▶
[debug] Lean trace.ReservedNameAction ▶
[debug] Lean trace.Tactic.librarySearch ▶
[debug] Lean trace.Tactic.librarySearch.lemmas ▶
[debug] Lean trace.Tactic.norm_cast ▶
[debug] Lean trace.Tactic.rewrites ▶
[debug] Lean trace.Tactic.rewrites.lemmas ▶
[debug] Lean trace.compiler.ir ▶
[debug] Lean trace.compiler.ir.borrow ▶
[debug] Lean trace.compiler.ir.boxing ▶
[debug] Lean trace.compiler.ir.elim_dead ▶
[debug] Lean trace.compiler.ir.elim_dead_branches ▶
[debug] Lean trace.compiler.ir.expand_reset_reuse ▶
[debug] Lean trace.compiler.ir.inferMeta ▶
[debug] Lean trace.compiler.ir.init ▶
[debug] Lean trace.compiler.ir.push_proj ▶
[debug] Lean trace.compiler.ir.rc ▶
[debug] Lean trace.compiler.ir.reset_reuse ▶
[debug] Lean trace.compiler.ir.result ▶
[debug] Lean trace.compiler.ir.simp_case ▶
[debug] Lean trace.congr.thm ▶
[debug] Lean trace.omega ▶
[debug] Lean trace.pp.analyze ▶
[debug] Lean trace.pp.analyze.annotate ▶
[debug] Lean trace.pp.analyze.error ▶
[debug] Lean trace.pp.analyze.tryUnify ▶
[debug] Lean trace.profiler ▶
[debug] Lean trace.profiler.output ▶
[debug] Lean trace.profiler.output.pp ▶
[debug] Lean trace.profiler.threshold ▶
[debug] Lean trace.profiler.useHeartbeats ▶
[debug] Lean trace.split.debug ▶
[debug] Lean trace.split.failure ▶
[debug] Lean trace.try ▶
[debug] Lean trace.try.collect ▶
[debug] Lean trace.try.collect.funInd ▶
[debug] Lean trace.try.debug ▶
[debug] Lean trace.try.debug.chain ▶
[debug] Lean trace.try.debug.funInd ▶
Michael Rothgang (Oct 15 2025 at 10:20):
Lean trace classes, part 3 (everything about grind)
[debug] Lean trace.grind ▶
[debug] Lean trace.grind.ac ▶
[debug] Lean trace.grind.ac.assert ▶
[debug] Lean trace.grind.ac.basis ▶
[debug] Lean trace.grind.ac.internalize ▶
[debug] Lean trace.grind.assert ▶
[debug] Lean trace.grind.beta ▶
[debug] Lean trace.grind.cutsat ▶
[debug] Lean trace.grind.cutsat.assert ▶
[debug] Lean trace.grind.cutsat.assert.nonlinear ▶
[debug] Lean trace.grind.cutsat.assert.store ▶
[debug] Lean trace.grind.cutsat.assert.trivial ▶
[debug] Lean trace.grind.cutsat.assert.unsat ▶
[debug] Lean trace.grind.cutsat.model ▶
[debug] Lean trace.grind.cutsat.nonlinear ▶
[debug] Lean trace.grind.debug ▶
[debug] Lean trace.grind.debug.ac.check ▶
[debug] Lean trace.grind.debug.ac.eq ▶
[debug] Lean trace.grind.debug.ac.op ▶
[debug] Lean trace.grind.debug.ac.queue ▶
[debug] Lean trace.grind.debug.ac.simp ▶
[debug] Lean trace.grind.debug.ac.superpose ▶
[debug] Lean trace.grind.debug.appMap ▶
[debug] Lean trace.grind.debug.beta ▶
[debug] Lean trace.grind.debug.canon ▶
[debug] Lean trace.grind.debug.congr ▶
[debug] Lean trace.grind.debug.cutsat.elimEq ▶
[debug] Lean trace.grind.debug.cutsat.internalize ▶
[debug] Lean trace.grind.debug.cutsat.search ▶
[debug] Lean trace.grind.debug.cutsat.search.assign ▶
[debug] Lean trace.grind.debug.cutsat.search.backtrack ▶
[debug] Lean trace.grind.debug.cutsat.search.cnstrs ▶
[debug] Lean trace.grind.debug.cutsat.search.conflict ▶
[debug] Lean trace.grind.debug.cutsat.search.reorder ▶
[debug] Lean trace.grind.debug.cutsat.search.split ▶
[debug] Lean trace.grind.debug.cutsat.subst ▶
[debug] Lean trace.grind.debug.cutsat.toInt ▶
[debug] Lean trace.grind.debug.ematch ▶
[debug] Lean trace.grind.debug.ematch.activate ▶
[debug] Lean trace.grind.debug.ematch.pattern ▶
[debug] Lean trace.grind.debug.ext ▶
[debug] Lean trace.grind.debug.final ▶
[debug] Lean trace.grind.debug.forallPropagator ▶
[debug] Lean trace.grind.debug.internalize ▶
[debug] Lean trace.grind.debug.linarith.search ▶
[debug] Lean trace.grind.debug.linarith.search.assign ▶
[debug] Lean trace.grind.debug.linarith.search.backtrack ▶
[debug] Lean trace.grind.debug.linarith.search.conflict ▶
[debug] Lean trace.grind.debug.linarith.search.split ▶
[debug] Lean trace.grind.debug.linarith.subst ▶
[debug] Lean trace.grind.debug.matchCond ▶
[debug] Lean trace.grind.debug.matchCond.lambda ▶
[debug] Lean trace.grind.debug.matchCond.proveFalse ▶
[debug] Lean trace.grind.debug.mbtc ▶
[debug] Lean trace.grind.debug.offset ▶
[debug] Lean trace.grind.debug.offset.proof ▶
[debug] Lean trace.grind.debug.parent ▶
[debug] Lean trace.grind.debug.proj ▶
[debug] Lean trace.grind.debug.proof ▶
[debug] Lean trace.grind.debug.proofs ▶
[debug] Lean trace.grind.debug.proveEq ▶
[debug] Lean trace.grind.debug.pushNewFact ▶
[debug] Lean trace.grind.debug.ring.basis ▶
[debug] Lean trace.grind.debug.ring.check ▶
[debug] Lean trace.grind.debug.ring.impEq ▶
[debug] Lean trace.grind.debug.ring.proof ▶
[debug] Lean trace.grind.debug.ring.rabinowitsch ▶
[debug] Lean trace.grind.debug.ring.simp ▶
[debug] Lean trace.grind.debug.ring.simpBasis ▶
[debug] Lean trace.grind.debug.split ▶
[debug] Lean trace.grind.ematch ▶
[debug] Lean trace.grind.ematch.instance ▶
[debug] Lean trace.grind.ematch.instance.assignment ▶
[debug] Lean trace.grind.ematch.pattern ▶
[debug] Lean trace.grind.eqResolution ▶
[debug] Lean trace.grind.eqc ▶
[debug] Lean trace.grind.ext ▶
[debug] Lean trace.grind.ext.candidate ▶
[debug] Lean trace.grind.internalize ▶
[debug] Lean trace.grind.issues ▶
[debug] Lean trace.grind.linarith ▶
[debug] Lean trace.grind.linarith.assert ▶
[debug] Lean trace.grind.linarith.assert.ignored ▶
[debug] Lean trace.grind.linarith.assert.store ▶
[debug] Lean trace.grind.linarith.assert.trivial ▶
[debug] Lean trace.grind.linarith.assert.unsat ▶
[debug] Lean trace.grind.linarith.internalize ▶
[debug] Lean trace.grind.linarith.model ▶
[debug] Lean trace.grind.lookahead ▶
[debug] Lean trace.grind.lookahead.add ▶
[debug] Lean trace.grind.lookahead.assert ▶
[debug] Lean trace.grind.lookahead.try ▶
[debug] Lean trace.grind.mbtc ▶
[debug] Lean trace.grind.offset ▶
[debug] Lean trace.grind.offset.dist ▶
[debug] Lean trace.grind.offset.eq ▶
[debug] Lean trace.grind.offset.eq.from ▶
[debug] Lean trace.grind.offset.eq.to ▶
[debug] Lean trace.grind.offset.internalize ▶
[debug] Lean trace.grind.offset.internalize.term ▶
[debug] Lean trace.grind.offset.model ▶
[debug] Lean trace.grind.offset.propagate ▶
[debug] Lean trace.grind.ring ▶
[debug] Lean trace.grind.ring.assert ▶
[debug] Lean trace.grind.ring.assert.basis ▶
[debug] Lean trace.grind.ring.assert.queue ▶
[debug] Lean trace.grind.ring.assert.store ▶
[debug] Lean trace.grind.ring.assert.trivial ▶
[debug] Lean trace.grind.ring.assert.unsat ▶
[debug] Lean trace.grind.ring.impEq ▶
[debug] Lean trace.grind.ring.internalize ▶
[debug] Lean trace.grind.ring.simp ▶
[debug] Lean trace.grind.ring.superpose ▶
[debug] Lean trace.grind.simp ▶
[debug] Lean trace.grind.split ▶
[debug] Lean trace.grind.split.candidate ▶
[debug] Lean trace.grind.split.resolved ▶
[debug] Lean trace.grind.trace ▶
Michael Rothgang (Oct 15 2025 at 10:21):
All trace classes not in Lean
[debug] Aesop trace.Aesop.Util.EqualUpToIds ▶
[debug] Mathlib trace.CancelDenoms ▶
[debug] Mathlib trace.Debug.Meta.Tactic.cc ▶
[debug] Mathlib trace.Debug.Meta.Tactic.cc.ac ▶
[debug] Mathlib trace.Debug.Meta.Tactic.cc.parentOccs ▶
[debug] Mathlib trace.Debug.Meta.Tactic.fun_prop ▶
[debug] Mathlib trace.Elab.Deriving.fintype ▶
[debug] Mathlib trace.Elab.DiffGeo ▶
[debug] Mathlib trace.Elab.DiffGeo.MDiff ▶
[debug] Mathlib trace.Elab.DiffGeo.TotalSpaceMk ▶
[debug] Mathlib trace.Elab.ProxyType ▶
[debug] Mathlib trace.Elab.congr ▶
[debug] Mathlib trace.Elab.fast_instance ▶
[debug] Mathlib trace.Elab.fbinop ▶
[debug] Mathlib trace.Mathlib.Deriving.Encodable ▶
[debug] Mathlib trace.Mathlib.Deriving.countable ▶
[debug] Mathlib trace.Meta.CongrTheorems ▶
[debug] Mathlib trace.Meta.Tactic.cc.failure ▶
[debug] Mathlib trace.Meta.Tactic.cc.merge ▶
[debug] Mathlib trace.Meta.Tactic.fun_prop ▶
[debug] Mathlib trace.Meta.Tactic.fun_prop.attr ▶
[debug] Mathlib trace.Meta.gcongr ▶
[debug] Mathlib trace.Tactic.compute_degree ▶
[debug] Mathlib trace.Tactic.congrm ▶
[debug] Mathlib trace.Tactic.depRewrite ▶
[debug] Mathlib trace.Tactic.depRewrite.cast ▶
[debug] Mathlib trace.Tactic.depRewrite.visit ▶
[debug] Mathlib trace.Tactic.field_simp ▶
[debug] Mathlib trace.Tactic.generalize_proofs ▶
[debug] Mathlib trace.Tactic.move_oper ▶
[debug] Mathlib trace.Tactic.norm_num ▶
[debug] Mathlib trace.Tactic.positivity ▶
[debug] Mathlib trace.Tactic.positivity.failure ▶
[debug] Mathlib trace.Tactic.propose ▶
[debug] Batteries trace.Tactic.trans ▶
[debug] Mathlib trace.abel ▶
[debug] Mathlib trace.abel.detail ▶
[debug] Mathlib trace.adaptationNote ▶
[debug] Aesop trace.aesop ▶
[debug] Aesop trace.aesop.debug ▶
[debug] Aesop trace.aesop.extraction ▶
[debug] Aesop trace.aesop.forward ▶
[debug] Aesop trace.aesop.forward.debug ▶
[debug] Aesop trace.aesop.proof ▶
[debug] Aesop trace.aesop.rpinf ▶
[debug] Aesop trace.aesop.ruleSet ▶
[debug] Aesop trace.aesop.script ▶
[debug] Aesop trace.aesop.stats ▶
[debug] Aesop trace.aesop.tree ▶
[debug] Mathlib trace.apply_fun ▶
[debug] Mathlib trace.bicategory ▶
[debug] Mathlib trace.bound.attribute ▶
[debug] Mathlib trace.congr! ▶
[debug] Mathlib trace.congr!.synthesize ▶
[debug] [anonymous]trace.debug ▶
[debug] Mathlib trace.explode ▶
[debug] Mathlib trace.linarith ▶
[debug] Mathlib trace.linarith.detail ▶
[debug] Mathlib trace.monoidal ▶
[debug] Mathlib trace.notation3 ▶
[debug] Mathlib trace.order ▶
[debug] Plausible trace.plausible.decoration ▶
[debug] Plausible trace.plausible.discarded ▶
[debug] Plausible trace.plausible.instance ▶
[debug] Plausible trace.plausible.shrink.candidates ▶
[debug] Plausible trace.plausible.shrink.steps ▶
[debug] Plausible trace.plausible.success ▶
[debug] Mathlib trace.rw?? ▶
[debug] Aesop trace.saturate ▶
[debug] Mathlib trace.simps.debug ▶
[debug] Mathlib trace.simps.verbose ▶
[debug] Mathlib trace.string_diagram ▶
[debug] Mathlib trace.tactic.use ▶
[debug] Mathlib trace.tauto ▶
[debug] Mathlib trace.to_additive ▶
[debug] Mathlib trace.to_additive_detail ▶
[debug] Mathlib trace.variable? ▶
Last updated: Dec 20 2025 at 21:32 UTC