@[reducible, inline]
Equations
Instances For
@[reducible, inline]
abbrev Lean.Meta.Grind.Arith.CommRing.SemiringM.run {α : Type} (semiringId : Nat) (x : SemiringM α) :
GoalM α
Equations
- Lean.Meta.Grind.Arith.CommRing.SemiringM.run semiringId x = x { semiringId := semiringId }
Instances For
@[reducible, inline]
Equations
- Lean.Meta.Grind.Arith.CommRing.getSemiringId = do let __do_lift ← read pure __do_lift.semiringId
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
The Sym.Arith classification record of the current semiring.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
def Lean.Meta.Grind.Arith.CommRing.SemiringM.modifyCommSemiring (f : Sym.Arith.CommSemiring → Sym.Arith.CommSemiring) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
The Sym.Arith record of the envelope ring OfSemiring.Q of the current semiring.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def Lean.Meta.Grind.Arith.CommRing.SemiringM.modifyCommRing (f : Sym.Arith.CommRing → Sym.Arith.CommRing) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
The per-goal solver state of the current semiring.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def Lean.Meta.Grind.Arith.CommRing.SemiringM.modifySemiringState (f : SemiringState → SemiringState) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Meta.Grind.Arith.CommRing.getTermSemiringId? e = do let __do_lift ← Lean.Meta.Grind.Arith.CommRing.get' pure (Lean.PersistentHashMap.find? __do_lift.exprToSemiringId { expr := e })
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- Lean.Meta.Grind.Arith.CommRing.instMonadSetTermIdSemiringM = { setTermId := fun (e : Lean.Expr) => Lean.Meta.Grind.Arith.CommRing.setTermSemiringId e }
def Lean.Meta.Grind.Arith.CommRing.mkSVarCore {m : Type → Type} [MonadLiftT GoalM m] [Monad m] [MonadSemiringState m] [MonadSetTermId m] (e : Expr) :
m Var
Similar to mkVarCore but for Semirings
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Semiring terms are reified only by the internalize hook, after the core has created the
ENodes of the term and of all its subterms. So every variable created here is already
internalized, and there is no generation to assign.
Equations
- One or more equations did not get rendered due to their size.
Denotes e in the envelope ring OfSemiring.Q. The atoms toQ x are new terms, so they are
internalized here with generation gen.
Equations
- Lean.Grind.CommRing.Expr.denoteAsRingExpr e gen = do let __do_lift ← Lean.Grind.CommRing.Expr.denoteAsRingExpr.go✝ gen e liftM (Lean.Meta.Sym.shareCommon __do_lift)