algebra.module.bimoduleMathlib.Algebra.Module.Bimodule

This file has been ported!

Changes since the initial port

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.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -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"
 
Diff
@@ -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"
 
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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]
Diff
@@ -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`. -/
Diff
@@ -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")
Diff
@@ -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]

Changes in mathlib4

mathlib3
mathlib4
chore(*): remove empty lines between variable statements (#11418)

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)
Diff
@@ -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
Acl/reorg tensor product (#11282)

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

https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Tensor.20Products.20of.20modules.20and.20rings/near/424605543

Co-authored-by: Antoine Chambert-Loir <antoine.chambert-loir@math.univ-paris-diderot.fr>

Diff
@@ -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"
 
doc: Change old Lean 3 commands to Lean 4 in implementation notes (#10707)

I changed Lean's 3 old "variables" command to Lean's 4 command "variable" in some implementation notes. I might have missed some

Co-authored-by: Omar Mohsen <36500353+OmarMohsenGit@users.noreply.github.com>

Diff
@@ -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
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -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]
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -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
 
chore: fix backtick in docs (#5077)

I wrote a script to find lines that contain an odd number of backticks

Diff
@@ -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.
 
chore: tidy various files (#4304)

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Chris Hughes <chrishughes24@gmail.com>

Diff
@@ -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
-
feat: port Algebra.Module.Bimodule (#4077)

Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com>

Dependencies 10 + 516

517 files ported (98.1%)
215847 lines ported (98.4%)
Show graph

The unported dependencies are