Theorems · Definition · commutative algebra
RestrictScalars
Type u_5 → Type u_6 → Type u_7 → Type u_7
If we put an R-algebra structure on a semiring S, we get a natural equivalence from the
category of S-modules to the category of representations of the algebra S (over R). The type
synonym RestrictScalars is essentially this equivalence.
Warning: use this type synonym judiciously! Consider an example where we want to construct an
R-linear map from M to S, given:
``lean
variable (R S M : Type*)
variable [CommSemiring R] [Semiring S] [Algebra R S] [AddCommMonoid M] [Module S M]
`
With the assumptions above we can't directly state our map as we have no Module R M structure, but
RestrictScalars permits it to be written as:
`lean
-- an R-module structure on M is provided by RestrictScalars which is compatible
example : RestrictScalars R S M →ₗ[R] S := sorry
`
However, it is usually better just to add this extra structure as an argument:
`lean
-- an R-module structure on M and proof of its compatibility is provided by the user
example [Module R M] [IsScalarTower R S M] : M →ₗ[R] S := sorry
`
The advantage of the second approach is that it defers the duty of providing the missing typeclasses
[Module R M] [IsScalarTower R S M]. If some concrete M naturally carries these (as is often
the case) then we have avoided RestrictScalars entirely. If not, we can pass
RestrictScalars R S M later on instead of M.
Note that this means we almost always want to state definitions and lemmas in the language of
IsScalarTower rather than RestrictScalars.
An example of when one might want to use RestrictScalars would be if one has a vector space
over a field of characteristic zero and wishes to make use of the ℚ`-algebra structure.
- Defined in
- Mathlib.Algebra.Algebra.RestrictScalars
- Cited by
- 18 results in Mathlib
- Foundations
- Depth 0 from the axioms · uses no axioms
Around this declaration
Dashed lines are statement dependencies; solid lines are citations in proofs.
Cites0
Mathlib declarations this one mentions in its statement or cites explicitly in its proof. Plumbing is filtered out.
Nothing in Mathlib beyond the foundations.
Cited by28
Results whose statement or proof uses this declaration.
- Representation.ofModulestatement and proof · cited by 11
- RestrictScalars.addEquivstatement · cited by 9
- Subrepresentation.submoduleSubrepresentationOrderIsostatement · cited by 4
- Subrepresentation.ofSubmodulestatement and proof · cited by 2
- RestrictScalars.lsmulstatement and proof · cited by 2
- RestrictScalars.ringEquivstatement and proof · cited by 2
- Subrepresentation.asSubmodule'statement and proof · cited by 2
- Representation.ofModule_asAlgebraHom_apply_applystatement and proof · cited by 1
- Representation.ofModule_asModule_actstatement and proof · cited by 1
- RestrictScalars.addEquiv_symm_map_smul_smulstatement · cited by 1
- Representation.isSimpleModule_iff_irreducible_ofModulestatement · cited by 1
- Subrepresentation.mem_asSubmodule'_iffstatement · cited by 0