Derivations #
This file defines derivation. A derivation D from the R-algebra A to the A-module M is an
R-linear map that satisfy the Leibniz rule D (a * b) = a * D b + D a * b.
Main results #
Derivation: The type ofR-derivations fromAtoM. This has anA-module structure.Derivation.llcomp: We may compose linear maps and derivations to obtain a derivation, and the composition is bilinear.
See RingTheory.Derivation.Lie for
derivation.lie_algebra: TheR-derivations fromAtoAform a lie algebra overR.
and RingTheory.Derivation.ToSquareZero for
derivationToSquareZeroEquivLift: TheR-derivations fromAinto a square-zero idealIofBcorresponds to the liftsA →ₐ[R] Bof the mapA →ₐ[R] B ⧸ I.
Future project #
- Generalize derivations into bimodules.
D : Derivation R A M is an R-linear map from A to M that satisfies the leibniz
equality. We also require that D 1 = 0. See Derivation.mk' for a constructor that deduces this
assumption from the Leibniz rule when M is cancellative.
TODO: update this when bimodules are defined.
- toFun : A → M
Instances For
Equations
- Derivation.instFunLike = { coe := fun (D : Derivation R A M) => (↑D).toFun, coe_injective' := ⋯ }
See Note [custom simps projection]
Equations
- Derivation.Simps.apply D = ⇑D
Instances For
Equations
- Derivation.hasCoeToLinearMap = { coe := fun (D : Derivation R A M) => ↑D }
If adjoin of a set is the whole algebra, then any two derivations equal on this set are equal on the whole algebra.
Equations
- Derivation.instAdd = { add := fun (D1 D2 : Derivation R A M) => let __LinearMap := ↑D1 + ↑D2; { toLinearMap := __LinearMap, map_one_eq_zero' := ⋯, leibniz' := ⋯ } }
Equations
- Derivation.instInhabited = { default := 0 }
Equations
- Derivation.instSMul = { smul := fun (r : S) (D : Derivation R A M) => let __LinearMap := r • ↑D; { toLinearMap := __LinearMap, map_one_eq_zero' := ⋯, leibniz' := ⋯ } }
Equations
coeFn as an AddMonoidHom.
Equations
- Derivation.coeFnAddMonoidHom = { toFun := DFunLike.coe, map_zero' := ⋯, map_add' := ⋯ }
Instances For
We can push forward derivations using linear maps, i.e., the composition of a derivation with a linear map is a derivation. Furthermore, this operation is linear on the spaces of derivations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The composition of a derivation with a linear map as a bilinear map
Equations
Instances For
Pushing a derivation forward through a linear equivalence is an equivalence.
Equations
Instances For
For a tower R → A → B and an R-derivation B → M, we may compose with A → B to obtain an
R-derivation A → M.
Equations
- Derivation.compAlgebraMap A d = { toLinearMap := ↑d ∘ₗ (IsScalarTower.toAlgHom R A B).toLinearMap, map_one_eq_zero' := ⋯, leibniz' := ⋯ }
Instances For
If A is both an R-algebra and an S-algebra; M is both an R-module and an S-module,
then an S-derivation A → M is also an R-derivation if it is also R-linear.
Equations
- Derivation.restrictScalars R d = { toLinearMap := ↑R ↑d, map_one_eq_zero' := ⋯, leibniz' := ⋯ }
Instances For
Lift a derivation via an algebra homomorphism f with a right inverse such that
f(x) = 0 → f(d(x)) = 0. This gives the derivation f ∘ d ∘ f⁻¹.
This is needed for an argument in [Rosenlicht, M. Integration in finite terms][Rosenlicht_1972].
Equations
- Derivation.liftOfRightInverse hf hd = { toFun := fun (x : M) => f (d (f_inv x)), map_add' := ⋯, map_smul' := ⋯, map_one_eq_zero' := ⋯, leibniz' := ⋯ }
Instances For
A noncomputable version of liftOfRightInverse for surjective homomorphisms.
Equations
Instances For
Define Derivation R A M from a linear map when M is cancellative by verifying the Leibniz
rule.
Equations
- Derivation.mk' D h = { toLinearMap := D, map_one_eq_zero' := ⋯, leibniz' := h }
Instances For
Equations
- Derivation.instNeg = { neg := fun (D : Derivation R A M) => Derivation.mk' (-↑D) ⋯ }
Equations
- Derivation.instSub = { sub := fun (D1 D2 : Derivation R A M) => Derivation.mk' (↑D1 - ↑D2) ⋯ }