LeanPool.LowDimSolvClassification.Tactics #
The reflected Lie expressions retain exposed definitions so the kernel can check proofs produced by the tactics. The metaprogramming implementation is compiled without exporting its definition bodies to importing modules.
The Lie-algebra atom monad: MetaM with state tracking the atoms encountered.
Equations
Instances For
Intern a quoted atom and retain its definitional equality with the stored expression.
Equations
Instances For
Intern a quoted bracket pair, retaining the equalities for its chosen orientation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A Lie expression represented as a sum of scalar multiples of atoms.
Equations
- Mathlib.Tactic.LieSolver.NF R M = List (R × V M)
Instances For
Constructor notation for reflected Lie expressions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Extend the scalar ring of a reflected Lie expression through an algebra map.
Equations
Instances For
Quoted scalar-atom pairs with identifiers used to order and combine equal atoms.
Instances For
Quote a normal form, discarding the atom identifiers used during normalization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Apply a quoted function to every coefficient of a normal form.
Equations
Instances For
Merge two normal forms ordered by atom identifier, adding matching coefficients.
Equations
- One or more equations did not get rendered due to their size.
- Mathlib.Tactic.LieSolver.qNF.add iR [] x✝ = x✝
- Mathlib.Tactic.LieSolver.qNF.add iR x✝ [] = x✝
Instances For
Construct the proof that merging normal forms computes their sum.
Equations
- One or more equations did not get rendered due to their size.
- Mathlib.Tactic.LieSolver.qNF.mkAddProof iRM [] l₂ = q(⋯)
- Mathlib.Tactic.LieSolver.qNF.mkAddProof iRM l₁ [] = q(⋯)
Instances For
Merge two normal forms ordered by atom identifier, subtracting matching coefficients.
Equations
- One or more equations did not get rendered due to their size.
- Mathlib.Tactic.LieSolver.qNF.sub iR [] x✝ = x✝.onScalar q(Neg.neg)
- Mathlib.Tactic.LieSolver.qNF.sub iR x✝ [] = x✝
Instances For
Construct the proof that subtracting normal forms computes their difference.
Equations
- One or more equations did not get rendered due to their size.
- Mathlib.Tactic.LieSolver.qNF.mkSubProof iR iMM iRM [] l₂ = q(⋯)
- Mathlib.Tactic.LieSolver.qNF.mkSubProof iR iMM iRM l₁ [] = q(⋯)
Instances For
Move two normal forms to a common scalar ring, retaining proofs of their values.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Recursion budget for parsing expressions and comparing their coefficients.
Equations
Instances For
Normalize a quoted Lie expression with bounded recursion and prove its value.
Instances For
Normalize a quoted Lie expression using the standard recursion budget.
Equations
Instances For
Reduce equality of normal forms to coefficient equalities with bounded recursion.
Equations
- One or more equations did not get rendered due to their size.
- Mathlib.Tactic.LieSolver.reduceCoefficientwiseAux 0 iRM l₁ l₂ = Lean.throwError (Lean.toMessageData "match_scalars_lie: ran out of fuel in reduceCoefficientwise")
- Mathlib.Tactic.LieSolver.reduceCoefficientwiseAux fuel_2.succ iRM [] [] = pure ([], q(⋯))
Instances For
Produce coefficient goals and a proof that solving them equates the normal forms.
Equations
Instances For
Normalize both sides of an equality and replace it with coefficient goals.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Algebra-map identities used to simplify natural, integer, and rational coefficients.
Instances For
Simplify casts and algebra maps in a generated coefficient goal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reduce a Lie equality to coefficient goals and simplify their scalar expressions.
Equations
- Mathlib.Tactic.LieSolver.matchScalars g = do let mvars ← (Mathlib.Tactic.LieSolver.matchScalarsAux g).run List.mapM Mathlib.Tactic.LieSolver.postprocess mvars
Instances For
match_scalars_lie: turn a Lie-algebra goal into a collection of scalar-coefficient goals
that can be discharged by ring-like tactics.
Equations
- Mathlib.Tactic.LieSolver.tacticMatch_scalars_lie = Lean.ParserDescr.node `Mathlib.Tactic.LieSolver.tacticMatch_scalars_lie 1024 (Lean.ParserDescr.nonReservedSymbol "match_scalars_lie" false)
Instances For
module_lie: finishing tactic that reduces a Lie-algebra equality to scalar equalities
and discharges each with ring.
Equations
- Mathlib.Tactic.LieSolver.tacticModule_lie = Lean.ParserDescr.node `Mathlib.Tactic.LieSolver.tacticModule_lie 1024 (Lean.ParserDescr.nonReservedSymbol "module_lie" false)
Instances For
simplify_lie: unfold Lie-bracket bilinearity and reduce the goal to scalar equalities
using match_scalars_lie, then attempt to close each by ring.
Equations
- tacticSimplifyLie = Lean.ParserDescr.node `tacticSimplifyLie 1024 (Lean.ParserDescr.nonReservedSymbol "simplify_lie" false)