File: .lake/packages/lean4/src/lean/Lean/Meta/Tactic/LinearArith/Nat/Basic.lean

full_name: Lean.Meta.Linear.Nat.«instReprExpr_.lake»
code: Repr
goal: Repr Nat.Linear.Expr

full_name: Lean.Meta.Linear.Nat.«instReprExprCnstr_.lake»
code: Repr
goal: Repr Nat.Linear.ExprCnstr

full_name: Lean.Meta.Linear.Nat.«instReprPolyCnstr_.lake»
code: Repr
goal: Repr Nat.Linear.PolyCnstr

full_name: Lean.Meta.Linear.Nat.LinearExpr
code: abbrev LinearExpr  
goal: Type

full_name: Lean.Meta.Linear.Nat.LinearCnstr
code: abbrev LinearCnstr 
goal: Type

full_name: Lean.Meta.Linear.Nat.PolyExpr
code: abbrev PolyExpr 
goal: Type

full_name: Lean.Meta.Linear.Nat.LinearExpr.toExpr
code: def LinearExpr.toExpr (e : LinearExpr) : Expr 
goal: Lean.Expr

full_name: Lean.Meta.Linear.Nat.instToExprLinearExpr
code: instance : ToExpr LinearExpr 
goal: Lean.ToExpr Lean.Meta.Linear.Nat.LinearExpr

full_name: Lean.Meta.Linear.Nat.LinearCnstr.toExpr
code: protected def LinearCnstr.toExpr (c : LinearCnstr) : Expr 
goal: Lean.Expr

full_name: Lean.Meta.Linear.Nat.instToExprLinearCnstr
code: instance : ToExpr LinearCnstr 
goal: Lean.ToExpr Lean.Meta.Linear.Nat.LinearCnstr

full_name: Lean.Meta.Linear.Nat.LinearExpr.toArith
code: def LinearExpr.toArith (ctx : Array Expr) (e : LinearExpr) : MetaM Expr 
goal: Lean.MetaM Lean.Expr

full_name: Lean.Meta.Linear.Nat.LinearCnstr.toArith
code: def LinearCnstr.toArith (ctx : Array Expr) (c : LinearCnstr) : MetaM Expr 
goal: Lean.MetaM Lean.Expr

full_name: Lean.Meta.Linear.Nat.ToLinear.State.vars
code: structure State where
  varMap : KExprMap Nat := {} -- It should be fine to use `KExprMap` here because the mapping should be small and few HeadIndex collisions.
  vars   : Array Expr := #[]
goal: Array Lean.Expr

full_name: Lean.Meta.Linear.Nat.ToLinear.State.varMap
code: structure State where
  varMap : KExprMap Nat := {} -- It should be fine to use `KExprMap` here because the mapping should be small and few HeadIndex collisions.
  vars   : Array Expr := #[]
goal: Lean.Meta.KExprMap Nat

full_name: Lean.Meta.Linear.Nat.ToLinear.State
code: structure State where
  varMap : KExprMap Nat := {} -- It should be fine to use `KExprMap` here because the mapping should be small and few HeadIndex collisions.
  vars   : Array Expr := #[]
goal: Type

full_name: Lean.Meta.Linear.Nat.ToLinear.M
code: abbrev M 
goal: Type

full_name: Lean.Meta.Linear.Nat.ToLinear.addAsVar
code: def addAsVar (e : Expr) : M LinearExpr 
goal: Lean.Meta.Linear.Nat.ToLinear.M Lean.Meta.Linear.Nat.LinearExpr

full_name: Lean.Meta.Linear.Nat.ToLinear.toLinearExpr.visit
code: partial def toLinearExpr (e : Expr) : M LinearExpr 
goal: Lean.Meta.Linear.Nat.ToLinear.M Lean.Meta.Linear.Nat.LinearExpr

full_name: Lean.Meta.Linear.Nat.ToLinear.toLinearExpr
code: partial def toLinearExpr (e : Expr) : M LinearExpr 
goal: Lean.Meta.Linear.Nat.ToLinear.M Lean.Meta.Linear.Nat.LinearExpr

full_name: Lean.Meta.Linear.Nat.ToLinear.toLinearCnstr?
code: partial def toLinearCnstr? (e : Expr) : M (Option LinearCnstr) 
goal: Lean.Meta.Linear.Nat.ToLinear.M (Option Lean.Meta.Linear.Nat.LinearCnstr)

full_name: Lean.Meta.Linear.Nat.ToLinear.run
code: def run (x : M α) : MetaM (α × Array Expr) 
goal: Lean.MetaM (α × Array Lean.Expr)

full_name: Lean.Meta.Linear.Nat.toContextExpr
code: def toContextExpr (ctx : Array Expr) : MetaM Expr 
goal: Lean.MetaM Lean.Expr

full_name: Lean.Meta.Linear.Nat.reflTrue
code: def reflTrue : Expr 
goal: Lean.Expr