Dual numbers #
The dual numbers over R are of the form a + bε, where a and b are typically elements of a
commutative ring R, and ε is a symbol satisfying ε^2 = 0 that commutes with every other
element. They are a special case of TrivSqZeroExt R M with M = R.
Notation #
In the DualNumber locale:
R[ε]is a shorthand forDualNumber Rεis a shorthand forDualNumber.eps
Main definitions #
Implementation notes #
Rather than duplicating the API of TrivSqZeroExt, this file reuses the functions there.
References #
The type of dual numbers, numbers of the form $a + bε$ where $ε^2 = 0$.
R[ε] is notation for DualNumber R.
Equations
- DualNumber R = TrivSqZeroExt R R
Instances For
The unit element $ε$ that squares to zero, with notation ε.
Equations
Instances For
The unit element $ε$ that squares to zero, with notation ε.
Equations
- DualNumber.termε = Lean.ParserDescr.node `DualNumber.termε 1024 (Lean.ParserDescr.symbol "ε")
Instances For
The type of dual numbers, numbers of the form $a + bε$ where $ε^2 = 0$.
R[ε] is notation for DualNumber R.
Equations
- DualNumber.«term_[ε]» = Lean.ParserDescr.trailingNode `DualNumber.«term_[ε]» 1024 1024 (Lean.ParserDescr.symbol "[ε]")
Instances For
A version of TrivSqZeroExt.snd_mul with * instead of •.
ε commutes with every element of the algebra.
ε commutes with every element of the algebra.
For two R-algebra morphisms out of A[ε] to agree, it suffices for them to agree on the
elements of A and the A-multiples of ε.
For two R-algebra morphisms out of R[ε] to agree, it suffices for them to agree on ε.
A universal property of the dual numbers, providing a unique A[ε] →ₐ[R] B for every map
f : A →ₐ[R] B and a choice of element e : B which squares to 0 and commutes with the range of
f.
This isomorphism is named to match the similar Complex.lift.
Note that when f : R →ₐ[R] B := Algebra.ofId R B, the commutativity assumption is automatic, and
we are free to choose any element e : B.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When applied to inl, DualNumber.lift applies the map f : A →ₐ[R] B.
Scaling on the left is sent by DualNumber.lift to multiplication on the left
Scaling on the right is sent by DualNumber.lift to multiplication on the right
When applied to ε, DualNumber.lift produces the element of B that squares to 0.
Lifting DualNumber.eps itself gives the identity.
Show DualNumber with values x and y as an "x + y*ε" string
Equations
- One or more equations did not get rendered due to their size.