LeanPool.LowDimSolvClassification.Tactics #
@[reducible, inline]
The Lie-algebra atom monad: MetaM with state tracking the atoms encountered.
Equations
Instances For
TODO.
Equations
- One or more equations did not get rendered due to their size.
Instances For
TODO.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Mathlib.Tactic.LieSolver.NF.add_eq_eval
{R : Type u_2}
{M : Type u_3}
{R₁ : Type u_4}
{R₂ : Type u_5}
[LieRing M]
[Semiring R]
[Module R M]
[Semiring R₁]
[Module R₁ M]
[Semiring R₂]
[Module R₂ M]
{l₁ l₂ l : NF R M}
{l₁' : NF R₁ M}
{l₂' : NF R₂ M}
{x₁ x₂ : M}
(hx₁ : x₁ = l₁'.eval)
(hx₂ : x₂ = l₂'.eval)
(h₁ : l₁.eval = l₁'.eval)
(h₂ : l₂.eval = l₂'.eval)
(h : l₁.eval + l₂.eval = l.eval)
:
theorem
Mathlib.Tactic.LieSolver.NF.sub_eq_eval
{R : Type u_2}
{M : Type u_3}
{R₁ : Type u_4}
{R₂ : Type u_5}
{S₁ : Type u_6}
{S₂ : Type u_7}
[LieRing M]
[Ring R]
[Module R M]
[Semiring R₁]
[Module R₁ M]
[Semiring R₂]
[Module R₂ M]
[Semiring S₁]
[Module S₁ M]
[Semiring S₂]
[Module S₂ M]
{l₁ l₂ l : NF R M}
{l₁' : NF R₁ M}
{l₂' : NF R₂ M}
{l₁'' : NF S₁ M}
{l₂'' : NF S₂ M}
{x₁ x₂ : M}
(hx₁ : x₁ = l₁''.eval)
(hx₂ : x₂ = l₂''.eval)
(h₁' : l₁'.eval = l₁''.eval)
(h₂' : l₂'.eval = l₂''.eval)
(h₁ : l₁.eval = l₁'.eval)
(h₂ : l₂.eval = l₂'.eval)
(h : l₁.eval - l₂.eval = l.eval)
:
theorem
Mathlib.Tactic.LieSolver.NF.smul_eq_eval
{S : Type u_1}
{R : Type u_2}
{M : Type u_3}
{R₀ : Type u_4}
[LieRing M]
[Semiring R]
[Module R M]
[Semiring R₀]
[Module R₀ M]
[Semiring S]
[Module S M]
{l : NF R M}
{l₀ : NF R₀ M}
{s : S}
{r : R}
{x : M}
(hx : x = l₀.eval)
(hl : l.eval = l₀.eval)
(hs : r • x = s • x)
:
theorem
Mathlib.Tactic.LieSolver.NF.eq_of_eval_eq_eval
{R : Type u_2}
{M : Type u_3}
{R₁ : Type u_4}
{R₂ : Type u_5}
[LieRing M]
[Semiring R]
[Module R M]
[Semiring R₁]
[Module R₁ M]
[Semiring R₂]
[Module R₂ M]
{l₁ l₂ : NF R M}
{l₁' : NF R₁ M}
{l₂' : NF R₂ M}
{x₁ x₂ : M}
(hx₁ : x₁ = l₁'.eval)
(hx₂ : x₂ = l₂'.eval)
(h₁ : l₁.eval = l₁'.eval)
(h₂ : l₂.eval = l₂'.eval)
(h : l₁.eval = l₂.eval)
:
def
Mathlib.Tactic.LieSolver.NF.algebraMap
{S : Type u_1}
(R : Type u_2)
{M : Type u_3}
[CommSemiring S]
[Semiring R]
[Algebra S R]
(l : NF S M)
:
NF R M
TODO.
Equations
Instances For
theorem
Mathlib.Tactic.LieSolver.NF.eval_algebraMap
{S : Type u_1}
(R : Type u_2)
{M : Type u_3}
[CommSemiring S]
[Semiring R]
[Algebra S R]
[LieRing M]
[SMul S M]
[MulAction R M]
[IsScalarTower S R M]
(l : NF S M)
:
@[reducible, inline]
TODO.
Instances For
def
Mathlib.Tactic.LieSolver.qNF.toNF
{u v : Lean.Level}
{M : Q(Type v)}
{R : Q(Type u)}
(l : qNF R M)
:
Q(NF «$R» «$M»)
TODO.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Mathlib.Tactic.LieSolver.qNF.onScalar
{v : Lean.Level}
{M : Q(Type v)}
{u₁ u₂ : Lean.Level}
{R₁ : Q(Type u₁)}
{R₂ : Q(Type u₂)}
(l : qNF R₁ M)
(f : Q(«$R₁» → «$R₂»))
:
qNF R₂ M
TODO.
Equations
Instances For
@[irreducible]
def
Mathlib.Tactic.LieSolver.qNF.add
{u v : Lean.Level}
{M : Q(Type v)}
{R : Q(Type u)}
(iR : Q(Semiring «$R»))
:
TODO.
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
@[irreducible]
def
Mathlib.Tactic.LieSolver.qNF.mkAddProof
{u v : Lean.Level}
{M : Q(Type v)}
{R : Q(Type u)}
{iR : Q(Semiring «$R»)}
{iMM : Q(LieRing «$M»)}
(iRM : Q(Module «$R» «$M»))
(l₁ l₂ : qNF R M)
:
TODO.
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
@[irreducible]
def
Mathlib.Tactic.LieSolver.qNF.sub
{u v : Lean.Level}
{M : Q(Type v)}
{R : Q(Type u)}
(iR : Q(Ring «$R»))
:
TODO.
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
@[irreducible]
def
Mathlib.Tactic.LieSolver.qNF.mkSubProof
{u v : Lean.Level}
{M : Q(Type v)}
{R : Q(Type u)}
(iR : Q(Ring «$R»))
(iMM : Q(LieRing «$M»))
(iRM : Q(Module «$R» «$M»))
(l₁ l₂ : qNF R M)
:
TODO.
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
def
Mathlib.Tactic.LieSolver.qNF.matchRings
{v : Lean.Level}
{M : Q(Type v)}
{iMM : Q(LieRing «$M»)}
{u₁ : Lean.Level}
{R₁ : Q(Type u₁)}
{iR₁ : Q(Semiring «$R₁»)}
(iRM₁ : Q(Module «$R₁» «$M»))
{u₂ : Lean.Level}
{R₂ : Q(Type u₂)}
(iR₂ : Q(Semiring «$R₂»))
(iRM₂ : Q(Module «$R₂» «$M»))
(l₁ : qNF R₁ M)
(l₂ : qNF R₂ M)
(r : Q(«$R₂»))
(x : Q(«$M»))
:
Lean.MetaM
((u : Lean.Level) ×
(R : Q(Type u)) ×
(iR : Q(Semiring «$R»)) ×
(x_1 : Q(Module «$R» «$M»)) ×
((l₁' : qNF R M) ×
have a := l₁.toNF;
have a_1 := l₁'.toNF;
Q(«$a_1».eval = «$a».eval)) × ((l₂' : qNF R M) ×
have a := l₂.toNF;
have a_1 := l₂'.toNF;
Q(«$a_1».eval = «$a».eval)) × (r' : Q(«$R»)) × Q(«$r'» • «$x» = «$r» • «$x»))
TODO.
Equations
- One or more equations did not get rendered due to their size.
Instances For
TODO.
Equations
Instances For
def
Mathlib.Tactic.LieSolver.parseAux
{v : Lean.Level}
{M : Q(Type v)}
(fuel : ℕ)
(iMM : Q(LieRing «$M»))
(x : Q(«$M»))
:
TODO.
Instances For
def
Mathlib.Tactic.LieSolver.parse
{v : Lean.Level}
{M : Q(Type v)}
(iMM : Q(LieRing «$M»))
(x : Q(«$M»))
:
TODO.
Equations
Instances For
def
Mathlib.Tactic.LieSolver.reduceCoefficientwiseAux
{u v : Lean.Level}
{M : Q(Type v)}
(fuel : ℕ)
{R : Q(Type u)}
{x✝ : Q(LieRing «$M»)}
{x✝¹ : Q(Semiring «$R»)}
(iRM : Q(Module «$R» «$M»))
(l₁ l₂ : qNF R M)
:
TODO.
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
def
Mathlib.Tactic.LieSolver.reduceCoefficientwise
{u v : Lean.Level}
{M : Q(Type v)}
{R : Q(Type u)}
{x✝ : Q(LieRing «$M»)}
{x✝¹ : Q(Semiring «$R»)}
(iRM : Q(Module «$R» «$M»))
(l₁ l₂ : qNF R M)
:
TODO.
Equations
Instances For
TODO.
Equations
- One or more equations did not get rendered due to their size.
Instances For
TODO.
Instances For
TODO.
Equations
- One or more equations did not get rendered due to their size.
Instances For
TODO.
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)