algebra.module.bimodule
⟷
Mathlib.Algebra.Module.Bimodule
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2022 Oliver Nash. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-/
-import RingTheory.TensorProduct
+import LinearAlgebra.TensorProduct.Tower
#align_import algebra.module.bimodule from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2022 Oliver Nash. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-/
-import Mathbin.RingTheory.TensorProduct
+import RingTheory.TensorProduct
#align_import algebra.module.bimodule from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2022 Oliver Nash. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-
-! This file was ported from Lean 3 source module algebra.module.bimodule
-! leanprover-community/mathlib commit 33c67ae661dd8988516ff7f247b0be3018cdd952
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.RingTheory.TensorProduct
+#align_import algebra.module.bimodule from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
+
/-!
# Bimodules
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -82,6 +82,7 @@ variable [IsScalarTower R A M] [IsScalarTower R B M]
variable [SMulCommClass A B M]
+#print Subbimodule.mk /-
/-- A constructor for a subbimodule which demands closure under the two sets of scalars
individually, rather than jointly via their tensor product.
@@ -97,19 +98,25 @@ def mk (p : AddSubmonoid M) (hA : ∀ (a : A) {m : M}, m ∈ p → a • m ∈ p
(fun a b hm => by simpa only [TensorProduct.Algebra.smul_def] using hA a (hB b hm))
fun z w hz hw hm => by simpa only [add_smul] using p.add_mem (hz hm) (hw hm) }
#align subbimodule.mk Subbimodule.mk
+-/
+#print Subbimodule.smul_mem /-
theorem smul_mem (p : Submodule (A ⊗[R] B) M) (a : A) {m : M} (hm : m ∈ p) : a • m ∈ p :=
by
suffices a • m = a ⊗ₜ[R] (1 : B) • m by exact this.symm ▸ p.smul_mem _ hm
simp [TensorProduct.Algebra.smul_def]
#align subbimodule.smul_mem Subbimodule.smul_mem
+-/
+#print Subbimodule.smul_mem' /-
theorem smul_mem' (p : Submodule (A ⊗[R] B) M) (b : B) {m : M} (hm : m ∈ p) : b • m ∈ p :=
by
suffices b • m = (1 : A) ⊗ₜ[R] b • m by exact this.symm ▸ p.smul_mem _ hm
simp [TensorProduct.Algebra.smul_def]
#align subbimodule.smul_mem' Subbimodule.smul_mem'
+-/
+#print Subbimodule.baseChange /-
/-- If `A` and `B` are also `algebra`s over yet another set of scalars `S` then we may "base change"
from `R` to `S`. -/
@[simps]
@@ -118,7 +125,9 @@ def baseChange (S : Type _) [CommSemiring S] [Module S M] [Algebra S A] [Algebra
Submodule (A ⊗[S] B) M :=
mk p.toAddSubmonoid (smul_mem p) (smul_mem' p)
#align subbimodule.base_change Subbimodule.baseChange
+-/
+#print Subbimodule.toSubmodule /-
/-- Forgetting the `B` action, a `submodule` over `A ⊗[R] B` is just a `submodule` over `A`. -/
@[simps]
def toSubmodule (p : Submodule (A ⊗[R] B) M) : Submodule A M :=
@@ -126,7 +135,9 @@ def toSubmodule (p : Submodule (A ⊗[R] B) M) : Submodule A M :=
carrier := p
smul_mem' := smul_mem p }
#align subbimodule.to_submodule Subbimodule.toSubmodule
+-/
+#print Subbimodule.toSubmodule' /-
/-- Forgetting the `A` action, a `submodule` over `A ⊗[R] B` is just a `submodule` over `B`. -/
@[simps]
def toSubmodule' (p : Submodule (A ⊗[R] B) M) : Submodule B M :=
@@ -134,6 +145,7 @@ def toSubmodule' (p : Submodule (A ⊗[R] B) M) : Submodule B M :=
carrier := p
smul_mem' := smul_mem' p }
#align subbimodule.to_submodule' Subbimodule.toSubmodule'
+-/
end Algebra
@@ -143,19 +155,23 @@ variable (R S M : Type _) [Ring R] [Ring S]
variable [AddCommGroup M] [Module R M] [Module S M] [SMulCommClass R S M]
+#print Subbimodule.toSubbimoduleInt /-
/-- A `submodule` over `R ⊗[ℕ] S` is naturally also a `submodule` over the canonically-isomorphic
ring `R ⊗[ℤ] S`. -/
@[simps]
def toSubbimoduleInt (p : Submodule (R ⊗[ℕ] S) M) : Submodule (R ⊗[ℤ] S) M :=
baseChange ℤ p
#align subbimodule.to_subbimodule_int Subbimodule.toSubbimoduleInt
+-/
+#print Subbimodule.toSubbimoduleNat /-
/-- A `submodule` over `R ⊗[ℤ] S` is naturally also a `submodule` over the canonically-isomorphic
ring `R ⊗[ℕ] S`. -/
@[simps]
def toSubbimoduleNat (p : Submodule (R ⊗[ℤ] S) M) : Submodule (R ⊗[ℕ] S) M :=
baseChange ℕ p
#align subbimodule.to_subbimodule_nat Subbimodule.toSubbimoduleNat
+-/
end Ring
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -62,7 +62,7 @@ Develop the theory of two-sided ideals, which have type `submodule (R ⊗[ℕ] R
-/
-open TensorProduct
+open scoped TensorProduct
attribute [local instance] TensorProduct.Algebra.module
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -82,9 +82,6 @@ variable [IsScalarTower R A M] [IsScalarTower R B M]
variable [SMulCommClass A B M]
-/- warning: subbimodule.mk -> Subbimodule.mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align subbimodule.mk Subbimodule.mkₓ'. -/
/-- A constructor for a subbimodule which demands closure under the two sets of scalars
individually, rather than jointly via their tensor product.
@@ -101,27 +98,18 @@ def mk (p : AddSubmonoid M) (hA : ∀ (a : A) {m : M}, m ∈ p → a • m ∈ p
fun z w hz hw hm => by simpa only [add_smul] using p.add_mem (hz hm) (hw hm) }
#align subbimodule.mk Subbimodule.mk
-/- warning: subbimodule.smul_mem -> Subbimodule.smul_mem is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align subbimodule.smul_mem Subbimodule.smul_memₓ'. -/
theorem smul_mem (p : Submodule (A ⊗[R] B) M) (a : A) {m : M} (hm : m ∈ p) : a • m ∈ p :=
by
suffices a • m = a ⊗ₜ[R] (1 : B) • m by exact this.symm ▸ p.smul_mem _ hm
simp [TensorProduct.Algebra.smul_def]
#align subbimodule.smul_mem Subbimodule.smul_mem
-/- warning: subbimodule.smul_mem' -> Subbimodule.smul_mem' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align subbimodule.smul_mem' Subbimodule.smul_mem'ₓ'. -/
theorem smul_mem' (p : Submodule (A ⊗[R] B) M) (b : B) {m : M} (hm : m ∈ p) : b • m ∈ p :=
by
suffices b • m = (1 : A) ⊗ₜ[R] b • m by exact this.symm ▸ p.smul_mem _ hm
simp [TensorProduct.Algebra.smul_def]
#align subbimodule.smul_mem' Subbimodule.smul_mem'
-/- warning: subbimodule.base_change -> Subbimodule.baseChange is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align subbimodule.base_change Subbimodule.baseChangeₓ'. -/
/-- If `A` and `B` are also `algebra`s over yet another set of scalars `S` then we may "base change"
from `R` to `S`. -/
@[simps]
@@ -131,9 +119,6 @@ def baseChange (S : Type _) [CommSemiring S] [Module S M] [Algebra S A] [Algebra
mk p.toAddSubmonoid (smul_mem p) (smul_mem' p)
#align subbimodule.base_change Subbimodule.baseChange
-/- warning: subbimodule.to_submodule -> Subbimodule.toSubmodule is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align subbimodule.to_submodule Subbimodule.toSubmoduleₓ'. -/
/-- Forgetting the `B` action, a `submodule` over `A ⊗[R] B` is just a `submodule` over `A`. -/
@[simps]
def toSubmodule (p : Submodule (A ⊗[R] B) M) : Submodule A M :=
@@ -142,9 +127,6 @@ def toSubmodule (p : Submodule (A ⊗[R] B) M) : Submodule A M :=
smul_mem' := smul_mem p }
#align subbimodule.to_submodule Subbimodule.toSubmodule
-/- warning: subbimodule.to_submodule' -> Subbimodule.toSubmodule' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align subbimodule.to_submodule' Subbimodule.toSubmodule'ₓ'. -/
/-- Forgetting the `A` action, a `submodule` over `A ⊗[R] B` is just a `submodule` over `B`. -/
@[simps]
def toSubmodule' (p : Submodule (A ⊗[R] B) M) : Submodule B M :=
@@ -161,9 +143,6 @@ variable (R S M : Type _) [Ring R] [Ring S]
variable [AddCommGroup M] [Module R M] [Module S M] [SMulCommClass R S M]
-/- warning: subbimodule.to_subbimodule_int -> Subbimodule.toSubbimoduleInt is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align subbimodule.to_subbimodule_int Subbimodule.toSubbimoduleIntₓ'. -/
/-- A `submodule` over `R ⊗[ℕ] S` is naturally also a `submodule` over the canonically-isomorphic
ring `R ⊗[ℤ] S`. -/
@[simps]
@@ -171,9 +150,6 @@ def toSubbimoduleInt (p : Submodule (R ⊗[ℕ] S) M) : Submodule (R ⊗[ℤ] S)
baseChange ℤ p
#align subbimodule.to_subbimodule_int Subbimodule.toSubbimoduleInt
-/- warning: subbimodule.to_subbimodule_nat -> Subbimodule.toSubbimoduleNat is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align subbimodule.to_subbimodule_nat Subbimodule.toSubbimoduleNatₓ'. -/
/-- A `submodule` over `R ⊗[ℤ] S` is naturally also a `submodule` over the canonically-isomorphic
ring `R ⊗[ℕ] S`. -/
@[simps]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -83,10 +83,7 @@ variable [IsScalarTower R A M] [IsScalarTower R B M]
variable [SMulCommClass A B M]
/- warning: subbimodule.mk -> Subbimodule.mk is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (p : AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))), (forall (a : A) {m : M}, (Membership.Mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.hasMem.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.setLike.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) m p) -> (Membership.Mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.hasMem.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.setLike.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) (SMul.smul.{u2, u4} A M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) a m) p)) -> (forall (b : B) {m : M}, (Membership.Mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.hasMem.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.setLike.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) m p) -> (Membership.Mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.hasMem.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.setLike.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) (SMul.smul.{u3, u4} B M (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) b m) p)) -> (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))
-but is expected to have type
- forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (Algebra.toSMul.{u1, u2} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (Algebra.toSMul.{u1, u3} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (p : AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))), (forall (a : A) {m : M}, (Membership.mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.instMembership.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) m p) -> (Membership.mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.instMembership.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) (HSMul.hSMul.{u2, u4, u4} A M M (instHSMul.{u2, u4} A M (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6))))) a m) p)) -> (forall (b : B) {m : M}, (Membership.mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.instMembership.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) m p) -> (Membership.mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.instMembership.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) (HSMul.hSMul.{u3, u4, u4} B M M (instHSMul.{u3, u4} B M (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))) b m) p)) -> (Submodule.{max u3 u2, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))
+<too large>
Case conversion may be inaccurate. Consider using '#align subbimodule.mk Subbimodule.mkₓ'. -/
/-- A constructor for a subbimodule which demands closure under the two sets of scalars
individually, rather than jointly via their tensor product.
@@ -105,10 +102,7 @@ def mk (p : AddSubmonoid M) (hA : ∀ (a : A) {m : M}, m ∈ p → a • m ∈ p
#align subbimodule.mk Subbimodule.mk
/- warning: subbimodule.smul_mem -> Subbimodule.smul_mem is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (p : Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (a : A) {m : M}, (Membership.Mem.{u4, u4} M (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.hasMem.{u4, u4} (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) m p) -> (Membership.Mem.{u4, u4} M (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.hasMem.{u4, u4} (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) (SMul.smul.{u2, u4} A M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) a m) p)
-but is expected to have type
- forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u4}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u3} A] [_inst_5 : Semiring.{u4} B] [_inst_6 : Module.{u3, u2} A M _inst_4 _inst_2] [_inst_7 : Module.{u4, u2} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u3} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u4} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u3, u2} R A M (Algebra.toSMul.{u1, u3} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u3, u2} A M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} A M (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} A M (Semiring.toMonoidWithZero.{u3} A _inst_4) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u3, u2} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u4, u2} R B M (Algebra.toSMul.{u1, u4} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u4, u2} B M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u4, u2} B M (MonoidWithZero.toZero.{u4} B (Semiring.toMonoidWithZero.{u4} B _inst_5)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u4, u2} B M (Semiring.toMonoidWithZero.{u4} B _inst_5) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u4, u2} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u3, u4, u2} A B M (SMulZeroClass.toSMul.{u3, u2} A M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} A M (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} A M (Semiring.toMonoidWithZero.{u3} A _inst_4) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u3, u2} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u4, u2} B M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u4, u2} B M (MonoidWithZero.toZero.{u4} B (Semiring.toMonoidWithZero.{u4} B _inst_5)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u4, u2} B M (Semiring.toMonoidWithZero.{u4} B _inst_5) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u4, u2} B M _inst_5 _inst_2 _inst_7))))] (p : Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (a : A) {m : M}, (Membership.mem.{u2, u2} M (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.instMembership.{u2, u2} (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u3 u4, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) m p) -> (Membership.mem.{u2, u2} M (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.instMembership.{u2, u2} (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u3 u4, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) (HSMul.hSMul.{u3, u2, u2} A M M (instHSMul.{u3, u2} A M (SMulZeroClass.toSMul.{u3, u2} A M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} A M (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} A M (Semiring.toMonoidWithZero.{u3} A _inst_4) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u3, u2} A M _inst_4 _inst_2 _inst_6))))) a m) p)
+<too large>
Case conversion may be inaccurate. Consider using '#align subbimodule.smul_mem Subbimodule.smul_memₓ'. -/
theorem smul_mem (p : Submodule (A ⊗[R] B) M) (a : A) {m : M} (hm : m ∈ p) : a • m ∈ p :=
by
@@ -117,10 +111,7 @@ theorem smul_mem (p : Submodule (A ⊗[R] B) M) (a : A) {m : M} (hm : m ∈ p) :
#align subbimodule.smul_mem Subbimodule.smul_mem
/- warning: subbimodule.smul_mem' -> Subbimodule.smul_mem' is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (p : Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (b : B) {m : M}, (Membership.Mem.{u4, u4} M (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.hasMem.{u4, u4} (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) m p) -> (Membership.Mem.{u4, u4} M (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.hasMem.{u4, u4} (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) (SMul.smul.{u3, u4} B M (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) b m) p)
-but is expected to have type
- forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u4}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u3} A] [_inst_5 : Semiring.{u4} B] [_inst_6 : Module.{u3, u2} A M _inst_4 _inst_2] [_inst_7 : Module.{u4, u2} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u3} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u4} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u3, u2} R A M (Algebra.toSMul.{u1, u3} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u3, u2} A M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} A M (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} A M (Semiring.toMonoidWithZero.{u3} A _inst_4) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u3, u2} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u4, u2} R B M (Algebra.toSMul.{u1, u4} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u4, u2} B M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u4, u2} B M (MonoidWithZero.toZero.{u4} B (Semiring.toMonoidWithZero.{u4} B _inst_5)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u4, u2} B M (Semiring.toMonoidWithZero.{u4} B _inst_5) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u4, u2} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u3, u4, u2} A B M (SMulZeroClass.toSMul.{u3, u2} A M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} A M (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} A M (Semiring.toMonoidWithZero.{u3} A _inst_4) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u3, u2} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u4, u2} B M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u4, u2} B M (MonoidWithZero.toZero.{u4} B (Semiring.toMonoidWithZero.{u4} B _inst_5)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u4, u2} B M (Semiring.toMonoidWithZero.{u4} B _inst_5) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u4, u2} B M _inst_5 _inst_2 _inst_7))))] (p : Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (b : B) {m : M}, (Membership.mem.{u2, u2} M (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.instMembership.{u2, u2} (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u3 u4, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) m p) -> (Membership.mem.{u2, u2} M (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.instMembership.{u2, u2} (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u3 u4, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) (HSMul.hSMul.{u4, u2, u2} B M M (instHSMul.{u4, u2} B M (SMulZeroClass.toSMul.{u4, u2} B M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u4, u2} B M (MonoidWithZero.toZero.{u4} B (Semiring.toMonoidWithZero.{u4} B _inst_5)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u4, u2} B M (Semiring.toMonoidWithZero.{u4} B _inst_5) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u4, u2} B M _inst_5 _inst_2 _inst_7))))) b m) p)
+<too large>
Case conversion may be inaccurate. Consider using '#align subbimodule.smul_mem' Subbimodule.smul_mem'ₓ'. -/
theorem smul_mem' (p : Submodule (A ⊗[R] B) M) (b : B) {m : M} (hm : m ∈ p) : b • m ∈ p :=
by
@@ -129,10 +120,7 @@ theorem smul_mem' (p : Submodule (A ⊗[R] B) M) (b : B) {m : M} (hm : m ∈ p)
#align subbimodule.smul_mem' Subbimodule.smul_mem'
/- warning: subbimodule.base_change -> Subbimodule.baseChange is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (S : Type.{u5}) [_inst_13 : CommSemiring.{u5} S] [_inst_14 : Module.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2] [_inst_15 : Algebra.{u5, u2} S A _inst_13 _inst_4] [_inst_16 : Algebra.{u5, u3} S B _inst_13 _inst_5] [_inst_17 : IsScalarTower.{u5, u2, u4} S A M (SMulZeroClass.toHasSmul.{u5, u2} S A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u5, u2} S A (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u5, u2} S A (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u5, u2} S A (CommSemiring.toSemiring.{u5} S _inst_13) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u5, u2} S A _inst_13 _inst_4 _inst_15))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u5, u4} S M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u5, u4} S M (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u5, u4} S M (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2 _inst_14))))] [_inst_18 : IsScalarTower.{u5, u3, u4} S B M (SMulZeroClass.toHasSmul.{u5, u3} S B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u5, u3} S B (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u5, u3} S B (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u5, u3} S B (CommSemiring.toSemiring.{u5} S _inst_13) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u5, u3} S B _inst_13 _inst_5 _inst_16))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u5, u4} S M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u5, u4} S M (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u5, u4} S M (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2 _inst_14))))], (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{max u2 u3, u4} (TensorProduct.{u5, u2, u3} S _inst_13 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u5, u2} S A _inst_13 _inst_4 _inst_15) (Algebra.toModule.{u5, u3} S B _inst_13 _inst_5 _inst_16)) M (Algebra.TensorProduct.TensorProduct.semiring.{u5, u2, u3} S _inst_13 A _inst_4 _inst_15 B _inst_5 _inst_16) _inst_2 (TensorProduct.Algebra.module.{u5, u2, u3, u4} S A B M _inst_13 _inst_2 _inst_14 _inst_4 _inst_5 _inst_6 _inst_7 _inst_15 _inst_16 _inst_17 _inst_18 _inst_12))
-but is expected to have type
- forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (Algebra.toSMul.{u1, u2} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (Algebra.toSMul.{u1, u3} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (S : Type.{u5}) [_inst_13 : CommSemiring.{u5} S] [_inst_14 : Module.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2] [_inst_15 : Algebra.{u5, u2} S A _inst_13 _inst_4] [_inst_16 : Algebra.{u5, u3} S B _inst_13 _inst_5] [_inst_17 : IsScalarTower.{u5, u2, u4} S A M (Algebra.toSMul.{u5, u2} S A _inst_13 _inst_4 _inst_15) (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u5, u4} S M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u5, u4} S M (CommMonoidWithZero.toZero.{u5} S (CommSemiring.toCommMonoidWithZero.{u5} S _inst_13)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u5, u4} S M (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2 _inst_14))))] [_inst_18 : IsScalarTower.{u5, u3, u4} S B M (Algebra.toSMul.{u5, u3} S B _inst_13 _inst_5 _inst_16) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u5, u4} S M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u5, u4} S M (CommMonoidWithZero.toZero.{u5} S (CommSemiring.toCommMonoidWithZero.{u5} S _inst_13)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u5, u4} S M (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2 _inst_14))))], (Submodule.{max u3 u2, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{max u3 u2, u4} (TensorProduct.{u5, u2, u3} S _inst_13 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u5, u2} S A _inst_13 _inst_4 _inst_15) (Algebra.toModule.{u5, u3} S B _inst_13 _inst_5 _inst_16)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u5, u2, u3} S _inst_13 A _inst_4 _inst_15 B _inst_5 _inst_16) _inst_2 (TensorProduct.Algebra.module.{u5, u2, u3, u4} S A B M _inst_13 _inst_2 _inst_14 _inst_4 _inst_5 _inst_6 _inst_7 _inst_15 _inst_16 _inst_17 _inst_18 _inst_12))
+<too large>
Case conversion may be inaccurate. Consider using '#align subbimodule.base_change Subbimodule.baseChangeₓ'. -/
/-- If `A` and `B` are also `algebra`s over yet another set of scalars `S` then we may "base change"
from `R` to `S`. -/
@@ -144,10 +132,7 @@ def baseChange (S : Type _) [CommSemiring S] [Module S M] [Algebra S A] [Algebra
#align subbimodule.base_change Subbimodule.baseChange
/- warning: subbimodule.to_submodule -> Subbimodule.toSubmodule is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))], (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{u2, u4} A M _inst_4 _inst_2 _inst_6)
-but is expected to have type
- forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (Algebra.toSMul.{u1, u2} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (Algebra.toSMul.{u1, u3} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))], (Submodule.{max u3 u2, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{u2, u4} A M _inst_4 _inst_2 _inst_6)
+<too large>
Case conversion may be inaccurate. Consider using '#align subbimodule.to_submodule Subbimodule.toSubmoduleₓ'. -/
/-- Forgetting the `B` action, a `submodule` over `A ⊗[R] B` is just a `submodule` over `A`. -/
@[simps]
@@ -158,10 +143,7 @@ def toSubmodule (p : Submodule (A ⊗[R] B) M) : Submodule A M :=
#align subbimodule.to_submodule Subbimodule.toSubmodule
/- warning: subbimodule.to_submodule' -> Subbimodule.toSubmodule' is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))], (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{u3, u4} B M _inst_5 _inst_2 _inst_7)
-but is expected to have type
- forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (Algebra.toSMul.{u1, u2} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (Algebra.toSMul.{u1, u3} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))], (Submodule.{max u3 u2, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{u3, u4} B M _inst_5 _inst_2 _inst_7)
+<too large>
Case conversion may be inaccurate. Consider using '#align subbimodule.to_submodule' Subbimodule.toSubmodule'ₓ'. -/
/-- Forgetting the `A` action, a `submodule` over `A ⊗[R] B` is just a `submodule` over `B`. -/
@[simps]
@@ -180,10 +162,7 @@ variable (R S M : Type _) [Ring R] [Ring S]
variable [AddCommGroup M] [Module R M] [Module S M] [SMulCommClass R S M]
/- warning: subbimodule.to_subbimodule_int -> Subbimodule.toSubbimoduleInt is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) (S : Type.{u2}) (M : Type.{u3}) [_inst_1 : Ring.{u1} R] [_inst_2 : Ring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : Module.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_5 : Module.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_6 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (Module.toMulActionWithZero.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4)))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (SMulWithZero.toSmulZeroClass.{u2, u3} S M (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (MulActionWithZero.toSMulWithZero.{u2, u3} S M (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (Module.toMulActionWithZero.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5))))], (Submodule.{max u1 u2, u3} (TensorProduct.{0, u1, u2} Nat Nat.commSemiring R S (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommMonoid.natModule.{u1} R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (AddCommMonoid.natModule.{u2} S (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))))) M (Algebra.TensorProduct.TensorProduct.semiring.{0, u1, u2} Nat Nat.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) S (Ring.toSemiring.{u2} S _inst_2) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Nat R S M Nat.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommMonoid.natModule.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (Subbimodule.toSubbimoduleInt._proof_1.{u1, u3} R M _inst_1 _inst_3 _inst_4) (Subbimodule.toSubbimoduleInt._proof_2.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6)) -> (Submodule.{max u1 u2, u3} (TensorProduct.{0, u1, u2} Int Int.commSemiring R S (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommGroup.intModule.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.intModule.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2))))) M (Algebra.TensorProduct.TensorProduct.semiring.{0, u1, u2} Int Int.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraInt.{u1} R _inst_1) S (Ring.toSemiring.{u2} S _inst_2) (algebraInt.{u2} S _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Int R S M Int.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.intModule.{u3} M _inst_3) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraInt.{u1} R _inst_1) (algebraInt.{u2} S _inst_2) (AddCommGroup.intIsScalarTower.{u1, u3} R M _inst_1 _inst_3 _inst_4) (AddCommGroup.intIsScalarTower.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6))
-but is expected to have type
- forall (R : Type.{u1}) (S : Type.{u2}) (M : Type.{u3}) [_inst_1 : Ring.{u1} R] [_inst_2 : Ring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : Module.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_5 : Module.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_6 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toSMul.{u1, u3} R M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (Module.toMulActionWithZero.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4)))) (SMulZeroClass.toSMul.{u2, u3} S M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (SMulWithZero.toSMulZeroClass.{u2, u3} S M (MonoidWithZero.toZero.{u2} S (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (MulActionWithZero.toSMulWithZero.{u2, u3} S M (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (Module.toMulActionWithZero.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5))))], (Submodule.{max u2 u1, u3} (TensorProduct.{0, u1, u2} Nat Nat.commSemiring R S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommMonoid.natModule.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (AddCommMonoid.natModule.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))))) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{0, u1, u2} Nat Nat.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) S (Ring.toSemiring.{u2} S _inst_2) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Nat R S M Nat.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommMonoid.natModule.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (AddCommMonoid.nat_isScalarTower.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4) (AddCommMonoid.nat_isScalarTower.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5) _inst_6)) -> (Submodule.{max u2 u1, u3} (TensorProduct.{0, u1, u2} Int Int.instCommSemiringInt R S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommGroup.intModule.{u1} R (Ring.toAddCommGroup.{u1} R _inst_1)) (AddCommGroup.intModule.{u2} S (Ring.toAddCommGroup.{u2} S _inst_2))) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{0, u1, u2} Int Int.instCommSemiringInt R (Ring.toSemiring.{u1} R _inst_1) (algebraInt.{u1} R _inst_1) S (Ring.toSemiring.{u2} S _inst_2) (algebraInt.{u2} S _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Int R S M Int.instCommSemiringInt (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.intModule.{u3} M _inst_3) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraInt.{u1} R _inst_1) (algebraInt.{u2} S _inst_2) (AddCommGroup.intIsScalarTower.{u1, u3} R M _inst_1 _inst_3 _inst_4) (AddCommGroup.intIsScalarTower.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6))
+<too large>
Case conversion may be inaccurate. Consider using '#align subbimodule.to_subbimodule_int Subbimodule.toSubbimoduleIntₓ'. -/
/-- A `submodule` over `R ⊗[ℕ] S` is naturally also a `submodule` over the canonically-isomorphic
ring `R ⊗[ℤ] S`. -/
@@ -193,10 +172,7 @@ def toSubbimoduleInt (p : Submodule (R ⊗[ℕ] S) M) : Submodule (R ⊗[ℤ] S)
#align subbimodule.to_subbimodule_int Subbimodule.toSubbimoduleInt
/- warning: subbimodule.to_subbimodule_nat -> Subbimodule.toSubbimoduleNat is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) (S : Type.{u2}) (M : Type.{u3}) [_inst_1 : Ring.{u1} R] [_inst_2 : Ring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : Module.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_5 : Module.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_6 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (Module.toMulActionWithZero.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4)))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (SMulWithZero.toSmulZeroClass.{u2, u3} S M (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (MulActionWithZero.toSMulWithZero.{u2, u3} S M (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (Module.toMulActionWithZero.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5))))], (Submodule.{max u1 u2, u3} (TensorProduct.{0, u1, u2} Int Int.commSemiring R S (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommGroup.intModule.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.intModule.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2))))) M (Algebra.TensorProduct.TensorProduct.semiring.{0, u1, u2} Int Int.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraInt.{u1} R _inst_1) S (Ring.toSemiring.{u2} S _inst_2) (algebraInt.{u2} S _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Int R S M Int.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.intModule.{u3} M _inst_3) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraInt.{u1} R _inst_1) (algebraInt.{u2} S _inst_2) (AddCommGroup.intIsScalarTower.{u1, u3} R M _inst_1 _inst_3 _inst_4) (AddCommGroup.intIsScalarTower.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6)) -> (Submodule.{max u1 u2, u3} (TensorProduct.{0, u1, u2} Nat Nat.commSemiring R S (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommMonoid.natModule.{u1} R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (AddCommMonoid.natModule.{u2} S (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))))) M (Algebra.TensorProduct.TensorProduct.semiring.{0, u1, u2} Nat Nat.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) S (Ring.toSemiring.{u2} S _inst_2) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Nat R S M Nat.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommMonoid.natModule.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (Subbimodule.toSubbimoduleNat._proof_1.{u1, u3} R M _inst_1 _inst_3 _inst_4) (Subbimodule.toSubbimoduleNat._proof_2.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6))
-but is expected to have type
- forall (R : Type.{u1}) (S : Type.{u2}) (M : Type.{u3}) [_inst_1 : Ring.{u1} R] [_inst_2 : Ring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : Module.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_5 : Module.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_6 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toSMul.{u1, u3} R M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (Module.toMulActionWithZero.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4)))) (SMulZeroClass.toSMul.{u2, u3} S M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (SMulWithZero.toSMulZeroClass.{u2, u3} S M (MonoidWithZero.toZero.{u2} S (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (MulActionWithZero.toSMulWithZero.{u2, u3} S M (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (Module.toMulActionWithZero.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5))))], (Submodule.{max u2 u1, u3} (TensorProduct.{0, u1, u2} Int Int.instCommSemiringInt R S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommGroup.intModule.{u1} R (Ring.toAddCommGroup.{u1} R _inst_1)) (AddCommGroup.intModule.{u2} S (Ring.toAddCommGroup.{u2} S _inst_2))) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{0, u1, u2} Int Int.instCommSemiringInt R (Ring.toSemiring.{u1} R _inst_1) (algebraInt.{u1} R _inst_1) S (Ring.toSemiring.{u2} S _inst_2) (algebraInt.{u2} S _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Int R S M Int.instCommSemiringInt (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.intModule.{u3} M _inst_3) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraInt.{u1} R _inst_1) (algebraInt.{u2} S _inst_2) (AddCommGroup.intIsScalarTower.{u1, u3} R M _inst_1 _inst_3 _inst_4) (AddCommGroup.intIsScalarTower.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6)) -> (Submodule.{max u2 u1, u3} (TensorProduct.{0, u1, u2} Nat Nat.commSemiring R S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommMonoid.natModule.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (AddCommMonoid.natModule.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))))) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{0, u1, u2} Nat Nat.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) S (Ring.toSemiring.{u2} S _inst_2) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Nat R S M Nat.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommMonoid.natModule.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (AddCommMonoid.nat_isScalarTower.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4) (AddCommMonoid.nat_isScalarTower.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5) _inst_6))
+<too large>
Case conversion may be inaccurate. Consider using '#align subbimodule.to_subbimodule_nat Subbimodule.toSubbimoduleNatₓ'. -/
/-- A `submodule` over `R ⊗[ℤ] S` is naturally also a `submodule` over the canonically-isomorphic
ring `R ⊗[ℕ] S`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
! This file was ported from Lean 3 source module algebra.module.bimodule
-! leanprover-community/mathlib commit 58cef51f7a819e7227224461e392dee423302f2d
+! leanprover-community/mathlib commit 33c67ae661dd8988516ff7f247b0be3018cdd952
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.RingTheory.TensorProduct
/-!
# Bimodules
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
One frequently encounters situations in which several sets of scalars act on a single space, subject
to compatibility condition(s). A distinguished instance of this is the theory of bimodules: one has
two rings `R`, `S` acting on an additive group `M`, with `R` acting covariantly ("on the left")
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -79,6 +79,12 @@ variable [IsScalarTower R A M] [IsScalarTower R B M]
variable [SMulCommClass A B M]
+/- warning: subbimodule.mk -> Subbimodule.mk is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (p : AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))), (forall (a : A) {m : M}, (Membership.Mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.hasMem.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.setLike.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) m p) -> (Membership.Mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.hasMem.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.setLike.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) (SMul.smul.{u2, u4} A M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) a m) p)) -> (forall (b : B) {m : M}, (Membership.Mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.hasMem.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.setLike.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) m p) -> (Membership.Mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.hasMem.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.setLike.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) (SMul.smul.{u3, u4} B M (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) b m) p)) -> (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))
+but is expected to have type
+ forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (Algebra.toSMul.{u1, u2} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (Algebra.toSMul.{u1, u3} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (p : AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))), (forall (a : A) {m : M}, (Membership.mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.instMembership.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) m p) -> (Membership.mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.instMembership.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) (HSMul.hSMul.{u2, u4, u4} A M M (instHSMul.{u2, u4} A M (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6))))) a m) p)) -> (forall (b : B) {m : M}, (Membership.mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.instMembership.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) m p) -> (Membership.mem.{u4, u4} M (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SetLike.instMembership.{u4, u4} (AddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) M (AddSubmonoid.instSetLikeAddSubmonoid.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)))) (HSMul.hSMul.{u3, u4, u4} B M M (instHSMul.{u3, u4} B M (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))) b m) p)) -> (Submodule.{max u3 u2, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))
+Case conversion may be inaccurate. Consider using '#align subbimodule.mk Subbimodule.mkₓ'. -/
/-- A constructor for a subbimodule which demands closure under the two sets of scalars
individually, rather than jointly via their tensor product.
@@ -95,18 +101,36 @@ def mk (p : AddSubmonoid M) (hA : ∀ (a : A) {m : M}, m ∈ p → a • m ∈ p
fun z w hz hw hm => by simpa only [add_smul] using p.add_mem (hz hm) (hw hm) }
#align subbimodule.mk Subbimodule.mk
+/- warning: subbimodule.smul_mem -> Subbimodule.smul_mem is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (p : Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (a : A) {m : M}, (Membership.Mem.{u4, u4} M (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.hasMem.{u4, u4} (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) m p) -> (Membership.Mem.{u4, u4} M (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.hasMem.{u4, u4} (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) (SMul.smul.{u2, u4} A M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) a m) p)
+but is expected to have type
+ forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u4}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u3} A] [_inst_5 : Semiring.{u4} B] [_inst_6 : Module.{u3, u2} A M _inst_4 _inst_2] [_inst_7 : Module.{u4, u2} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u3} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u4} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u3, u2} R A M (Algebra.toSMul.{u1, u3} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u3, u2} A M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} A M (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} A M (Semiring.toMonoidWithZero.{u3} A _inst_4) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u3, u2} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u4, u2} R B M (Algebra.toSMul.{u1, u4} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u4, u2} B M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u4, u2} B M (MonoidWithZero.toZero.{u4} B (Semiring.toMonoidWithZero.{u4} B _inst_5)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u4, u2} B M (Semiring.toMonoidWithZero.{u4} B _inst_5) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u4, u2} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u3, u4, u2} A B M (SMulZeroClass.toSMul.{u3, u2} A M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} A M (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} A M (Semiring.toMonoidWithZero.{u3} A _inst_4) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u3, u2} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u4, u2} B M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u4, u2} B M (MonoidWithZero.toZero.{u4} B (Semiring.toMonoidWithZero.{u4} B _inst_5)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u4, u2} B M (Semiring.toMonoidWithZero.{u4} B _inst_5) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u4, u2} B M _inst_5 _inst_2 _inst_7))))] (p : Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (a : A) {m : M}, (Membership.mem.{u2, u2} M (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.instMembership.{u2, u2} (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u3 u4, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) m p) -> (Membership.mem.{u2, u2} M (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.instMembership.{u2, u2} (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u3 u4, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) (HSMul.hSMul.{u3, u2, u2} A M M (instHSMul.{u3, u2} A M (SMulZeroClass.toSMul.{u3, u2} A M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} A M (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} A M (Semiring.toMonoidWithZero.{u3} A _inst_4) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u3, u2} A M _inst_4 _inst_2 _inst_6))))) a m) p)
+Case conversion may be inaccurate. Consider using '#align subbimodule.smul_mem Subbimodule.smul_memₓ'. -/
theorem smul_mem (p : Submodule (A ⊗[R] B) M) (a : A) {m : M} (hm : m ∈ p) : a • m ∈ p :=
by
suffices a • m = a ⊗ₜ[R] (1 : B) • m by exact this.symm ▸ p.smul_mem _ hm
simp [TensorProduct.Algebra.smul_def]
#align subbimodule.smul_mem Subbimodule.smul_mem
+/- warning: subbimodule.smul_mem' -> Subbimodule.smul_mem' is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (p : Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (b : B) {m : M}, (Membership.Mem.{u4, u4} M (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.hasMem.{u4, u4} (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) m p) -> (Membership.Mem.{u4, u4} M (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.hasMem.{u4, u4} (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) (SMul.smul.{u3, u4} B M (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) b m) p)
+but is expected to have type
+ forall {R : Type.{u1}} {A : Type.{u3}} {B : Type.{u4}} {M : Type.{u2}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u3} A] [_inst_5 : Semiring.{u4} B] [_inst_6 : Module.{u3, u2} A M _inst_4 _inst_2] [_inst_7 : Module.{u4, u2} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u3} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u4} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u3, u2} R A M (Algebra.toSMul.{u1, u3} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u3, u2} A M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} A M (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} A M (Semiring.toMonoidWithZero.{u3} A _inst_4) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u3, u2} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u4, u2} R B M (Algebra.toSMul.{u1, u4} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u4, u2} B M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u4, u2} B M (MonoidWithZero.toZero.{u4} B (Semiring.toMonoidWithZero.{u4} B _inst_5)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u4, u2} B M (Semiring.toMonoidWithZero.{u4} B _inst_5) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u4, u2} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u3, u4, u2} A B M (SMulZeroClass.toSMul.{u3, u2} A M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} A M (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} A M (Semiring.toMonoidWithZero.{u3} A _inst_4) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u3, u2} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u4, u2} B M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u4, u2} B M (MonoidWithZero.toZero.{u4} B (Semiring.toMonoidWithZero.{u4} B _inst_5)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u4, u2} B M (Semiring.toMonoidWithZero.{u4} B _inst_5) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u4, u2} B M _inst_5 _inst_2 _inst_7))))] (p : Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (b : B) {m : M}, (Membership.mem.{u2, u2} M (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.instMembership.{u2, u2} (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u3 u4, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) m p) -> (Membership.mem.{u2, u2} M (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) (SetLike.instMembership.{u2, u2} (Submodule.{max u4 u3, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) M (Submodule.setLike.{max u3 u4, u2} (TensorProduct.{u1, u3, u4} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} B (Semiring.toNonAssocSemiring.{u4} B _inst_5))) (Algebra.toModule.{u1, u3} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u4} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u3, u4} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u3, u4, u2} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12))) (HSMul.hSMul.{u4, u2, u2} B M M (instHSMul.{u4, u2} B M (SMulZeroClass.toSMul.{u4, u2} B M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u4, u2} B M (MonoidWithZero.toZero.{u4} B (Semiring.toMonoidWithZero.{u4} B _inst_5)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u4, u2} B M (Semiring.toMonoidWithZero.{u4} B _inst_5) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u4, u2} B M _inst_5 _inst_2 _inst_7))))) b m) p)
+Case conversion may be inaccurate. Consider using '#align subbimodule.smul_mem' Subbimodule.smul_mem'ₓ'. -/
theorem smul_mem' (p : Submodule (A ⊗[R] B) M) (b : B) {m : M} (hm : m ∈ p) : b • m ∈ p :=
by
suffices b • m = (1 : A) ⊗ₜ[R] b • m by exact this.symm ▸ p.smul_mem _ hm
simp [TensorProduct.Algebra.smul_def]
#align subbimodule.smul_mem' Subbimodule.smul_mem'
+/- warning: subbimodule.base_change -> Subbimodule.baseChange is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (S : Type.{u5}) [_inst_13 : CommSemiring.{u5} S] [_inst_14 : Module.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2] [_inst_15 : Algebra.{u5, u2} S A _inst_13 _inst_4] [_inst_16 : Algebra.{u5, u3} S B _inst_13 _inst_5] [_inst_17 : IsScalarTower.{u5, u2, u4} S A M (SMulZeroClass.toHasSmul.{u5, u2} S A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u5, u2} S A (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u5, u2} S A (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u5, u2} S A (CommSemiring.toSemiring.{u5} S _inst_13) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u5, u2} S A _inst_13 _inst_4 _inst_15))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u5, u4} S M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u5, u4} S M (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u5, u4} S M (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2 _inst_14))))] [_inst_18 : IsScalarTower.{u5, u3, u4} S B M (SMulZeroClass.toHasSmul.{u5, u3} S B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u5, u3} S B (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u5, u3} S B (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u5, u3} S B (CommSemiring.toSemiring.{u5} S _inst_13) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u5, u3} S B _inst_13 _inst_5 _inst_16))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u5, u4} S M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u5, u4} S M (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u5, u4} S M (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2 _inst_14))))], (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{max u2 u3, u4} (TensorProduct.{u5, u2, u3} S _inst_13 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u5, u2} S A _inst_13 _inst_4 _inst_15) (Algebra.toModule.{u5, u3} S B _inst_13 _inst_5 _inst_16)) M (Algebra.TensorProduct.TensorProduct.semiring.{u5, u2, u3} S _inst_13 A _inst_4 _inst_15 B _inst_5 _inst_16) _inst_2 (TensorProduct.Algebra.module.{u5, u2, u3, u4} S A B M _inst_13 _inst_2 _inst_14 _inst_4 _inst_5 _inst_6 _inst_7 _inst_15 _inst_16 _inst_17 _inst_18 _inst_12))
+but is expected to have type
+ forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (Algebra.toSMul.{u1, u2} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (Algebra.toSMul.{u1, u3} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))] (S : Type.{u5}) [_inst_13 : CommSemiring.{u5} S] [_inst_14 : Module.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2] [_inst_15 : Algebra.{u5, u2} S A _inst_13 _inst_4] [_inst_16 : Algebra.{u5, u3} S B _inst_13 _inst_5] [_inst_17 : IsScalarTower.{u5, u2, u4} S A M (Algebra.toSMul.{u5, u2} S A _inst_13 _inst_4 _inst_15) (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u5, u4} S M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u5, u4} S M (CommMonoidWithZero.toZero.{u5} S (CommSemiring.toCommMonoidWithZero.{u5} S _inst_13)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u5, u4} S M (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2 _inst_14))))] [_inst_18 : IsScalarTower.{u5, u3, u4} S B M (Algebra.toSMul.{u5, u3} S B _inst_13 _inst_5 _inst_16) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u5, u4} S M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u5, u4} S M (CommMonoidWithZero.toZero.{u5} S (CommSemiring.toCommMonoidWithZero.{u5} S _inst_13)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u5, u4} S M (Semiring.toMonoidWithZero.{u5} S (CommSemiring.toSemiring.{u5} S _inst_13)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u5, u4} S M (CommSemiring.toSemiring.{u5} S _inst_13) _inst_2 _inst_14))))], (Submodule.{max u3 u2, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{max u3 u2, u4} (TensorProduct.{u5, u2, u3} S _inst_13 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u5, u2} S A _inst_13 _inst_4 _inst_15) (Algebra.toModule.{u5, u3} S B _inst_13 _inst_5 _inst_16)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u5, u2, u3} S _inst_13 A _inst_4 _inst_15 B _inst_5 _inst_16) _inst_2 (TensorProduct.Algebra.module.{u5, u2, u3, u4} S A B M _inst_13 _inst_2 _inst_14 _inst_4 _inst_5 _inst_6 _inst_7 _inst_15 _inst_16 _inst_17 _inst_18 _inst_12))
+Case conversion may be inaccurate. Consider using '#align subbimodule.base_change Subbimodule.baseChangeₓ'. -/
/-- If `A` and `B` are also `algebra`s over yet another set of scalars `S` then we may "base change"
from `R` to `S`. -/
@[simps]
@@ -116,6 +140,12 @@ def baseChange (S : Type _) [CommSemiring S] [Module S M] [Algebra S A] [Algebra
mk p.toAddSubmonoid (smul_mem p) (smul_mem' p)
#align subbimodule.base_change Subbimodule.baseChange
+/- warning: subbimodule.to_submodule -> Subbimodule.toSubmodule is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))], (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{u2, u4} A M _inst_4 _inst_2 _inst_6)
+but is expected to have type
+ forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (Algebra.toSMul.{u1, u2} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (Algebra.toSMul.{u1, u3} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))], (Submodule.{max u3 u2, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{u2, u4} A M _inst_4 _inst_2 _inst_6)
+Case conversion may be inaccurate. Consider using '#align subbimodule.to_submodule Subbimodule.toSubmoduleₓ'. -/
/-- Forgetting the `B` action, a `submodule` over `A ⊗[R] B` is just a `submodule` over `A`. -/
@[simps]
def toSubmodule (p : Submodule (A ⊗[R] B) M) : Submodule A M :=
@@ -124,6 +154,12 @@ def toSubmodule (p : Submodule (A ⊗[R] B) M) : Submodule A M :=
smul_mem' := smul_mem p }
#align subbimodule.to_submodule Subbimodule.toSubmodule
+/- warning: subbimodule.to_submodule' -> Subbimodule.toSubmodule' is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (SMulZeroClass.toHasSmul.{u1, u2} R A (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u2} A (AddMonoid.toAddZeroClass.{u2} A (AddCommMonoid.toAddMonoid.{u2} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4)))))) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8))))) (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (SMulZeroClass.toHasSmul.{u1, u3} R B (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (SMulWithZero.toSmulZeroClass.{u1, u3} R B (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R B (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5)))))) (Module.toMulActionWithZero.{u1, u3} R B (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9))))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toHasSmul.{u1, u4} R M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toHasSmul.{u2, u4} A M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u4} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u3, u4} B M (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u3, u4} B M (MulZeroClass.toHasZero.{u3} B (MulZeroOneClass.toMulZeroClass.{u3} B (MonoidWithZero.toMulZeroOneClass.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)))) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddZeroClass.toHasZero.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2))) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))], (Submodule.{max u2 u3, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{u3, u4} B M _inst_5 _inst_2 _inst_7)
+but is expected to have type
+ forall {R : Type.{u1}} {A : Type.{u2}} {B : Type.{u3}} {M : Type.{u4}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_3 : Module.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_4 : Semiring.{u2} A] [_inst_5 : Semiring.{u3} B] [_inst_6 : Module.{u2, u4} A M _inst_4 _inst_2] [_inst_7 : Module.{u3, u4} B M _inst_5 _inst_2] [_inst_8 : Algebra.{u1, u2} R A _inst_1 _inst_4] [_inst_9 : Algebra.{u1, u3} R B _inst_1 _inst_5] [_inst_10 : IsScalarTower.{u1, u2, u4} R A M (Algebra.toSMul.{u1, u2} R A _inst_1 _inst_4 _inst_8) (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_11 : IsScalarTower.{u1, u3, u4} R B M (Algebra.toSMul.{u1, u3} R B _inst_1 _inst_5 _inst_9) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7)))) (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u1, u4} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3))))] [_inst_12 : SMulCommClass.{u2, u3, u4} A B M (SMulZeroClass.toSMul.{u2, u4} A M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u4} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_4)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u4} A M (Semiring.toMonoidWithZero.{u2} A _inst_4) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u2, u4} A M _inst_4 _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u4} B M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u4} B M (MonoidWithZero.toZero.{u3} B (Semiring.toMonoidWithZero.{u3} B _inst_5)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u4} B M (Semiring.toMonoidWithZero.{u3} B _inst_5) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_2)) (Module.toMulActionWithZero.{u3, u4} B M _inst_5 _inst_2 _inst_7))))], (Submodule.{max u3 u2, u4} (TensorProduct.{u1, u2, u3} R _inst_1 A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_4))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B _inst_5))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_4 _inst_8) (Algebra.toModule.{u1, u3} R B _inst_1 _inst_5 _inst_9)) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, u3} R _inst_1 A _inst_4 _inst_8 B _inst_5 _inst_9) _inst_2 (TensorProduct.Algebra.module.{u1, u2, u3, u4} R A B M _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12)) -> (Submodule.{u3, u4} B M _inst_5 _inst_2 _inst_7)
+Case conversion may be inaccurate. Consider using '#align subbimodule.to_submodule' Subbimodule.toSubmodule'ₓ'. -/
/-- Forgetting the `A` action, a `submodule` over `A ⊗[R] B` is just a `submodule` over `B`. -/
@[simps]
def toSubmodule' (p : Submodule (A ⊗[R] B) M) : Submodule B M :=
@@ -140,6 +176,12 @@ variable (R S M : Type _) [Ring R] [Ring S]
variable [AddCommGroup M] [Module R M] [Module S M] [SMulCommClass R S M]
+/- warning: subbimodule.to_subbimodule_int -> Subbimodule.toSubbimoduleInt is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) (S : Type.{u2}) (M : Type.{u3}) [_inst_1 : Ring.{u1} R] [_inst_2 : Ring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : Module.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_5 : Module.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_6 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (Module.toMulActionWithZero.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4)))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (SMulWithZero.toSmulZeroClass.{u2, u3} S M (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (MulActionWithZero.toSMulWithZero.{u2, u3} S M (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (Module.toMulActionWithZero.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5))))], (Submodule.{max u1 u2, u3} (TensorProduct.{0, u1, u2} Nat Nat.commSemiring R S (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommMonoid.natModule.{u1} R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (AddCommMonoid.natModule.{u2} S (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))))) M (Algebra.TensorProduct.TensorProduct.semiring.{0, u1, u2} Nat Nat.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) S (Ring.toSemiring.{u2} S _inst_2) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Nat R S M Nat.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommMonoid.natModule.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (Subbimodule.toSubbimoduleInt._proof_1.{u1, u3} R M _inst_1 _inst_3 _inst_4) (Subbimodule.toSubbimoduleInt._proof_2.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6)) -> (Submodule.{max u1 u2, u3} (TensorProduct.{0, u1, u2} Int Int.commSemiring R S (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommGroup.intModule.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.intModule.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2))))) M (Algebra.TensorProduct.TensorProduct.semiring.{0, u1, u2} Int Int.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraInt.{u1} R _inst_1) S (Ring.toSemiring.{u2} S _inst_2) (algebraInt.{u2} S _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Int R S M Int.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.intModule.{u3} M _inst_3) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraInt.{u1} R _inst_1) (algebraInt.{u2} S _inst_2) (AddCommGroup.intIsScalarTower.{u1, u3} R M _inst_1 _inst_3 _inst_4) (AddCommGroup.intIsScalarTower.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6))
+but is expected to have type
+ forall (R : Type.{u1}) (S : Type.{u2}) (M : Type.{u3}) [_inst_1 : Ring.{u1} R] [_inst_2 : Ring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : Module.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_5 : Module.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_6 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toSMul.{u1, u3} R M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (Module.toMulActionWithZero.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4)))) (SMulZeroClass.toSMul.{u2, u3} S M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (SMulWithZero.toSMulZeroClass.{u2, u3} S M (MonoidWithZero.toZero.{u2} S (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (MulActionWithZero.toSMulWithZero.{u2, u3} S M (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (Module.toMulActionWithZero.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5))))], (Submodule.{max u2 u1, u3} (TensorProduct.{0, u1, u2} Nat Nat.commSemiring R S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommMonoid.natModule.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (AddCommMonoid.natModule.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))))) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{0, u1, u2} Nat Nat.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) S (Ring.toSemiring.{u2} S _inst_2) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Nat R S M Nat.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommMonoid.natModule.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (AddCommMonoid.nat_isScalarTower.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4) (AddCommMonoid.nat_isScalarTower.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5) _inst_6)) -> (Submodule.{max u2 u1, u3} (TensorProduct.{0, u1, u2} Int Int.instCommSemiringInt R S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommGroup.intModule.{u1} R (Ring.toAddCommGroup.{u1} R _inst_1)) (AddCommGroup.intModule.{u2} S (Ring.toAddCommGroup.{u2} S _inst_2))) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{0, u1, u2} Int Int.instCommSemiringInt R (Ring.toSemiring.{u1} R _inst_1) (algebraInt.{u1} R _inst_1) S (Ring.toSemiring.{u2} S _inst_2) (algebraInt.{u2} S _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Int R S M Int.instCommSemiringInt (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.intModule.{u3} M _inst_3) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraInt.{u1} R _inst_1) (algebraInt.{u2} S _inst_2) (AddCommGroup.intIsScalarTower.{u1, u3} R M _inst_1 _inst_3 _inst_4) (AddCommGroup.intIsScalarTower.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6))
+Case conversion may be inaccurate. Consider using '#align subbimodule.to_subbimodule_int Subbimodule.toSubbimoduleIntₓ'. -/
/-- A `submodule` over `R ⊗[ℕ] S` is naturally also a `submodule` over the canonically-isomorphic
ring `R ⊗[ℤ] S`. -/
@[simps]
@@ -147,6 +189,12 @@ def toSubbimoduleInt (p : Submodule (R ⊗[ℕ] S) M) : Submodule (R ⊗[ℤ] S)
baseChange ℤ p
#align subbimodule.to_subbimodule_int Subbimodule.toSubbimoduleInt
+/- warning: subbimodule.to_subbimodule_nat -> Subbimodule.toSubbimoduleNat is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) (S : Type.{u2}) (M : Type.{u3}) [_inst_1 : Ring.{u1} R] [_inst_2 : Ring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : Module.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_5 : Module.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_6 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (Module.toMulActionWithZero.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4)))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (SMulWithZero.toSmulZeroClass.{u2, u3} S M (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2))))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (MulActionWithZero.toSMulWithZero.{u2, u3} S M (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)))) (Module.toMulActionWithZero.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5))))], (Submodule.{max u1 u2, u3} (TensorProduct.{0, u1, u2} Int Int.commSemiring R S (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommGroup.intModule.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.intModule.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2))))) M (Algebra.TensorProduct.TensorProduct.semiring.{0, u1, u2} Int Int.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraInt.{u1} R _inst_1) S (Ring.toSemiring.{u2} S _inst_2) (algebraInt.{u2} S _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Int R S M Int.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.intModule.{u3} M _inst_3) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraInt.{u1} R _inst_1) (algebraInt.{u2} S _inst_2) (AddCommGroup.intIsScalarTower.{u1, u3} R M _inst_1 _inst_3 _inst_4) (AddCommGroup.intIsScalarTower.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6)) -> (Submodule.{max u1 u2, u3} (TensorProduct.{0, u1, u2} Nat Nat.commSemiring R S (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommMonoid.natModule.{u1} R (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (AddCommMonoid.natModule.{u2} S (AddCommGroup.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toAddCommGroup.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))))) M (Algebra.TensorProduct.TensorProduct.semiring.{0, u1, u2} Nat Nat.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) S (Ring.toSemiring.{u2} S _inst_2) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Nat R S M Nat.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommMonoid.natModule.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (Subbimodule.toSubbimoduleNat._proof_1.{u1, u3} R M _inst_1 _inst_3 _inst_4) (Subbimodule.toSubbimoduleNat._proof_2.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6))
+but is expected to have type
+ forall (R : Type.{u1}) (S : Type.{u2}) (M : Type.{u3}) [_inst_1 : Ring.{u1} R] [_inst_2 : Ring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : Module.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_5 : Module.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)] [_inst_6 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toSMul.{u1, u3} R M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (Module.toMulActionWithZero.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4)))) (SMulZeroClass.toSMul.{u2, u3} S M (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (SMulWithZero.toSMulZeroClass.{u2, u3} S M (MonoidWithZero.toZero.{u2} S (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (MulActionWithZero.toSMulWithZero.{u2, u3} S M (Semiring.toMonoidWithZero.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (NegZeroClass.toZero.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) (Module.toMulActionWithZero.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5))))], (Submodule.{max u2 u1, u3} (TensorProduct.{0, u1, u2} Int Int.instCommSemiringInt R S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommGroup.intModule.{u1} R (Ring.toAddCommGroup.{u1} R _inst_1)) (AddCommGroup.intModule.{u2} S (Ring.toAddCommGroup.{u2} S _inst_2))) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{0, u1, u2} Int Int.instCommSemiringInt R (Ring.toSemiring.{u1} R _inst_1) (algebraInt.{u1} R _inst_1) S (Ring.toSemiring.{u2} S _inst_2) (algebraInt.{u2} S _inst_2)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Int R S M Int.instCommSemiringInt (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.intModule.{u3} M _inst_3) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraInt.{u1} R _inst_1) (algebraInt.{u2} S _inst_2) (AddCommGroup.intIsScalarTower.{u1, u3} R M _inst_1 _inst_3 _inst_4) (AddCommGroup.intIsScalarTower.{u2, u3} S M _inst_2 _inst_3 _inst_5) _inst_6)) -> (Submodule.{max u2 u1, u3} (TensorProduct.{0, u1, u2} Nat Nat.commSemiring R S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))) (AddCommMonoid.natModule.{u1} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (AddCommMonoid.natModule.{u2} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} S (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} S (NonAssocRing.toNonUnitalNonAssocRing.{u2} S (Ring.toNonAssocRing.{u2} S _inst_2)))))) M (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{0, u1, u2} Nat Nat.commSemiring R (Ring.toSemiring.{u1} R _inst_1) (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) S (Ring.toSemiring.{u2} S _inst_2) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2))) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (TensorProduct.Algebra.module.{0, u1, u2, u3} Nat R S M Nat.commSemiring (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommMonoid.natModule.{u3} M (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u2} S _inst_2) _inst_4 _inst_5 (algebraNat.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (algebraNat.{u2} S (Ring.toSemiring.{u2} S _inst_2)) (AddCommMonoid.nat_isScalarTower.{u1, u3} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_4) (AddCommMonoid.nat_isScalarTower.{u2, u3} S M (Ring.toSemiring.{u2} S _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) _inst_5) _inst_6))
+Case conversion may be inaccurate. Consider using '#align subbimodule.to_subbimodule_nat Subbimodule.toSubbimoduleNatₓ'. -/
/-- A `submodule` over `R ⊗[ℤ] S` is naturally also a `submodule` over the canonically-isomorphic
ring `R ⊗[ℕ] S`. -/
@[simps]
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -65,15 +65,10 @@ namespace Subbimodule
section Algebra
variable {R A B M : Type*}
-
variable [CommSemiring R] [AddCommMonoid M] [Module R M]
-
variable [Semiring A] [Semiring B] [Module A M] [Module B M]
-
variable [Algebra R A] [Algebra R B]
-
variable [IsScalarTower R A M] [IsScalarTower R B M]
-
variable [SMulCommClass A B M]
/-- A constructor for a subbimodule which demands closure under the two sets of scalars
@@ -132,7 +127,6 @@ end Algebra
section Ring
variable (R S M : Type*) [Ring R] [Ring S]
-
variable [AddCommGroup M] [Module R M] [Module S M] [SMulCommClass R S M]
/-- A `Submodule` over `R ⊗[ℕ] S` is naturally also a `Submodule` over the canonically-isomorphic
Move:
Mathlib/Algebra/Module/DirectLimitAndTensorProduct.lean
to
LinearAlgebra/TensorProduct/DirectLimit.lean
Mathlib/LinearAlgebra/TensorProduct
to Mathlib/LinearAlgebra.TensorProduct.Basic.lean
Mathlib/RingTheory/TensorProduct
to Mathlib/RingTheory/TensorProduct/Basic.lean
.This follows suggestions 1, 2, 3 of
Co-authored-by: Antoine Chambert-Loir <antoine.chambert-loir@math.univ-paris-diderot.fr>
@@ -3,7 +3,7 @@ Copyright (c) 2022 Oliver Nash. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-/
-import Mathlib.RingTheory.TensorProduct
+import Mathlib.RingTheory.TensorProduct.Basic
#align_import algebra.module.bimodule from "leanprover-community/mathlib"@"58cef51f7a819e7227224461e392dee423302f2d"
@@ -18,8 +18,8 @@ and `S` acting contravariantly ("on the right"). The compatibility condition is
This situation can be set up in Mathlib as:
```lean
-variables (R S M : Type*) [Ring R] [Ring S]
-variables [AddCommGroup M] [Module R M] [Module Sᵐᵒᵖ M] [SMulCommClass R Sᵐᵒᵖ M]
+variable (R S M : Type*) [Ring R] [Ring S]
+variable [AddCommGroup M] [Module R M] [Module Sᵐᵒᵖ M] [SMulCommClass R Sᵐᵒᵖ M]
```
The key fact is:
```lean
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -64,7 +64,7 @@ namespace Subbimodule
section Algebra
-variable {R A B M : Type _}
+variable {R A B M : Type*}
variable [CommSemiring R] [AddCommMonoid M] [Module R M]
@@ -105,7 +105,7 @@ theorem smul_mem' (p : Submodule (A ⊗[R] B) M) (b : B) {m : M} (hm : m ∈ p)
/-- If `A` and `B` are also `Algebra`s over yet another set of scalars `S` then we may "base change"
from `R` to `S`. -/
@[simps!]
-def baseChange (S : Type _) [CommSemiring S] [Module S M] [Algebra S A] [Algebra S B]
+def baseChange (S : Type*) [CommSemiring S] [Module S M] [Algebra S A] [Algebra S B]
[IsScalarTower S A M] [IsScalarTower S B M] (p : Submodule (A ⊗[R] B) M) :
Submodule (A ⊗[S] B) M :=
mk p.toAddSubmonoid (smul_mem p) (smul_mem' p)
@@ -131,7 +131,7 @@ end Algebra
section Ring
-variable (R S M : Type _) [Ring R] [Ring S]
+variable (R S M : Type*) [Ring R] [Ring S]
variable [AddCommGroup M] [Module R M] [Module S M] [SMulCommClass R S M]
@@ -2,14 +2,11 @@
Copyright (c) 2022 Oliver Nash. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Nash
-
-! This file was ported from Lean 3 source module algebra.module.bimodule
-! leanprover-community/mathlib commit 58cef51f7a819e7227224461e392dee423302f2d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.RingTheory.TensorProduct
+#align_import algebra.module.bimodule from "leanprover-community/mathlib"@"58cef51f7a819e7227224461e392dee423302f2d"
+
/-!
# Bimodules
I wrote a script to find lines that contain an odd number of backticks
@@ -32,8 +32,8 @@ Note that the corresponding result holds for the canonically isomorphic ring `R
preferable to use the `R ⊗[ℕ] Sᵐᵒᵖ` instance since it works without additive inverses.
Bimodules are thus just a special case of `Module`s and most of their properties follow from the
-theory of `Module`s`. In particular a two-sided Submodule of a bimodule is simply a term of type
-`submodule (R ⊗[ℕ] Sᵐᵒᵖ) M`.
+theory of `Module`s. In particular a two-sided Submodule of a bimodule is simply a term of type
+`Submodule (R ⊗[ℕ] Sᵐᵒᵖ) M`.
This file is a place to collect results which are specific to bimodules.
@@ -39,22 +39,22 @@ This file is a place to collect results which are specific to bimodules.
## Main definitions
- * `subbimodule.mk`
- * `subbimodule.smul_mem`
- * `subbimodule.smul_mem'`
- * `subbimodule.to_submodule`
- * `subbimodule.to_submodule'`
+ * `Subbimodule.mk`
+ * `Subbimodule.smul_mem`
+ * `Subbimodule.smul_mem'`
+ * `Subbimodule.toSubmodule`
+ * `Subbimodule.toSubmodule'`
## Implementation details
For many definitions and lemmas it is preferable to set things up without opposites, i.e., as:
-`[module S M] [smul_comm_class R S M]` rather than `[module Sᵐᵒᵖ M] [smul_comm_class R Sᵐᵒᵖ M]`.
+`[Module S M] [SMulCommClass R S M]` rather than `[Module Sᵐᵒᵖ M] [SMulCommClass R Sᵐᵒᵖ M]`.
The corresponding results for opposites then follow automatically and do not require taking
advantage of the fact that `(Sᵐᵒᵖ)ᵐᵒᵖ` is defeq to `S`.
## TODO
-Develop the theory of two-sided ideals, which have type `submodule (R ⊗[ℕ] Rᵐᵒᵖ) R`.
+Develop the theory of two-sided ideals, which have type `Submodule (R ⊗[ℕ] Rᵐᵒᵖ) R`.
-/
@@ -83,7 +83,7 @@ variable [SMulCommClass A B M]
individually, rather than jointly via their tensor product.
Note that `R` plays no role but it is convenient to make this generalisation to support the cases
-`R = ℕ` and `R = ℤ` which both show up naturally. See also `base_change`. -/
+`R = ℕ` and `R = ℤ` which both show up naturally. See also `Subbimodule.baseChange`. -/
@[simps]
def mk (p : AddSubmonoid M) (hA : ∀ (a : A) {m : M}, m ∈ p → a • m ∈ p)
(hB : ∀ (b : B) {m : M}, m ∈ p → b • m ∈ p) : Submodule (A ⊗[R] B) M :=
@@ -155,4 +155,3 @@ def toSubbimoduleNat (p : Submodule (R ⊗[ℤ] S) M) : Submodule (R ⊗[ℕ] S)
end Ring
end Subbimodule
-
The unported dependencies are