Base change of the dual numbers #
For a commutative R-algebra S, the dual numbers commute with base change:
S ⊗[R] R[ε] ≃ₐ[S] S[ε], sending s ⊗ (a + b ε) to s • (a + b ε) with a and b
mapped into S.
The statement and naming are modelled on Mathlib's MvPolynomial.algebraTensorAlgEquiv
(in Mathlib/RingTheory/TensorProduct/MvPolynomial.lean); the construction here instead
assembles the two directions from Algebra.TensorProduct.lift and DualNumber.lift.
noncomputable def
TauCeti.dualNumberAlgebraTensorAlgEquiv
(R : Type u_1)
(S : Type u_2)
[CommSemiring R]
[CommSemiring S]
[Algebra R S]
:
The base change S ⊗[R] R[ε] ≃ₐ[S] S[ε] of the dual numbers.
Instances For
@[simp]
theorem
TauCeti.dualNumberAlgebraTensorAlgEquiv_tmul_fst
{R : Type u_1}
{S : Type u_2}
[CommSemiring R]
[CommSemiring S]
[Algebra R S]
(s : S)
(x : DualNumber R)
:
TrivSqZeroExt.fst ((dualNumberAlgebraTensorAlgEquiv R S) (s ⊗ₜ[R] x)) = s * (algebraMap R S) (TrivSqZeroExt.fst x)
The scalar part of the base change of s ⊗ x.
@[simp]
theorem
TauCeti.dualNumberAlgebraTensorAlgEquiv_tmul_snd
{R : Type u_1}
{S : Type u_2}
[CommSemiring R]
[CommSemiring S]
[Algebra R S]
(s : S)
(x : DualNumber R)
:
TrivSqZeroExt.snd ((dualNumberAlgebraTensorAlgEquiv R S) (s ⊗ₜ[R] x)) = s * (algebraMap R S) (TrivSqZeroExt.snd x)
The infinitesimal part of the base change of s ⊗ x.
@[simp]
theorem
TauCeti.dualNumberAlgebraTensorAlgEquiv_tmul_one
{R : Type u_1}
{S : Type u_2}
[CommSemiring R]
[CommSemiring S]
[Algebra R S]
(s : S)
:
Base change sends s ⊗ 1 to the constant s.
@[simp]
theorem
TauCeti.dualNumberAlgebraTensorAlgEquiv_tmul_eps
{R : Type u_1}
{S : Type u_2}
[CommSemiring R]
[CommSemiring S]
[Algebra R S]
(s : S)
:
Base change sends s ⊗ ε to s • ε.
@[simp]
theorem
TauCeti.dualNumberAlgebraTensorAlgEquiv_symm_eps
{R : Type u_1}
{S : Type u_2}
[CommSemiring R]
[CommSemiring S]
[Algebra R S]
:
The inverse of base change sends ε to 1 ⊗ ε.