The read-only state of the RPowRing
monad.
- ctx : Lean.Meta.Simp.Context
A basically empty simp context, passed to the
simp
traversal inRPowRing.rewrite
. A cleanup routine, which simplifies normalized polynomials to a more human-friendly format.
Instances For
Configuration for ring_nf
.
the reducibility setting to use when comparing atoms for defeq
Instances For
Equations
- Mathlib.Tactic.RPowRing.instInhabitedConfig = { default := { red := default } }
Equations
Function elaborating RingNF.Config
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The monad for RingNF
contains, in addition to the AtomM
state,
a simp context for the main traversal and a simp function (which has another simp context)
to simplify normalized polynomials.
Instances For
A monomial, which is a product of powers of ExBase
expressions,
terminated by a (nonzero) constant coefficient.
- atom: ℕ → (x : Q(ℝ)) → Mathlib.Tactic.RPowRing.ExBase x
A coefficient
value
, which must not be0
.e
is a raw rat cast. Ifvalue
is not an integer, thenhyp
should be a proof of(value.den : α) ≠ 0
. - pow: ℕ → (x : Q(ℝ)) → Q(0 < «$x») → (e : Q(ℝ)) → Mathlib.Tactic.RPowRing.ExBase q(«$x» ^ «$e»)
Instances For
Equations
- (Mathlib.Tactic.RPowRing.ExBase.atom id e).id = id
- (Mathlib.Tactic.RPowRing.ExBase.pow id x_1 h e_2).id = id
Instances For
A monomial, which is a product of powers of ExBase
expressions,
terminated by a (nonzero) constant coefficient.
- one: Mathlib.Tactic.RPowRing.ExProd q(1)
A coefficient
value
, which must not be0
.e
is a raw rat cast. Ifvalue
is not an integer, thenhyp
should be a proof of(value.den : α) ≠ 0
. - mul: {x b : Q(ℝ)} → Mathlib.Tactic.RPowRing.ExBase x → Mathlib.Tactic.RPowRing.ExProd b → Mathlib.Tactic.RPowRing.ExProd q(«$x» * «$b»)
Instances For
Equations
- Mathlib.Tactic.RPowRing.instInhabitedSigmaQuotedConstMkStr1NilLevelExBase = { default := ⟨default, Mathlib.Tactic.RPowRing.ExBase.atom 0 default⟩ }
Equations
Embed an exponent (an ExBase, ExProd
pair) as an ExProd
by multiplying by 1.
Equations
Instances For
Equations
- Mathlib.Tactic.RPowRing.Result = Mathlib.Tactic.Ring.Result
Instances For
Evaluates an atom, an expression where ring
can find no additional structure.
a = a ^ 1 * 1 + 0
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multiplies two monomials va, vb
together to get a normalized result monomial.
x * y = (x * y)
(forx
,y
coefficients)x * (b₁ * b₂) = b₁ * (b₂ * x)
(forx
coefficient)(a₁ * a₂) * y = a₁ * (a₂ * y)
(fory
coefficient)(x ^ ea * a₂) * (x ^ eb * b₂) = x ^ (ea + eb) * (a₂ * b₂)
(ifea
andeb
are identical except coefficient)(a₁ * a₂) * (b₁ * b₂) = a₁ * (a₂ * (b₁ * b₂))
(ifa₁.lt b₁
)(a₁ * a₂) * (b₁ * b₂) = b₁ * ((a₁ * a₂) * b₂)
(if nota₁.lt b₁
)
Equations
- One or more equations did not get rendered due to their size.
- Mathlib.Tactic.RPowRing.evalPow Mathlib.Tactic.RPowRing.ExProd.one e = some (q(⋯), { expr := q(1), val := Mathlib.Tactic.RPowRing.ExProd.one, proof := q(⋯) })
- Mathlib.Tactic.RPowRing.evalPow (Mathlib.Tactic.RPowRing.ExProd.mul (Mathlib.Tactic.RPowRing.ExBase.atom id x) vb) e = none
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Runs a tactic in the RingNF.M
monad, given initial data:
s
: a reference to the mutable state ofring
, for persisting across calls. This ensures that atom ordering is used consistently.cfg
: the configuration optionsx
: the tactic to run
Equations
- One or more equations did not get rendered due to their size.
Instances For
Use rpow_ring
to rewrite the main goal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Use rpow_ring
to rewrite hypothesis h
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification tactic for expressions in the language of commutative (semi)rings, which rewrites all ring expressions into a normal form.
rpow_ring!
will use a more aggressive reducibility setting to identify atoms.rpow_ring (config := cfg)
allows for additional configuration:red
: the reducibility setting (overridden by!
)recursive
: if true,rpow_ring
will also recurse into atoms
rpow_ring
works as both a tactic and a conv tactic. In tactic mode,rpow_ring at h
can be used to rewrite in a hypothesis.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification tactic for expressions in the language of commutative (semi)rings, which rewrites all ring expressions into a normal form.
rpow_ring!
will use a more aggressive reducibility setting to identify atoms.rpow_ring (config := cfg)
allows for additional configuration:red
: the reducibility setting (overridden by!
)recursive
: if true,rpow_ring
will also recurse into atoms
rpow_ring
works as both a tactic and a conv tactic. In tactic mode,rpow_ring at h
can be used to rewrite in a hypothesis.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification tactic for expressions in the language of commutative (semi)rings, which rewrites all ring expressions into a normal form.
rpow_ring!
will use a more aggressive reducibility setting to identify atoms.rpow_ring (config := cfg)
allows for additional configuration:red
: the reducibility setting (overridden by!
)recursive
: if true,rpow_ring
will also recurse into atoms
rpow_ring
works as both a tactic and a conv tactic. In tactic mode,rpow_ring at h
can be used to rewrite in a hypothesis.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Elaborator for the rpow_ring
tactic.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.