linear_algebra.matrix.bilinear_formMathlib.LinearAlgebra.Matrix.BilinearForm

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -116,12 +116,12 @@ def BilinForm.toMatrixAux (b : n → M₂) : BilinForm R₂ M₂ →ₗ[R₂] Ma
 #align bilin_form.to_matrix_aux BilinForm.toMatrixAux
 -/
 
-#print BilinForm.toMatrixAux_apply /-
+#print LinearMap.BilinForm.toMatrixAux_apply /-
 @[simp]
-theorem BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (i j : n) :
+theorem LinearMap.BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (i j : n) :
     BilinForm.toMatrixAux b B i j = B (b i) (b j) :=
   rfl
-#align bilin_form.to_matrix_aux_apply BilinForm.toMatrixAux_apply
+#align bilin_form.to_matrix_aux_apply LinearMap.BilinForm.toMatrixAux_apply
 -/
 
 variable [Fintype n] [Fintype o]
@@ -132,7 +132,7 @@ theorem toBilin'Aux_toMatrixAux [DecidableEq n] (B₂ : BilinForm R₂ (n → R
   by
   refine' ext_basis (Pi.basisFun R₂ n) fun i j => _
   rw [Pi.basisFun_apply, Pi.basisFun_apply, Matrix.toBilin'Aux_stdBasis,
-    BilinForm.toMatrixAux_apply]
+    LinearMap.BilinForm.toMatrixAux_apply]
 #align to_bilin'_aux_to_matrix_aux toBilin'Aux_toMatrixAux
 -/
 
@@ -146,9 +146,9 @@ This section deals with the conversion between matrices and bilinear forms on `n
 
 variable [DecidableEq n] [DecidableEq o]
 
-#print BilinForm.toMatrix' /-
+#print LinearMap.BilinForm.toMatrix' /-
 /-- The linear equivalence between bilinear forms on `n → R` and `n × n` matrices -/
-def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R₂ :=
+def LinearMap.BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R₂ :=
   {
     BilinForm.toMatrixAux fun j =>
       stdBasis R₂ (fun _ => R₂) j
@@ -156,22 +156,24 @@ def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R
     invFun := Matrix.toBilin'Aux
     left_inv := by convert toBilin'Aux_toMatrixAux
     right_inv := fun M => by ext i j;
-      simp only [to_fun_eq_coe, BilinForm.toMatrixAux_apply, Matrix.toBilin'Aux_stdBasis] }
-#align bilin_form.to_matrix' BilinForm.toMatrix'
+      simp only [to_fun_eq_coe, LinearMap.BilinForm.toMatrixAux_apply,
+        Matrix.toBilin'Aux_stdBasis] }
+#align bilin_form.to_matrix' LinearMap.BilinForm.toMatrix'
 -/
 
-#print BilinForm.toMatrixAux_stdBasis /-
+#print LinearMap.BilinForm.toMatrixAux_stdBasis /-
 @[simp]
-theorem BilinForm.toMatrixAux_stdBasis (B : BilinForm R₂ (n → R₂)) :
-    BilinForm.toMatrixAux (fun j => stdBasis R₂ (fun _ => R₂) j 1) B = BilinForm.toMatrix' B :=
+theorem LinearMap.BilinForm.toMatrixAux_stdBasis (B : BilinForm R₂ (n → R₂)) :
+    BilinForm.toMatrixAux (fun j => stdBasis R₂ (fun _ => R₂) j 1) B =
+      LinearMap.BilinForm.toMatrix' B :=
   rfl
-#align bilin_form.to_matrix_aux_std_basis BilinForm.toMatrixAux_stdBasis
+#align bilin_form.to_matrix_aux_std_basis LinearMap.BilinForm.toMatrixAux_stdBasis
 -/
 
 #print Matrix.toBilin' /-
 /-- The linear equivalence between `n × n` matrices and bilinear forms on `n → R` -/
 def Matrix.toBilin' : Matrix n n R₂ ≃ₗ[R₂] BilinForm R₂ (n → R₂) :=
-  BilinForm.toMatrix'.symm
+  LinearMap.BilinForm.toMatrix'.symm
 #align matrix.to_bilin' Matrix.toBilin'
 -/
 
@@ -210,56 +212,58 @@ theorem Matrix.toBilin'_stdBasis (M : Matrix n n R₂) (i j : n) :
 #align matrix.to_bilin'_std_basis Matrix.toBilin'_stdBasis
 -/
 
-#print BilinForm.toMatrix'_symm /-
+#print LinearMap.BilinForm.toMatrix'_symm /-
 @[simp]
-theorem BilinForm.toMatrix'_symm :
-    (BilinForm.toMatrix'.symm : Matrix n n R₂ ≃ₗ[R₂] _) = Matrix.toBilin' :=
+theorem LinearMap.BilinForm.toMatrix'_symm :
+    (LinearMap.BilinForm.toMatrix'.symm : Matrix n n R₂ ≃ₗ[R₂] _) = Matrix.toBilin' :=
   rfl
-#align bilin_form.to_matrix'_symm BilinForm.toMatrix'_symm
+#align bilin_form.to_matrix'_symm LinearMap.BilinForm.toMatrix'_symm
 -/
 
 #print Matrix.toBilin'_symm /-
 @[simp]
 theorem Matrix.toBilin'_symm :
-    (Matrix.toBilin'.symm : _ ≃ₗ[R₂] Matrix n n R₂) = BilinForm.toMatrix' :=
-  BilinForm.toMatrix'.symm_symm
+    (Matrix.toBilin'.symm : _ ≃ₗ[R₂] Matrix n n R₂) = LinearMap.BilinForm.toMatrix' :=
+  LinearMap.BilinForm.toMatrix'.symm_symm
 #align matrix.to_bilin'_symm Matrix.toBilin'_symm
 -/
 
 #print Matrix.toBilin'_toMatrix' /-
 @[simp]
 theorem Matrix.toBilin'_toMatrix' (B : BilinForm R₂ (n → R₂)) :
-    Matrix.toBilin' (BilinForm.toMatrix' B) = B :=
+    Matrix.toBilin' (LinearMap.BilinForm.toMatrix' B) = B :=
   Matrix.toBilin'.apply_symm_apply B
 #align matrix.to_bilin'_to_matrix' Matrix.toBilin'_toMatrix'
 -/
 
-#print BilinForm.toMatrix'_toBilin' /-
+#print LinearMap.BilinForm.toMatrix'_toBilin' /-
 @[simp]
-theorem BilinForm.toMatrix'_toBilin' (M : Matrix n n R₂) :
-    BilinForm.toMatrix' (Matrix.toBilin' M) = M :=
-  BilinForm.toMatrix'.apply_symm_apply M
-#align bilin_form.to_matrix'_to_bilin' BilinForm.toMatrix'_toBilin'
+theorem LinearMap.BilinForm.toMatrix'_toBilin' (M : Matrix n n R₂) :
+    LinearMap.BilinForm.toMatrix' (Matrix.toBilin' M) = M :=
+  LinearMap.BilinForm.toMatrix'.apply_symm_apply M
+#align bilin_form.to_matrix'_to_bilin' LinearMap.BilinForm.toMatrix'_toBilin'
 -/
 
-#print BilinForm.toMatrix'_apply /-
+#print LinearMap.BilinForm.toMatrix'_apply /-
 @[simp]
-theorem BilinForm.toMatrix'_apply (B : BilinForm R₂ (n → R₂)) (i j : n) :
-    BilinForm.toMatrix' B i j = B (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) :=
+theorem LinearMap.BilinForm.toMatrix'_apply (B : BilinForm R₂ (n → R₂)) (i j : n) :
+    LinearMap.BilinForm.toMatrix' B i j =
+      B (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) :=
   rfl
-#align bilin_form.to_matrix'_apply BilinForm.toMatrix'_apply
+#align bilin_form.to_matrix'_apply LinearMap.BilinForm.toMatrix'_apply
 -/
 
-#print BilinForm.toMatrix'_comp /-
+#print LinearMap.BilinForm.toMatrix'_comp /-
 @[simp]
-theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o → R₂) →ₗ[R₂] n → R₂) :
+theorem LinearMap.BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂))
+    (l r : (o → R₂) →ₗ[R₂] n → R₂) :
     (B.comp l r).toMatrix' = l.toMatrix'ᵀ ⬝ B.toMatrix' ⬝ r.toMatrix' :=
   by
   ext i j
-  simp only [BilinForm.toMatrix'_apply, BilinForm.comp_apply, transpose_apply, Matrix.mul_apply,
-    LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
+  simp only [LinearMap.BilinForm.toMatrix'_apply, LinearMap.BilinForm.comp_apply, transpose_apply,
+    Matrix.mul_apply, LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
   rw [sum_comm]
-  conv_lhs => rw [← BilinForm.sum_repr_mul_repr_mul (Pi.basisFun R₂ n) (l _) (r _)]
+  conv_lhs => rw [← LinearMap.BilinForm.sum_repr_mul_repr_mul (Pi.basisFun R₂ n) (l _) (r _)]
   rw [Finsupp.sum_fintype]
   · apply sum_congr rfl
     rintro i' -
@@ -270,50 +274,53 @@ theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o →
         Pi.basisFun_apply, of_apply]
     · intros; simp only [zero_smul, smul_zero]
   · intros; simp only [zero_smul, Finsupp.sum_zero]
-#align bilin_form.to_matrix'_comp BilinForm.toMatrix'_comp
+#align bilin_form.to_matrix'_comp LinearMap.BilinForm.toMatrix'_comp
 -/
 
-#print BilinForm.toMatrix'_compLeft /-
-theorem BilinForm.toMatrix'_compLeft (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
-    (B.compLeft f).toMatrix' = f.toMatrix'ᵀ ⬝ B.toMatrix' := by
-  simp only [BilinForm.compLeft, BilinForm.toMatrix'_comp, to_matrix'_id, Matrix.mul_one]
-#align bilin_form.to_matrix'_comp_left BilinForm.toMatrix'_compLeft
+#print LinearMap.BilinForm.toMatrix'_compLeft /-
+theorem LinearMap.BilinForm.toMatrix'_compLeft (B : BilinForm R₂ (n → R₂))
+    (f : (n → R₂) →ₗ[R₂] n → R₂) : (B.compLeft f).toMatrix' = f.toMatrix'ᵀ ⬝ B.toMatrix' := by
+  simp only [LinearMap.BilinForm.compLeft, LinearMap.BilinForm.toMatrix'_comp, to_matrix'_id,
+    Matrix.mul_one]
+#align bilin_form.to_matrix'_comp_left LinearMap.BilinForm.toMatrix'_compLeft
 -/
 
-#print BilinForm.toMatrix'_compRight /-
-theorem BilinForm.toMatrix'_compRight (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
-    (B.compRight f).toMatrix' = B.toMatrix' ⬝ f.toMatrix' := by
-  simp only [BilinForm.compRight, BilinForm.toMatrix'_comp, to_matrix'_id, transpose_one,
-    Matrix.one_mul]
-#align bilin_form.to_matrix'_comp_right BilinForm.toMatrix'_compRight
+#print LinearMap.BilinForm.toMatrix'_compRight /-
+theorem LinearMap.BilinForm.toMatrix'_compRight (B : BilinForm R₂ (n → R₂))
+    (f : (n → R₂) →ₗ[R₂] n → R₂) : (B.compRight f).toMatrix' = B.toMatrix' ⬝ f.toMatrix' := by
+  simp only [LinearMap.BilinForm.compRight, LinearMap.BilinForm.toMatrix'_comp, to_matrix'_id,
+    transpose_one, Matrix.one_mul]
+#align bilin_form.to_matrix'_comp_right LinearMap.BilinForm.toMatrix'_compRight
 -/
 
-#print BilinForm.mul_toMatrix'_mul /-
-theorem BilinForm.mul_toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix o n R₂)
+#print LinearMap.BilinForm.mul_toMatrix'_mul /-
+theorem LinearMap.BilinForm.mul_toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix o n R₂)
     (N : Matrix n o R₂) : M ⬝ B.toMatrix' ⬝ N = (B.comp Mᵀ.toLin' N.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp, transpose_transpose, to_matrix'_to_lin']
-#align bilin_form.mul_to_matrix'_mul BilinForm.mul_toMatrix'_mul
+#align bilin_form.mul_to_matrix'_mul LinearMap.BilinForm.mul_toMatrix'_mul
 -/
 
-#print BilinForm.mul_toMatrix' /-
-theorem BilinForm.mul_toMatrix' (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
+#print LinearMap.BilinForm.mul_toMatrix' /-
+theorem LinearMap.BilinForm.mul_toMatrix' (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
     M ⬝ B.toMatrix' = (B.compLeft Mᵀ.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp_left, transpose_transpose, to_matrix'_to_lin']
-#align bilin_form.mul_to_matrix' BilinForm.mul_toMatrix'
+#align bilin_form.mul_to_matrix' LinearMap.BilinForm.mul_toMatrix'
 -/
 
-#print BilinForm.toMatrix'_mul /-
-theorem BilinForm.toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
+#print LinearMap.BilinForm.toMatrix'_mul /-
+theorem LinearMap.BilinForm.toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
     B.toMatrix' ⬝ M = (B.compRight M.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp_right, to_matrix'_to_lin']
-#align bilin_form.to_matrix'_mul BilinForm.toMatrix'_mul
+#align bilin_form.to_matrix'_mul LinearMap.BilinForm.toMatrix'_mul
 -/
 
 #print Matrix.toBilin'_comp /-
 theorem Matrix.toBilin'_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
     M.toBilin'.comp P.toLin' Q.toLin' = (Pᵀ ⬝ M ⬝ Q).toBilin' :=
-  BilinForm.toMatrix'.Injective
-    (by simp only [BilinForm.toMatrix'_comp, BilinForm.toMatrix'_toBilin', to_matrix'_to_lin'])
+  LinearMap.BilinForm.toMatrix'.Injective
+    (by
+      simp only [LinearMap.BilinForm.toMatrix'_comp, LinearMap.BilinForm.toMatrix'_toBilin',
+        to_matrix'_to_lin'])
 #align matrix.to_bilin'_comp Matrix.toBilin'_comp
 -/
 
@@ -334,7 +341,7 @@ variable [DecidableEq n] (b : Basis n R₂ M₂)
 /-- `bilin_form.to_matrix b` is the equivalence between `R`-bilinear forms on `M` and
 `n`-by-`n` matrices with entries in `R`, if `b` is an `R`-basis for `M`. -/
 noncomputable def BilinForm.toMatrix : BilinForm R₂ M₂ ≃ₗ[R₂] Matrix n n R₂ :=
-  (BilinForm.congr b.equivFun).trans BilinForm.toMatrix'
+  (LinearMap.BilinForm.congr b.equivFun).trans LinearMap.BilinForm.toMatrix'
 #align bilin_form.to_matrix BilinForm.toMatrix
 -/
 
@@ -350,7 +357,7 @@ noncomputable def Matrix.toBilin : Matrix n n R₂ ≃ₗ[R₂] BilinForm R₂ M
 @[simp]
 theorem BilinForm.toMatrix_apply (B : BilinForm R₂ M₂) (i j : n) :
     BilinForm.toMatrix b B i j = B (b i) (b j) := by
-  rw [BilinForm.toMatrix, LinearEquiv.trans_apply, BilinForm.toMatrix'_apply, congr_apply,
+  rw [BilinForm.toMatrix, LinearEquiv.trans_apply, LinearMap.BilinForm.toMatrix'_apply, congr_apply,
     b.equiv_fun_symm_std_basis, b.equiv_fun_symm_std_basis]
 #align bilin_form.to_matrix_apply BilinForm.toMatrix_apply
 -/
@@ -371,7 +378,7 @@ theorem Matrix.toBilin_apply (M : Matrix n n R₂) (x y : M₂) :
 -- Not a `simp` lemma since `bilin_form.to_matrix` needs an extra argument
 theorem BilinearForm.toMatrixAux_eq (B : BilinForm R₂ M₂) :
     BilinForm.toMatrixAux b B = BilinForm.toMatrix b B :=
-  ext fun i j => by rw [BilinForm.toMatrix_apply, BilinForm.toMatrixAux_apply]
+  ext fun i j => by rw [BilinForm.toMatrix_apply, LinearMap.BilinForm.toMatrixAux_apply]
 #align bilinear_form.to_matrix_aux_eq BilinearForm.toMatrixAux_eq
 -/
 
@@ -396,9 +403,10 @@ theorem Matrix.toBilin_basisFun : Matrix.toBilin (Pi.basisFun R₂ n) = Matrix.t
 -/
 
 #print BilinForm.toMatrix_basisFun /-
-theorem BilinForm.toMatrix_basisFun : BilinForm.toMatrix (Pi.basisFun R₂ n) = BilinForm.toMatrix' :=
-  by ext B;
-  rw [BilinForm.toMatrix_apply, BilinForm.toMatrix'_apply, Pi.basisFun_apply, Pi.basisFun_apply]
+theorem BilinForm.toMatrix_basisFun :
+    BilinForm.toMatrix (Pi.basisFun R₂ n) = LinearMap.BilinForm.toMatrix' := by ext B;
+  rw [BilinForm.toMatrix_apply, LinearMap.BilinForm.toMatrix'_apply, Pi.basisFun_apply,
+    Pi.basisFun_apply]
 #align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFun
 -/
 
@@ -431,10 +439,10 @@ theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R
       (toMatrix c b l)ᵀ ⬝ BilinForm.toMatrix b B ⬝ toMatrix c b r :=
   by
   ext i j
-  simp only [BilinForm.toMatrix_apply, BilinForm.comp_apply, transpose_apply, Matrix.mul_apply,
-    LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
+  simp only [BilinForm.toMatrix_apply, LinearMap.BilinForm.comp_apply, transpose_apply,
+    Matrix.mul_apply, LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
   rw [sum_comm]
-  conv_lhs => rw [← BilinForm.sum_repr_mul_repr_mul b]
+  conv_lhs => rw [← LinearMap.BilinForm.sum_repr_mul_repr_mul b]
   rw [Finsupp.sum_fintype]
   · apply sum_congr rfl
     rintro i' -
@@ -458,8 +466,8 @@ theorem BilinForm.toMatrix_compLeft (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R
 #print BilinForm.toMatrix_compRight /-
 theorem BilinForm.toMatrix_compRight (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
     BilinForm.toMatrix b (B.compRight f) = BilinForm.toMatrix b B ⬝ toMatrix b b f := by
-  simp only [BilinForm.compRight, BilinForm.toMatrix_comp b b, to_matrix_id, transpose_one,
-    Matrix.one_mul]
+  simp only [LinearMap.BilinForm.compRight, BilinForm.toMatrix_comp b b, to_matrix_id,
+    transpose_one, Matrix.one_mul]
 #align bilin_form.to_matrix_comp_right BilinForm.toMatrix_compRight
 -/
 
@@ -467,7 +475,8 @@ theorem BilinForm.toMatrix_compRight (B : BilinForm R₂ M₂) (f : M₂ →ₗ[
 @[simp]
 theorem BilinForm.toMatrix_mul_basis_toMatrix (c : Basis o R₂ M₂) (B : BilinForm R₂ M₂) :
     (b.toMatrix c)ᵀ ⬝ BilinForm.toMatrix b B ⬝ b.toMatrix c = BilinForm.toMatrix c B := by
-  rw [← LinearMap.toMatrix_id_eq_basis_toMatrix, ← BilinForm.toMatrix_comp, BilinForm.comp_id_id]
+  rw [← LinearMap.toMatrix_id_eq_basis_toMatrix, ← BilinForm.toMatrix_comp,
+    LinearMap.BilinForm.comp_id_id]
 #align bilin_form.to_matrix_mul_basis_to_matrix BilinForm.toMatrix_mul_basis_toMatrix
 -/
 
@@ -517,20 +526,22 @@ variable (J J₃ A A' : Matrix n n R₃)
 #print isAdjointPair_toBilin' /-
 @[simp]
 theorem isAdjointPair_toBilin' [DecidableEq n] :
-    BilinForm.IsAdjointPair (Matrix.toBilin' J) (Matrix.toBilin' J₃) (Matrix.toLin' A)
+    LinearMap.BilinForm.IsAdjointPair (Matrix.toBilin' J) (Matrix.toBilin' J₃) (Matrix.toLin' A)
         (Matrix.toLin' A') ↔
       Matrix.IsAdjointPair J J₃ A A' :=
   by
-  rw [BilinForm.isAdjointPair_iff_compLeft_eq_compRight]
+  rw [LinearMap.BilinForm.isAdjointPair_iff_compLeft_eq_compRight]
   have h :
-    ∀ B B' : BilinForm R₃ (n → R₃), B = B' ↔ BilinForm.toMatrix' B = BilinForm.toMatrix' B' :=
+    ∀ B B' : BilinForm R₃ (n → R₃),
+      B = B' ↔ LinearMap.BilinForm.toMatrix' B = LinearMap.BilinForm.toMatrix' B' :=
     by
     intro B B'
     constructor <;> intro h
     · rw [h]
     · exact bilin_form.to_matrix'.injective h
-  rw [h, BilinForm.toMatrix'_compLeft, BilinForm.toMatrix'_compRight, LinearMap.toMatrix'_toLin',
-    LinearMap.toMatrix'_toLin', BilinForm.toMatrix'_toBilin', BilinForm.toMatrix'_toBilin']
+  rw [h, LinearMap.BilinForm.toMatrix'_compLeft, LinearMap.BilinForm.toMatrix'_compRight,
+    LinearMap.toMatrix'_toLin', LinearMap.toMatrix'_toLin', LinearMap.BilinForm.toMatrix'_toBilin',
+    LinearMap.BilinForm.toMatrix'_toBilin']
   rfl
 #align is_adjoint_pair_to_bilin' isAdjointPair_toBilin'
 -/
@@ -538,11 +549,11 @@ theorem isAdjointPair_toBilin' [DecidableEq n] :
 #print isAdjointPair_toBilin /-
 @[simp]
 theorem isAdjointPair_toBilin [DecidableEq n] :
-    BilinForm.IsAdjointPair (Matrix.toBilin b J) (Matrix.toBilin b J₃) (Matrix.toLin b b A)
-        (Matrix.toLin b b A') ↔
+    LinearMap.BilinForm.IsAdjointPair (Matrix.toBilin b J) (Matrix.toBilin b J₃)
+        (Matrix.toLin b b A) (Matrix.toLin b b A') ↔
       Matrix.IsAdjointPair J J₃ A A' :=
   by
-  rw [BilinForm.isAdjointPair_iff_compLeft_eq_compRight]
+  rw [LinearMap.BilinForm.isAdjointPair_iff_compLeft_eq_compRight]
   have h : ∀ B B' : BilinForm R₃ M₃, B = B' ↔ BilinForm.toMatrix b B = BilinForm.toMatrix b B' :=
     by
     intro B B'
@@ -595,7 +606,7 @@ variable [DecidableEq n]
 /-- The submodule of pair-self-adjoint matrices with respect to bilinear forms corresponding to
 given matrices `J`, `J₂`. -/
 def pairSelfAdjointMatricesSubmodule' : Submodule R₃ (Matrix n n R₃) :=
-  (BilinForm.isPairSelfAdjointSubmodule (Matrix.toBilin' J) (Matrix.toBilin' J₃)).map
+  (LinearMap.BilinForm.isPairSelfAdjointSubmodule (Matrix.toBilin' J) (Matrix.toBilin' J₃)).map
     ((LinearMap.toMatrix' : ((n → R₃) →ₗ[R₃] n → R₃) ≃ₗ[R₃] Matrix n n R₃) :
       ((n → R₃) →ₗ[R₃] n → R₃) →ₗ[R₃] Matrix n n R₃)
 #align pair_self_adjoint_matrices_submodule' pairSelfAdjointMatricesSubmodule'
@@ -653,7 +664,7 @@ variable {ι : Type _} [DecidableEq ι] [Fintype ι]
 #print Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin /-
 theorem Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin {M : Matrix ι ι R₂}
     (b : Basis ι R₂ M₂) : M.toBilin'.Nondegenerate ↔ (Matrix.toBilin b M).Nondegenerate :=
-  (nondegenerate_congr_iff b.equivFun.symm).symm
+  (LinearMap.BilinForm.nondegenerate_congr_iff b.equivFun.symm).symm
 #align matrix.nondegenerate_to_bilin'_iff_nondegenerate_to_bilin Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin
 -/
 
@@ -688,64 +699,64 @@ theorem Matrix.nondegenerate_toBilin_iff {M : Matrix ι ι R₃} (b : Basis ι R
 #align matrix.nondegenerate_to_bilin_iff Matrix.nondegenerate_toBilin_iff
 -/
 
-#print BilinForm.nondegenerate_toMatrix'_iff /-
+#print LinearMap.BilinForm.nondegenerate_toMatrix'_iff /-
 -- Lemmas transferring nondegeneracy between a bilinear form and its associated matrix
 @[simp]
-theorem nondegenerate_toMatrix'_iff {B : BilinForm R₃ (ι → R₃)} :
+theorem LinearMap.BilinForm.nondegenerate_toMatrix'_iff {B : BilinForm R₃ (ι → R₃)} :
     B.toMatrix'.Nondegenerate ↔ B.Nondegenerate :=
   Matrix.nondegenerate_toBilin'_iff.symm.trans <| (Matrix.toBilin'_toMatrix' B).symm ▸ Iff.rfl
-#align bilin_form.nondegenerate_to_matrix'_iff BilinForm.nondegenerate_toMatrix'_iff
+#align bilin_form.nondegenerate_to_matrix'_iff LinearMap.BilinForm.nondegenerate_toMatrix'_iff
 -/
 
-#print BilinForm.Nondegenerate.toMatrix' /-
-theorem Nondegenerate.toMatrix' {B : BilinForm R₃ (ι → R₃)} (h : B.Nondegenerate) :
-    B.toMatrix'.Nondegenerate :=
-  nondegenerate_toMatrix'_iff.mpr h
-#align bilin_form.nondegenerate.to_matrix' BilinForm.Nondegenerate.toMatrix'
+#print LinearMap.BilinForm.Nondegenerate.toMatrix' /-
+theorem LinearMap.BilinForm.Nondegenerate.toMatrix' {B : BilinForm R₃ (ι → R₃)}
+    (h : B.Nondegenerate) : B.toMatrix'.Nondegenerate :=
+  LinearMap.BilinForm.nondegenerate_toMatrix'_iff.mpr h
+#align bilin_form.nondegenerate.to_matrix' LinearMap.BilinForm.Nondegenerate.toMatrix'
 -/
 
-#print BilinForm.nondegenerate_toMatrix_iff /-
+#print LinearMap.BilinForm.nondegenerate_toMatrix_iff /-
 @[simp]
-theorem nondegenerate_toMatrix_iff {B : BilinForm R₃ M₃} (b : Basis ι R₃ M₃) :
+theorem LinearMap.BilinForm.nondegenerate_toMatrix_iff {B : BilinForm R₃ M₃} (b : Basis ι R₃ M₃) :
     (toMatrix b B).Nondegenerate ↔ B.Nondegenerate :=
   (Matrix.nondegenerate_toBilin_iff b).symm.trans <| (Matrix.toBilin_toMatrix b B).symm ▸ Iff.rfl
-#align bilin_form.nondegenerate_to_matrix_iff BilinForm.nondegenerate_toMatrix_iff
+#align bilin_form.nondegenerate_to_matrix_iff LinearMap.BilinForm.nondegenerate_toMatrix_iff
 -/
 
-#print BilinForm.Nondegenerate.toMatrix /-
-theorem Nondegenerate.toMatrix {B : BilinForm R₃ M₃} (h : B.Nondegenerate) (b : Basis ι R₃ M₃) :
-    (toMatrix b B).Nondegenerate :=
-  (nondegenerate_toMatrix_iff b).mpr h
-#align bilin_form.nondegenerate.to_matrix BilinForm.Nondegenerate.toMatrix
+#print LinearMap.BilinForm.Nondegenerate.toMatrix /-
+theorem LinearMap.BilinForm.Nondegenerate.toMatrix {B : BilinForm R₃ M₃} (h : B.Nondegenerate)
+    (b : Basis ι R₃ M₃) : (toMatrix b B).Nondegenerate :=
+  (LinearMap.BilinForm.nondegenerate_toMatrix_iff b).mpr h
+#align bilin_form.nondegenerate.to_matrix LinearMap.BilinForm.Nondegenerate.toMatrix
 -/
 
-#print BilinForm.nondegenerate_toBilin'_iff_det_ne_zero /-
+#print LinearMap.BilinForm.nondegenerate_toBilin'_iff_det_ne_zero /-
 -- Some shorthands for combining the above with `matrix.nondegenerate_of_det_ne_zero`
-theorem nondegenerate_toBilin'_iff_det_ne_zero {M : Matrix ι ι A} :
+theorem LinearMap.BilinForm.nondegenerate_toBilin'_iff_det_ne_zero {M : Matrix ι ι A} :
     M.toBilin'.Nondegenerate ↔ M.det ≠ 0 := by
   rw [Matrix.nondegenerate_toBilin'_iff, Matrix.nondegenerate_iff_det_ne_zero]
-#align bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero BilinForm.nondegenerate_toBilin'_iff_det_ne_zero
+#align bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero LinearMap.BilinForm.nondegenerate_toBilin'_iff_det_ne_zero
 -/
 
-#print BilinForm.nondegenerate_toBilin'_of_det_ne_zero' /-
-theorem nondegenerate_toBilin'_of_det_ne_zero' (M : Matrix ι ι A) (h : M.det ≠ 0) :
-    M.toBilin'.Nondegenerate :=
-  nondegenerate_toBilin'_iff_det_ne_zero.mpr h
-#align bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' BilinForm.nondegenerate_toBilin'_of_det_ne_zero'
+#print LinearMap.BilinForm.nondegenerate_toBilin'_of_det_ne_zero' /-
+theorem LinearMap.BilinForm.nondegenerate_toBilin'_of_det_ne_zero' (M : Matrix ι ι A)
+    (h : M.det ≠ 0) : M.toBilin'.Nondegenerate :=
+  LinearMap.BilinForm.nondegenerate_toBilin'_iff_det_ne_zero.mpr h
+#align bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' LinearMap.BilinForm.nondegenerate_toBilin'_of_det_ne_zero'
 -/
 
-#print BilinForm.nondegenerate_iff_det_ne_zero /-
-theorem nondegenerate_iff_det_ne_zero {B : BilinForm A M₃} (b : Basis ι A M₃) :
+#print LinearMap.BilinForm.nondegenerate_iff_det_ne_zero /-
+theorem LinearMap.BilinForm.nondegenerate_iff_det_ne_zero {B : BilinForm A M₃} (b : Basis ι A M₃) :
     B.Nondegenerate ↔ (toMatrix b B).det ≠ 0 := by
   rw [← Matrix.nondegenerate_iff_det_ne_zero, nondegenerate_to_matrix_iff]
-#align bilin_form.nondegenerate_iff_det_ne_zero BilinForm.nondegenerate_iff_det_ne_zero
+#align bilin_form.nondegenerate_iff_det_ne_zero LinearMap.BilinForm.nondegenerate_iff_det_ne_zero
 -/
 
-#print BilinForm.nondegenerate_of_det_ne_zero /-
-theorem nondegenerate_of_det_ne_zero (b : Basis ι A M₃) (h : (toMatrix b B₃).det ≠ 0) :
-    B₃.Nondegenerate :=
-  (nondegenerate_iff_det_ne_zero b).mpr h
-#align bilin_form.nondegenerate_of_det_ne_zero BilinForm.nondegenerate_of_det_ne_zero
+#print LinearMap.BilinForm.nondegenerate_of_det_ne_zero /-
+theorem LinearMap.BilinForm.nondegenerate_of_det_ne_zero (b : Basis ι A M₃)
+    (h : (toMatrix b B₃).det ≠ 0) : B₃.Nondegenerate :=
+  (LinearMap.BilinForm.nondegenerate_iff_det_ne_zero b).mpr h
+#align bilin_form.nondegenerate_of_det_ne_zero LinearMap.BilinForm.nondegenerate_of_det_ne_zero
 -/
 
 end Det
Diff
@@ -7,7 +7,7 @@ import LinearAlgebra.Matrix.Basis
 import LinearAlgebra.Matrix.Nondegenerate
 import LinearAlgebra.Matrix.NonsingularInverse
 import LinearAlgebra.Matrix.ToLinearEquiv
-import LinearAlgebra.BilinearForm
+import LinearAlgebra.BilinearForm.Basic
 import LinearAlgebra.Matrix.SesquilinearForm
 
 #align_import linear_algebra.matrix.bilinear_form from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
Diff
@@ -3,12 +3,12 @@ Copyright (c) 2020 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen, Kexing Ying
 -/
-import Mathbin.LinearAlgebra.Matrix.Basis
-import Mathbin.LinearAlgebra.Matrix.Nondegenerate
-import Mathbin.LinearAlgebra.Matrix.NonsingularInverse
-import Mathbin.LinearAlgebra.Matrix.ToLinearEquiv
-import Mathbin.LinearAlgebra.BilinearForm
-import Mathbin.LinearAlgebra.Matrix.SesquilinearForm
+import LinearAlgebra.Matrix.Basis
+import LinearAlgebra.Matrix.Nondegenerate
+import LinearAlgebra.Matrix.NonsingularInverse
+import LinearAlgebra.Matrix.ToLinearEquiv
+import LinearAlgebra.BilinearForm
+import LinearAlgebra.Matrix.SesquilinearForm
 
 #align_import linear_algebra.matrix.bilinear_form from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
 
Diff
@@ -568,7 +568,7 @@ theorem Matrix.isAdjointPair_equiv' [DecidableEq n] (P : Matrix n n R₃) (h : I
     by
     dsimp only [Matrix.IsAdjointPair]
     repeat' rw [Matrix.transpose_mul]
-    simp only [← Matrix.mul_eq_mul, ← mul_assoc, P.transpose_nonsing_inv]
+    simp only [← Matrix.hMul_eq_hMul, ← mul_assoc, P.transpose_nonsing_inv]
     conv_lhs =>
       rhs
       rw [mul_assoc, mul_assoc]
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2020 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen, Kexing Ying
-
-! This file was ported from Lean 3 source module linear_algebra.matrix.bilinear_form
-! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.LinearAlgebra.Matrix.Basis
 import Mathbin.LinearAlgebra.Matrix.Nondegenerate
@@ -15,6 +10,8 @@ import Mathbin.LinearAlgebra.Matrix.ToLinearEquiv
 import Mathbin.LinearAlgebra.BilinearForm
 import Mathbin.LinearAlgebra.Matrix.SesquilinearForm
 
+#align_import linear_algebra.matrix.bilinear_form from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
+
 /-!
 # Bilinear form
 
Diff
@@ -158,7 +158,7 @@ def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R
         1 with
     invFun := Matrix.toBilin'Aux
     left_inv := by convert toBilin'Aux_toMatrixAux
-    right_inv := fun M => by ext (i j);
+    right_inv := fun M => by ext i j;
       simp only [to_fun_eq_coe, BilinForm.toMatrixAux_apply, Matrix.toBilin'Aux_stdBasis] }
 #align bilin_form.to_matrix' BilinForm.toMatrix'
 -/
@@ -258,7 +258,7 @@ theorem BilinForm.toMatrix'_apply (B : BilinForm R₂ (n → R₂)) (i j : n) :
 theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o → R₂) →ₗ[R₂] n → R₂) :
     (B.comp l r).toMatrix' = l.toMatrix'ᵀ ⬝ B.toMatrix' ⬝ r.toMatrix' :=
   by
-  ext (i j)
+  ext i j
   simp only [BilinForm.toMatrix'_apply, BilinForm.comp_apply, transpose_apply, Matrix.mul_apply,
     LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
   rw [sum_comm]
@@ -433,7 +433,7 @@ theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R
     BilinForm.toMatrix c (B.comp l r) =
       (toMatrix c b l)ᵀ ⬝ BilinForm.toMatrix b B ⬝ toMatrix c b r :=
   by
-  ext (i j)
+  ext i j
   simp only [BilinForm.toMatrix_apply, BilinForm.comp_apply, transpose_apply, Matrix.mul_apply,
     LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
   rw [sum_comm]
Diff
@@ -84,6 +84,7 @@ def Matrix.toBilin'Aux [Fintype n] (M : Matrix n n R₂) : BilinForm R₂ (n →
 #align matrix.to_bilin'_aux Matrix.toBilin'Aux
 -/
 
+#print Matrix.toBilin'Aux_stdBasis /-
 theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n R₂) (i j : n) :
     M.toBilin'Aux (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) = M i j :=
   by
@@ -104,7 +105,9 @@ theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n
     have := Finset.mem_univ i
     contradiction
 #align matrix.to_bilin'_aux_std_basis Matrix.toBilin'Aux_stdBasis
+-/
 
+#print BilinForm.toMatrixAux /-
 /-- The linear map from bilinear forms to `matrix n n R` given an `n`-indexed basis.
 
 This is an auxiliary definition for the equivalence `matrix.to_bilin_form'`. -/
@@ -114,15 +117,19 @@ def BilinForm.toMatrixAux (b : n → M₂) : BilinForm R₂ M₂ →ₗ[R₂] Ma
   map_add' f g := rfl
   map_smul' f g := rfl
 #align bilin_form.to_matrix_aux BilinForm.toMatrixAux
+-/
 
+#print BilinForm.toMatrixAux_apply /-
 @[simp]
 theorem BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (i j : n) :
     BilinForm.toMatrixAux b B i j = B (b i) (b j) :=
   rfl
 #align bilin_form.to_matrix_aux_apply BilinForm.toMatrixAux_apply
+-/
 
 variable [Fintype n] [Fintype o]
 
+#print toBilin'Aux_toMatrixAux /-
 theorem toBilin'Aux_toMatrixAux [DecidableEq n] (B₂ : BilinForm R₂ (n → R₂)) :
     Matrix.toBilin'Aux (BilinForm.toMatrixAux (fun j => stdBasis R₂ (fun _ => R₂) j 1) B₂) = B₂ :=
   by
@@ -130,6 +137,7 @@ theorem toBilin'Aux_toMatrixAux [DecidableEq n] (B₂ : BilinForm R₂ (n → R
   rw [Pi.basisFun_apply, Pi.basisFun_apply, Matrix.toBilin'Aux_stdBasis,
     BilinForm.toMatrixAux_apply]
 #align to_bilin'_aux_to_matrix_aux toBilin'Aux_toMatrixAux
+-/
 
 section ToMatrix'
 
@@ -141,6 +149,7 @@ This section deals with the conversion between matrices and bilinear forms on `n
 
 variable [DecidableEq n] [DecidableEq o]
 
+#print BilinForm.toMatrix' /-
 /-- The linear equivalence between bilinear forms on `n → R` and `n × n` matrices -/
 def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R₂ :=
   {
@@ -152,29 +161,39 @@ def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R
     right_inv := fun M => by ext (i j);
       simp only [to_fun_eq_coe, BilinForm.toMatrixAux_apply, Matrix.toBilin'Aux_stdBasis] }
 #align bilin_form.to_matrix' BilinForm.toMatrix'
+-/
 
+#print BilinForm.toMatrixAux_stdBasis /-
 @[simp]
 theorem BilinForm.toMatrixAux_stdBasis (B : BilinForm R₂ (n → R₂)) :
     BilinForm.toMatrixAux (fun j => stdBasis R₂ (fun _ => R₂) j 1) B = BilinForm.toMatrix' B :=
   rfl
 #align bilin_form.to_matrix_aux_std_basis BilinForm.toMatrixAux_stdBasis
+-/
 
+#print Matrix.toBilin' /-
 /-- The linear equivalence between `n × n` matrices and bilinear forms on `n → R` -/
 def Matrix.toBilin' : Matrix n n R₂ ≃ₗ[R₂] BilinForm R₂ (n → R₂) :=
   BilinForm.toMatrix'.symm
 #align matrix.to_bilin' Matrix.toBilin'
+-/
 
+#print Matrix.toBilin'Aux_eq /-
 @[simp]
 theorem Matrix.toBilin'Aux_eq (M : Matrix n n R₂) : Matrix.toBilin'Aux M = Matrix.toBilin' M :=
   rfl
 #align matrix.to_bilin'_aux_eq Matrix.toBilin'Aux_eq
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Matrix.toBilin'_apply /-
 theorem Matrix.toBilin'_apply (M : Matrix n n R₂) (x y : n → R₂) :
     Matrix.toBilin' M x y = ∑ (i) (j), x i * M i j * y j :=
   rfl
 #align matrix.to_bilin'_apply Matrix.toBilin'_apply
+-/
 
+#print Matrix.toBilin'_apply' /-
 theorem Matrix.toBilin'_apply' (M : Matrix n n R₂) (v w : n → R₂) :
     Matrix.toBilin' M v w = Matrix.dotProduct v (M.mulVec w) :=
   by
@@ -184,43 +203,57 @@ theorem Matrix.toBilin'_apply' (M : Matrix n n R₂) (v w : n → R₂) :
   refine' Finset.sum_congr rfl fun _ _ => _
   rw [← mul_assoc]
 #align matrix.to_bilin'_apply' Matrix.toBilin'_apply'
+-/
 
+#print Matrix.toBilin'_stdBasis /-
 @[simp]
 theorem Matrix.toBilin'_stdBasis (M : Matrix n n R₂) (i j : n) :
     Matrix.toBilin' M (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) = M i j :=
   Matrix.toBilin'Aux_stdBasis M i j
 #align matrix.to_bilin'_std_basis Matrix.toBilin'_stdBasis
+-/
 
+#print BilinForm.toMatrix'_symm /-
 @[simp]
 theorem BilinForm.toMatrix'_symm :
     (BilinForm.toMatrix'.symm : Matrix n n R₂ ≃ₗ[R₂] _) = Matrix.toBilin' :=
   rfl
 #align bilin_form.to_matrix'_symm BilinForm.toMatrix'_symm
+-/
 
+#print Matrix.toBilin'_symm /-
 @[simp]
 theorem Matrix.toBilin'_symm :
     (Matrix.toBilin'.symm : _ ≃ₗ[R₂] Matrix n n R₂) = BilinForm.toMatrix' :=
   BilinForm.toMatrix'.symm_symm
 #align matrix.to_bilin'_symm Matrix.toBilin'_symm
+-/
 
+#print Matrix.toBilin'_toMatrix' /-
 @[simp]
 theorem Matrix.toBilin'_toMatrix' (B : BilinForm R₂ (n → R₂)) :
     Matrix.toBilin' (BilinForm.toMatrix' B) = B :=
   Matrix.toBilin'.apply_symm_apply B
 #align matrix.to_bilin'_to_matrix' Matrix.toBilin'_toMatrix'
+-/
 
+#print BilinForm.toMatrix'_toBilin' /-
 @[simp]
 theorem BilinForm.toMatrix'_toBilin' (M : Matrix n n R₂) :
     BilinForm.toMatrix' (Matrix.toBilin' M) = M :=
   BilinForm.toMatrix'.apply_symm_apply M
 #align bilin_form.to_matrix'_to_bilin' BilinForm.toMatrix'_toBilin'
+-/
 
+#print BilinForm.toMatrix'_apply /-
 @[simp]
 theorem BilinForm.toMatrix'_apply (B : BilinForm R₂ (n → R₂)) (i j : n) :
     BilinForm.toMatrix' B i j = B (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) :=
   rfl
 #align bilin_form.to_matrix'_apply BilinForm.toMatrix'_apply
+-/
 
+#print BilinForm.toMatrix'_comp /-
 @[simp]
 theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o → R₂) →ₗ[R₂] n → R₂) :
     (B.comp l r).toMatrix' = l.toMatrix'ᵀ ⬝ B.toMatrix' ⬝ r.toMatrix' :=
@@ -241,38 +274,51 @@ theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o →
     · intros; simp only [zero_smul, smul_zero]
   · intros; simp only [zero_smul, Finsupp.sum_zero]
 #align bilin_form.to_matrix'_comp BilinForm.toMatrix'_comp
+-/
 
+#print BilinForm.toMatrix'_compLeft /-
 theorem BilinForm.toMatrix'_compLeft (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
     (B.compLeft f).toMatrix' = f.toMatrix'ᵀ ⬝ B.toMatrix' := by
   simp only [BilinForm.compLeft, BilinForm.toMatrix'_comp, to_matrix'_id, Matrix.mul_one]
 #align bilin_form.to_matrix'_comp_left BilinForm.toMatrix'_compLeft
+-/
 
+#print BilinForm.toMatrix'_compRight /-
 theorem BilinForm.toMatrix'_compRight (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
     (B.compRight f).toMatrix' = B.toMatrix' ⬝ f.toMatrix' := by
   simp only [BilinForm.compRight, BilinForm.toMatrix'_comp, to_matrix'_id, transpose_one,
     Matrix.one_mul]
 #align bilin_form.to_matrix'_comp_right BilinForm.toMatrix'_compRight
+-/
 
+#print BilinForm.mul_toMatrix'_mul /-
 theorem BilinForm.mul_toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix o n R₂)
     (N : Matrix n o R₂) : M ⬝ B.toMatrix' ⬝ N = (B.comp Mᵀ.toLin' N.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp, transpose_transpose, to_matrix'_to_lin']
 #align bilin_form.mul_to_matrix'_mul BilinForm.mul_toMatrix'_mul
+-/
 
+#print BilinForm.mul_toMatrix' /-
 theorem BilinForm.mul_toMatrix' (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
     M ⬝ B.toMatrix' = (B.compLeft Mᵀ.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp_left, transpose_transpose, to_matrix'_to_lin']
 #align bilin_form.mul_to_matrix' BilinForm.mul_toMatrix'
+-/
 
+#print BilinForm.toMatrix'_mul /-
 theorem BilinForm.toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
     B.toMatrix' ⬝ M = (B.compRight M.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp_right, to_matrix'_to_lin']
 #align bilin_form.to_matrix'_mul BilinForm.toMatrix'_mul
+-/
 
+#print Matrix.toBilin'_comp /-
 theorem Matrix.toBilin'_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
     M.toBilin'.comp P.toLin' Q.toLin' = (Pᵀ ⬝ M ⬝ Q).toBilin' :=
   BilinForm.toMatrix'.Injective
     (by simp only [BilinForm.toMatrix'_comp, BilinForm.toMatrix'_toBilin', to_matrix'_to_lin'])
 #align matrix.to_bilin'_comp Matrix.toBilin'_comp
+-/
 
 end ToMatrix'
 
@@ -287,26 +333,33 @@ a module with a fixed basis.
 
 variable [DecidableEq n] (b : Basis n R₂ M₂)
 
+#print BilinForm.toMatrix /-
 /-- `bilin_form.to_matrix b` is the equivalence between `R`-bilinear forms on `M` and
 `n`-by-`n` matrices with entries in `R`, if `b` is an `R`-basis for `M`. -/
 noncomputable def BilinForm.toMatrix : BilinForm R₂ M₂ ≃ₗ[R₂] Matrix n n R₂ :=
   (BilinForm.congr b.equivFun).trans BilinForm.toMatrix'
 #align bilin_form.to_matrix BilinForm.toMatrix
+-/
 
+#print Matrix.toBilin /-
 /-- `bilin_form.to_matrix b` is the equivalence between `R`-bilinear forms on `M` and
 `n`-by-`n` matrices with entries in `R`, if `b` is an `R`-basis for `M`. -/
 noncomputable def Matrix.toBilin : Matrix n n R₂ ≃ₗ[R₂] BilinForm R₂ M₂ :=
   (BilinForm.toMatrix b).symm
 #align matrix.to_bilin Matrix.toBilin
+-/
 
+#print BilinForm.toMatrix_apply /-
 @[simp]
 theorem BilinForm.toMatrix_apply (B : BilinForm R₂ M₂) (i j : n) :
     BilinForm.toMatrix b B i j = B (b i) (b j) := by
   rw [BilinForm.toMatrix, LinearEquiv.trans_apply, BilinForm.toMatrix'_apply, congr_apply,
     b.equiv_fun_symm_std_basis, b.equiv_fun_symm_std_basis]
 #align bilin_form.to_matrix_apply BilinForm.toMatrix_apply
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Matrix.toBilin_apply /-
 @[simp]
 theorem Matrix.toBilin_apply (M : Matrix n n R₂) (x y : M₂) :
     Matrix.toBilin b M x y = ∑ (i) (j), b.repr x i * M i j * b.repr y j :=
@@ -315,43 +368,58 @@ theorem Matrix.toBilin_apply (M : Matrix n n R₂) (x y : M₂) :
   simp only [congr_symm, congr_apply, LinearEquiv.symm_symm, Matrix.toBilin'_apply,
     Basis.equivFun_apply]
 #align matrix.to_bilin_apply Matrix.toBilin_apply
+-/
 
+#print BilinearForm.toMatrixAux_eq /-
 -- Not a `simp` lemma since `bilin_form.to_matrix` needs an extra argument
 theorem BilinearForm.toMatrixAux_eq (B : BilinForm R₂ M₂) :
     BilinForm.toMatrixAux b B = BilinForm.toMatrix b B :=
   ext fun i j => by rw [BilinForm.toMatrix_apply, BilinForm.toMatrixAux_apply]
 #align bilinear_form.to_matrix_aux_eq BilinearForm.toMatrixAux_eq
+-/
 
+#print BilinForm.toMatrix_symm /-
 @[simp]
 theorem BilinForm.toMatrix_symm : (BilinForm.toMatrix b).symm = Matrix.toBilin b :=
   rfl
 #align bilin_form.to_matrix_symm BilinForm.toMatrix_symm
+-/
 
+#print Matrix.toBilin_symm /-
 @[simp]
 theorem Matrix.toBilin_symm : (Matrix.toBilin b).symm = BilinForm.toMatrix b :=
   (BilinForm.toMatrix b).symm_symm
 #align matrix.to_bilin_symm Matrix.toBilin_symm
+-/
 
+#print Matrix.toBilin_basisFun /-
 theorem Matrix.toBilin_basisFun : Matrix.toBilin (Pi.basisFun R₂ n) = Matrix.toBilin' := by ext M;
   simp only [Matrix.toBilin_apply, Matrix.toBilin'_apply, Pi.basisFun_repr]
 #align matrix.to_bilin_basis_fun Matrix.toBilin_basisFun
+-/
 
+#print BilinForm.toMatrix_basisFun /-
 theorem BilinForm.toMatrix_basisFun : BilinForm.toMatrix (Pi.basisFun R₂ n) = BilinForm.toMatrix' :=
   by ext B;
   rw [BilinForm.toMatrix_apply, BilinForm.toMatrix'_apply, Pi.basisFun_apply, Pi.basisFun_apply]
 #align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFun
+-/
 
+#print Matrix.toBilin_toMatrix /-
 @[simp]
 theorem Matrix.toBilin_toMatrix (B : BilinForm R₂ M₂) :
     Matrix.toBilin b (BilinForm.toMatrix b B) = B :=
   (Matrix.toBilin b).apply_symm_apply B
 #align matrix.to_bilin_to_matrix Matrix.toBilin_toMatrix
+-/
 
+#print BilinForm.toMatrix_toBilin /-
 @[simp]
 theorem BilinForm.toMatrix_toBilin (M : Matrix n n R₂) :
     BilinForm.toMatrix b (Matrix.toBilin b M) = M :=
   (BilinForm.toMatrix b).apply_symm_apply M
 #align bilin_form.to_matrix_to_bilin BilinForm.toMatrix_toBilin
+-/
 
 variable {M₂' : Type _} [AddCommMonoid M₂'] [Module R₂ M₂']
 
@@ -359,6 +427,7 @@ variable (c : Basis o R₂ M₂')
 
 variable [DecidableEq o]
 
+#print BilinForm.toMatrix_comp /-
 -- Cannot be a `simp` lemma because `b` must be inferred.
 theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R₂] M₂) :
     BilinForm.toMatrix c (B.comp l r) =
@@ -380,44 +449,59 @@ theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R
     · intros; simp only [zero_smul, smul_zero]
   · intros; simp only [zero_smul, Finsupp.sum_zero]
 #align bilin_form.to_matrix_comp BilinForm.toMatrix_comp
+-/
 
+#print BilinForm.toMatrix_compLeft /-
 theorem BilinForm.toMatrix_compLeft (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
     BilinForm.toMatrix b (B.compLeft f) = (toMatrix b b f)ᵀ ⬝ BilinForm.toMatrix b B := by
   simp only [comp_left, BilinForm.toMatrix_comp b b, to_matrix_id, Matrix.mul_one]
 #align bilin_form.to_matrix_comp_left BilinForm.toMatrix_compLeft
+-/
 
+#print BilinForm.toMatrix_compRight /-
 theorem BilinForm.toMatrix_compRight (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
     BilinForm.toMatrix b (B.compRight f) = BilinForm.toMatrix b B ⬝ toMatrix b b f := by
   simp only [BilinForm.compRight, BilinForm.toMatrix_comp b b, to_matrix_id, transpose_one,
     Matrix.one_mul]
 #align bilin_form.to_matrix_comp_right BilinForm.toMatrix_compRight
+-/
 
+#print BilinForm.toMatrix_mul_basis_toMatrix /-
 @[simp]
 theorem BilinForm.toMatrix_mul_basis_toMatrix (c : Basis o R₂ M₂) (B : BilinForm R₂ M₂) :
     (b.toMatrix c)ᵀ ⬝ BilinForm.toMatrix b B ⬝ b.toMatrix c = BilinForm.toMatrix c B := by
   rw [← LinearMap.toMatrix_id_eq_basis_toMatrix, ← BilinForm.toMatrix_comp, BilinForm.comp_id_id]
 #align bilin_form.to_matrix_mul_basis_to_matrix BilinForm.toMatrix_mul_basis_toMatrix
+-/
 
+#print BilinForm.mul_toMatrix_mul /-
 theorem BilinForm.mul_toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix o n R₂) (N : Matrix n o R₂) :
     M ⬝ BilinForm.toMatrix b B ⬝ N = BilinForm.toMatrix c (B.comp (toLin c b Mᵀ) (toLin c b N)) :=
   by simp only [B.to_matrix_comp b c, to_matrix_to_lin, transpose_transpose]
 #align bilin_form.mul_to_matrix_mul BilinForm.mul_toMatrix_mul
+-/
 
+#print BilinForm.mul_toMatrix /-
 theorem BilinForm.mul_toMatrix (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
     M ⬝ BilinForm.toMatrix b B = BilinForm.toMatrix b (B.compLeft (toLin b b Mᵀ)) := by
   rw [B.to_matrix_comp_left b, to_matrix_to_lin, transpose_transpose]
 #align bilin_form.mul_to_matrix BilinForm.mul_toMatrix
+-/
 
+#print BilinForm.toMatrix_mul /-
 theorem BilinForm.toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
     BilinForm.toMatrix b B ⬝ M = BilinForm.toMatrix b (B.compRight (toLin b b M)) := by
   rw [B.to_matrix_comp_right b, to_matrix_to_lin]
 #align bilin_form.to_matrix_mul BilinForm.toMatrix_mul
+-/
 
+#print Matrix.toBilin_comp /-
 theorem Matrix.toBilin_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
     (Matrix.toBilin b M).comp (toLin c b P) (toLin c b Q) = Matrix.toBilin c (Pᵀ ⬝ M ⬝ Q) :=
   (BilinForm.toMatrix c).Injective
     (by simp only [BilinForm.toMatrix_comp b c, BilinForm.toMatrix_toBilin, to_matrix_to_lin])
 #align matrix.to_bilin_comp Matrix.toBilin_comp
+-/
 
 end ToMatrix
 
@@ -433,6 +517,7 @@ variable (b : Basis n R₃ M₃)
 
 variable (J J₃ A A' : Matrix n n R₃)
 
+#print isAdjointPair_toBilin' /-
 @[simp]
 theorem isAdjointPair_toBilin' [DecidableEq n] :
     BilinForm.IsAdjointPair (Matrix.toBilin' J) (Matrix.toBilin' J₃) (Matrix.toLin' A)
@@ -451,7 +536,9 @@ theorem isAdjointPair_toBilin' [DecidableEq n] :
     LinearMap.toMatrix'_toLin', BilinForm.toMatrix'_toBilin', BilinForm.toMatrix'_toBilin']
   rfl
 #align is_adjoint_pair_to_bilin' isAdjointPair_toBilin'
+-/
 
+#print isAdjointPair_toBilin /-
 @[simp]
 theorem isAdjointPair_toBilin [DecidableEq n] :
     BilinForm.IsAdjointPair (Matrix.toBilin b J) (Matrix.toBilin b J₃) (Matrix.toLin b b A)
@@ -469,7 +556,9 @@ theorem isAdjointPair_toBilin [DecidableEq n] :
     LinearMap.toMatrix_toLin, BilinForm.toMatrix_toBilin, BilinForm.toMatrix_toBilin]
   rfl
 #align is_adjoint_pair_to_bilin isAdjointPair_toBilin
+-/
 
+#print Matrix.isAdjointPair_equiv' /-
 theorem Matrix.isAdjointPair_equiv' [DecidableEq n] (P : Matrix n n R₃) (h : IsUnit P) :
     (Pᵀ ⬝ J ⬝ P).IsAdjointPair (Pᵀ ⬝ J ⬝ P) A A' ↔ J.IsAdjointPair J (P ⬝ A ⬝ P⁻¹) (P ⬝ A' ⬝ P⁻¹) :=
   by
@@ -501,6 +590,7 @@ theorem Matrix.isAdjointPair_equiv' [DecidableEq n] (P : Matrix n n R₃) (h : I
   conv_rhs => rw [mul_assoc]
   rw [v.inv_mul_eq_iff_eq_mul]
 #align matrix.is_adjoint_pair_equiv' Matrix.isAdjointPair_equiv'
+-/
 
 variable [DecidableEq n]
 
@@ -514,10 +604,12 @@ def pairSelfAdjointMatricesSubmodule' : Submodule R₃ (Matrix n n R₃) :=
 #align pair_self_adjoint_matrices_submodule' pairSelfAdjointMatricesSubmodule'
 -/
 
+#print mem_pairSelfAdjointMatricesSubmodule' /-
 theorem mem_pairSelfAdjointMatricesSubmodule' :
     A ∈ pairSelfAdjointMatricesSubmodule J J₃ ↔ Matrix.IsAdjointPair J J₃ A A := by
   simp only [mem_pairSelfAdjointMatricesSubmodule]
 #align mem_pair_self_adjoint_matrices_submodule' mem_pairSelfAdjointMatricesSubmodule'
+-/
 
 #print selfAdjointMatricesSubmodule' /-
 /-- The submodule of self-adjoint matrices with respect to the bilinear form corresponding to
@@ -527,10 +619,12 @@ def selfAdjointMatricesSubmodule' : Submodule R₃ (Matrix n n R₃) :=
 #align self_adjoint_matrices_submodule' selfAdjointMatricesSubmodule'
 -/
 
+#print mem_selfAdjointMatricesSubmodule' /-
 theorem mem_selfAdjointMatricesSubmodule' :
     A ∈ selfAdjointMatricesSubmodule J ↔ J.IsSelfAdjoint A := by
   simp only [mem_selfAdjointMatricesSubmodule]
 #align mem_self_adjoint_matrices_submodule' mem_selfAdjointMatricesSubmodule'
+-/
 
 #print skewAdjointMatricesSubmodule' /-
 /-- The submodule of skew-adjoint matrices with respect to the bilinear form corresponding to
@@ -540,10 +634,12 @@ def skewAdjointMatricesSubmodule' : Submodule R₃ (Matrix n n R₃) :=
 #align skew_adjoint_matrices_submodule' skewAdjointMatricesSubmodule'
 -/
 
+#print mem_skewAdjointMatricesSubmodule' /-
 theorem mem_skewAdjointMatricesSubmodule' :
     A ∈ skewAdjointMatricesSubmodule J ↔ J.IsSkewAdjoint A := by
   simp only [mem_skewAdjointMatricesSubmodule]
 #align mem_skew_adjoint_matrices_submodule' mem_skewAdjointMatricesSubmodule'
+-/
 
 end MatrixAdjoints
 
@@ -557,77 +653,103 @@ variable {A : Type _} [CommRing A] [IsDomain A] [Module A M₃] (B₃ : BilinFor
 
 variable {ι : Type _} [DecidableEq ι] [Fintype ι]
 
+#print Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin /-
 theorem Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin {M : Matrix ι ι R₂}
     (b : Basis ι R₂ M₂) : M.toBilin'.Nondegenerate ↔ (Matrix.toBilin b M).Nondegenerate :=
   (nondegenerate_congr_iff b.equivFun.symm).symm
 #align matrix.nondegenerate_to_bilin'_iff_nondegenerate_to_bilin Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin
+-/
 
+#print Matrix.Nondegenerate.toBilin' /-
 -- Lemmas transferring nondegeneracy between a matrix and its associated bilinear form
 theorem Matrix.Nondegenerate.toBilin' {M : Matrix ι ι R₃} (h : M.Nondegenerate) :
     M.toBilin'.Nondegenerate := fun x hx =>
   h.eq_zero_of_ortho fun y => by simpa only [to_bilin'_apply'] using hx y
 #align matrix.nondegenerate.to_bilin' Matrix.Nondegenerate.toBilin'
+-/
 
+#print Matrix.nondegenerate_toBilin'_iff /-
 @[simp]
 theorem Matrix.nondegenerate_toBilin'_iff {M : Matrix ι ι R₃} :
     M.toBilin'.Nondegenerate ↔ M.Nondegenerate :=
   ⟨fun h v hv => h v fun w => (M.toBilin'_apply' _ _).trans <| hv w, Matrix.Nondegenerate.toBilin'⟩
 #align matrix.nondegenerate_to_bilin'_iff Matrix.nondegenerate_toBilin'_iff
+-/
 
+#print Matrix.Nondegenerate.toBilin /-
 theorem Matrix.Nondegenerate.toBilin {M : Matrix ι ι R₃} (h : M.Nondegenerate) (b : Basis ι R₃ M₃) :
     (toBilin b M).Nondegenerate :=
   (Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin b).mp h.toBilin'
 #align matrix.nondegenerate.to_bilin Matrix.Nondegenerate.toBilin
+-/
 
+#print Matrix.nondegenerate_toBilin_iff /-
 @[simp]
 theorem Matrix.nondegenerate_toBilin_iff {M : Matrix ι ι R₃} (b : Basis ι R₃ M₃) :
     (toBilin b M).Nondegenerate ↔ M.Nondegenerate := by
   rw [← Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin, Matrix.nondegenerate_toBilin'_iff]
 #align matrix.nondegenerate_to_bilin_iff Matrix.nondegenerate_toBilin_iff
+-/
 
+#print BilinForm.nondegenerate_toMatrix'_iff /-
 -- Lemmas transferring nondegeneracy between a bilinear form and its associated matrix
 @[simp]
 theorem nondegenerate_toMatrix'_iff {B : BilinForm R₃ (ι → R₃)} :
     B.toMatrix'.Nondegenerate ↔ B.Nondegenerate :=
   Matrix.nondegenerate_toBilin'_iff.symm.trans <| (Matrix.toBilin'_toMatrix' B).symm ▸ Iff.rfl
 #align bilin_form.nondegenerate_to_matrix'_iff BilinForm.nondegenerate_toMatrix'_iff
+-/
 
+#print BilinForm.Nondegenerate.toMatrix' /-
 theorem Nondegenerate.toMatrix' {B : BilinForm R₃ (ι → R₃)} (h : B.Nondegenerate) :
     B.toMatrix'.Nondegenerate :=
   nondegenerate_toMatrix'_iff.mpr h
 #align bilin_form.nondegenerate.to_matrix' BilinForm.Nondegenerate.toMatrix'
+-/
 
+#print BilinForm.nondegenerate_toMatrix_iff /-
 @[simp]
 theorem nondegenerate_toMatrix_iff {B : BilinForm R₃ M₃} (b : Basis ι R₃ M₃) :
     (toMatrix b B).Nondegenerate ↔ B.Nondegenerate :=
   (Matrix.nondegenerate_toBilin_iff b).symm.trans <| (Matrix.toBilin_toMatrix b B).symm ▸ Iff.rfl
 #align bilin_form.nondegenerate_to_matrix_iff BilinForm.nondegenerate_toMatrix_iff
+-/
 
+#print BilinForm.Nondegenerate.toMatrix /-
 theorem Nondegenerate.toMatrix {B : BilinForm R₃ M₃} (h : B.Nondegenerate) (b : Basis ι R₃ M₃) :
     (toMatrix b B).Nondegenerate :=
   (nondegenerate_toMatrix_iff b).mpr h
 #align bilin_form.nondegenerate.to_matrix BilinForm.Nondegenerate.toMatrix
+-/
 
+#print BilinForm.nondegenerate_toBilin'_iff_det_ne_zero /-
 -- Some shorthands for combining the above with `matrix.nondegenerate_of_det_ne_zero`
 theorem nondegenerate_toBilin'_iff_det_ne_zero {M : Matrix ι ι A} :
     M.toBilin'.Nondegenerate ↔ M.det ≠ 0 := by
   rw [Matrix.nondegenerate_toBilin'_iff, Matrix.nondegenerate_iff_det_ne_zero]
 #align bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero BilinForm.nondegenerate_toBilin'_iff_det_ne_zero
+-/
 
+#print BilinForm.nondegenerate_toBilin'_of_det_ne_zero' /-
 theorem nondegenerate_toBilin'_of_det_ne_zero' (M : Matrix ι ι A) (h : M.det ≠ 0) :
     M.toBilin'.Nondegenerate :=
   nondegenerate_toBilin'_iff_det_ne_zero.mpr h
 #align bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' BilinForm.nondegenerate_toBilin'_of_det_ne_zero'
+-/
 
+#print BilinForm.nondegenerate_iff_det_ne_zero /-
 theorem nondegenerate_iff_det_ne_zero {B : BilinForm A M₃} (b : Basis ι A M₃) :
     B.Nondegenerate ↔ (toMatrix b B).det ≠ 0 := by
   rw [← Matrix.nondegenerate_iff_det_ne_zero, nondegenerate_to_matrix_iff]
 #align bilin_form.nondegenerate_iff_det_ne_zero BilinForm.nondegenerate_iff_det_ne_zero
+-/
 
+#print BilinForm.nondegenerate_of_det_ne_zero /-
 theorem nondegenerate_of_det_ne_zero (b : Basis ι A M₃) (h : (toMatrix b B₃).det ≠ 0) :
     B₃.Nondegenerate :=
   (nondegenerate_iff_det_ne_zero b).mpr h
 #align bilin_form.nondegenerate_of_det_ne_zero BilinForm.nondegenerate_of_det_ne_zero
+-/
 
 end Det
 
Diff
@@ -238,8 +238,8 @@ theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o →
       rintro j' -
       simp only [smul_eq_mul, Pi.basisFun_repr, mul_assoc, mul_comm, mul_left_comm,
         Pi.basisFun_apply, of_apply]
-    · intros ; simp only [zero_smul, smul_zero]
-  · intros ; simp only [zero_smul, Finsupp.sum_zero]
+    · intros; simp only [zero_smul, smul_zero]
+  · intros; simp only [zero_smul, Finsupp.sum_zero]
 #align bilin_form.to_matrix'_comp BilinForm.toMatrix'_comp
 
 theorem BilinForm.toMatrix'_compLeft (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
@@ -377,8 +377,8 @@ theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R
       rintro j' -
       simp only [smul_eq_mul, LinearMap.toMatrix_apply, Basis.equivFun_apply, mul_assoc, mul_comm,
         mul_left_comm]
-    · intros ; simp only [zero_smul, smul_zero]
-  · intros ; simp only [zero_smul, Finsupp.sum_zero]
+    · intros; simp only [zero_smul, smul_zero]
+  · intros; simp only [zero_smul, Finsupp.sum_zero]
 #align bilin_form.to_matrix_comp BilinForm.toMatrix_comp
 
 theorem BilinForm.toMatrix_compLeft (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
Diff
@@ -62,11 +62,11 @@ section Matrix
 
 variable {n o : Type _}
 
-open BigOperators
+open scoped BigOperators
 
 open BilinForm Finset LinearMap Matrix
 
-open Matrix
+open scoped Matrix
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 #print Matrix.toBilin'Aux /-
@@ -425,7 +425,7 @@ end Matrix
 
 section MatrixAdjoints
 
-open Matrix
+open scoped Matrix
 
 variable {n : Type _} [Fintype n]
 
Diff
@@ -84,9 +84,6 @@ def Matrix.toBilin'Aux [Fintype n] (M : Matrix n n R₂) : BilinForm R₂ (n →
 #align matrix.to_bilin'_aux Matrix.toBilin'Aux
 -/
 
-/- warning: matrix.to_bilin'_aux_std_basis -> Matrix.toBilin'Aux_stdBasis is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_aux_std_basis Matrix.toBilin'Aux_stdBasisₓ'. -/
 theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n R₂) (i j : n) :
     M.toBilin'Aux (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) = M i j :=
   by
@@ -108,12 +105,6 @@ theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n
     contradiction
 #align matrix.to_bilin'_aux_std_basis Matrix.toBilin'Aux_stdBasis
 
-/- warning: bilin_form.to_matrix_aux -> BilinForm.toMatrixAux is a dubious translation:
-lean 3 declaration is
-  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}}, (n -> M₂) -> (LinearMap.{u1, u1, max u1 u2, max u3 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrixAux._proof_1.{u1} R₂ _inst_7)) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))
-but is expected to have type
-  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}}, (n -> M₂) -> (LinearMap.{u1, u1, max u2 u1, max u1 u3} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.instAddCommMonoidBilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (smulCommClass_self.{u1, u1} R₂ R₂ (CommSemiring.toCommMonoid.{u1} R₂ _inst_7) (MulActionWithZero.toMulAction.{u1, u1} R₂ R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u1} R₂ (CommSemiring.toCommMonoidWithZero.{u1} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u1} R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))))) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_aux BilinForm.toMatrixAuxₓ'. -/
 /-- The linear map from bilinear forms to `matrix n n R` given an `n`-indexed basis.
 
 This is an auxiliary definition for the equivalence `matrix.to_bilin_form'`. -/
@@ -124,9 +115,6 @@ def BilinForm.toMatrixAux (b : n → M₂) : BilinForm R₂ M₂ →ₗ[R₂] Ma
   map_smul' f g := rfl
 #align bilin_form.to_matrix_aux BilinForm.toMatrixAux
 
-/- warning: bilin_form.to_matrix_aux_apply -> BilinForm.toMatrixAux_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_aux_apply BilinForm.toMatrixAux_applyₓ'. -/
 @[simp]
 theorem BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (i j : n) :
     BilinForm.toMatrixAux b B i j = B (b i) (b j) :=
@@ -135,9 +123,6 @@ theorem BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (
 
 variable [Fintype n] [Fintype o]
 
-/- warning: to_bilin'_aux_to_matrix_aux -> toBilin'Aux_toMatrixAux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align to_bilin'_aux_to_matrix_aux toBilin'Aux_toMatrixAuxₓ'. -/
 theorem toBilin'Aux_toMatrixAux [DecidableEq n] (B₂ : BilinForm R₂ (n → R₂)) :
     Matrix.toBilin'Aux (BilinForm.toMatrixAux (fun j => stdBasis R₂ (fun _ => R₂) j 1) B₂) = B₂ :=
   by
@@ -156,12 +141,6 @@ This section deals with the conversion between matrices and bilinear forms on `n
 
 variable [DecidableEq n] [DecidableEq o]
 
-/- warning: bilin_form.to_matrix' -> BilinForm.toMatrix' is a dubious translation:
-lean 3 declaration is
-  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], LinearEquiv.{u1, u1, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.toMatrix'._proof_1.{u1} R₂ _inst_7) (BilinForm.toMatrix'._proof_2.{u1} R₂ _inst_7) (BilinForm.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.addCommMonoid.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, max u2 u1, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrix'._proof_3.{u1} R₂ _inst_7)) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))
-but is expected to have type
-  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], LinearEquiv.{u1, u1, max u1 u2, max u1 u2} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.{u1, max u1 u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1500 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.instAddCommMonoidBilinForm.{u1, max u1 u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1500 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u1, max u1 u2, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1500 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (smulCommClass_self.{u1, u1} R₂ R₂ (CommSemiring.toCommMonoid.{u1} R₂ _inst_7) (MulActionWithZero.toMulAction.{u1, u1} R₂ R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u1} R₂ (CommSemiring.toCommMonoidWithZero.{u1} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u1} R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))))) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix' BilinForm.toMatrix'ₓ'. -/
 /-- The linear equivalence between bilinear forms on `n → R` and `n × n` matrices -/
 def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R₂ :=
   {
@@ -174,46 +153,28 @@ def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R
       simp only [to_fun_eq_coe, BilinForm.toMatrixAux_apply, Matrix.toBilin'Aux_stdBasis] }
 #align bilin_form.to_matrix' BilinForm.toMatrix'
 
-/- warning: bilin_form.to_matrix_aux_std_basis -> BilinForm.toMatrixAux_stdBasis is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_aux_std_basis BilinForm.toMatrixAux_stdBasisₓ'. -/
 @[simp]
 theorem BilinForm.toMatrixAux_stdBasis (B : BilinForm R₂ (n → R₂)) :
     BilinForm.toMatrixAux (fun j => stdBasis R₂ (fun _ => R₂) j 1) B = BilinForm.toMatrix' B :=
   rfl
 #align bilin_form.to_matrix_aux_std_basis BilinForm.toMatrixAux_stdBasis
 
-/- warning: matrix.to_bilin' -> Matrix.toBilin' is a dubious translation:
-lean 3 declaration is
-  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], LinearEquiv.{u1, u1, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (Matrix.toBilin'._proof_1.{u1} R₂ _inst_7) (Matrix.toBilin'._proof_2.{u1} R₂ _inst_7) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.addCommMonoid.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.module.{u1, max u2 u1, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.toBilin'._proof_3.{u1} R₂ _inst_7))
-but is expected to have type
-  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], LinearEquiv.{u1, u1, max u1 u2, max u1 u2} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.{u1, max u1 u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1888 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.instAddCommMonoidBilinForm.{u1, max u1 u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1888 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u1, max u1 u2, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1888 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (smulCommClass_self.{u1, u1} R₂ R₂ (CommSemiring.toCommMonoid.{u1} R₂ _inst_7) (MulActionWithZero.toMulAction.{u1, u1} R₂ R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u1} R₂ (CommSemiring.toCommMonoidWithZero.{u1} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u1} R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))))
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin' Matrix.toBilin'ₓ'. -/
 /-- The linear equivalence between `n × n` matrices and bilinear forms on `n → R` -/
 def Matrix.toBilin' : Matrix n n R₂ ≃ₗ[R₂] BilinForm R₂ (n → R₂) :=
   BilinForm.toMatrix'.symm
 #align matrix.to_bilin' Matrix.toBilin'
 
-/- warning: matrix.to_bilin'_aux_eq -> Matrix.toBilin'Aux_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_aux_eq Matrix.toBilin'Aux_eqₓ'. -/
 @[simp]
 theorem Matrix.toBilin'Aux_eq (M : Matrix n n R₂) : Matrix.toBilin'Aux M = Matrix.toBilin' M :=
   rfl
 #align matrix.to_bilin'_aux_eq Matrix.toBilin'Aux_eq
 
-/- warning: matrix.to_bilin'_apply -> Matrix.toBilin'_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_apply Matrix.toBilin'_applyₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 theorem Matrix.toBilin'_apply (M : Matrix n n R₂) (x y : n → R₂) :
     Matrix.toBilin' M x y = ∑ (i) (j), x i * M i j * y j :=
   rfl
 #align matrix.to_bilin'_apply Matrix.toBilin'_apply
 
-/- warning: matrix.to_bilin'_apply' -> Matrix.toBilin'_apply' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_apply' Matrix.toBilin'_apply'ₓ'. -/
 theorem Matrix.toBilin'_apply' (M : Matrix n n R₂) (v w : n → R₂) :
     Matrix.toBilin' M v w = Matrix.dotProduct v (M.mulVec w) :=
   by
@@ -224,63 +185,42 @@ theorem Matrix.toBilin'_apply' (M : Matrix n n R₂) (v w : n → R₂) :
   rw [← mul_assoc]
 #align matrix.to_bilin'_apply' Matrix.toBilin'_apply'
 
-/- warning: matrix.to_bilin'_std_basis -> Matrix.toBilin'_stdBasis is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_std_basis Matrix.toBilin'_stdBasisₓ'. -/
 @[simp]
 theorem Matrix.toBilin'_stdBasis (M : Matrix n n R₂) (i j : n) :
     Matrix.toBilin' M (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) = M i j :=
   Matrix.toBilin'Aux_stdBasis M i j
 #align matrix.to_bilin'_std_basis Matrix.toBilin'_stdBasis
 
-/- warning: bilin_form.to_matrix'_symm -> BilinForm.toMatrix'_symm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_symm BilinForm.toMatrix'_symmₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix'_symm :
     (BilinForm.toMatrix'.symm : Matrix n n R₂ ≃ₗ[R₂] _) = Matrix.toBilin' :=
   rfl
 #align bilin_form.to_matrix'_symm BilinForm.toMatrix'_symm
 
-/- warning: matrix.to_bilin'_symm -> Matrix.toBilin'_symm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_symm Matrix.toBilin'_symmₓ'. -/
 @[simp]
 theorem Matrix.toBilin'_symm :
     (Matrix.toBilin'.symm : _ ≃ₗ[R₂] Matrix n n R₂) = BilinForm.toMatrix' :=
   BilinForm.toMatrix'.symm_symm
 #align matrix.to_bilin'_symm Matrix.toBilin'_symm
 
-/- warning: matrix.to_bilin'_to_matrix' -> Matrix.toBilin'_toMatrix' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_to_matrix' Matrix.toBilin'_toMatrix'ₓ'. -/
 @[simp]
 theorem Matrix.toBilin'_toMatrix' (B : BilinForm R₂ (n → R₂)) :
     Matrix.toBilin' (BilinForm.toMatrix' B) = B :=
   Matrix.toBilin'.apply_symm_apply B
 #align matrix.to_bilin'_to_matrix' Matrix.toBilin'_toMatrix'
 
-/- warning: bilin_form.to_matrix'_to_bilin' -> BilinForm.toMatrix'_toBilin' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_to_bilin' BilinForm.toMatrix'_toBilin'ₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix'_toBilin' (M : Matrix n n R₂) :
     BilinForm.toMatrix' (Matrix.toBilin' M) = M :=
   BilinForm.toMatrix'.apply_symm_apply M
 #align bilin_form.to_matrix'_to_bilin' BilinForm.toMatrix'_toBilin'
 
-/- warning: bilin_form.to_matrix'_apply -> BilinForm.toMatrix'_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_apply BilinForm.toMatrix'_applyₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix'_apply (B : BilinForm R₂ (n → R₂)) (i j : n) :
     BilinForm.toMatrix' B i j = B (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) :=
   rfl
 #align bilin_form.to_matrix'_apply BilinForm.toMatrix'_apply
 
-/- warning: bilin_form.to_matrix'_comp -> BilinForm.toMatrix'_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_comp BilinForm.toMatrix'_compₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o → R₂) →ₗ[R₂] n → R₂) :
     (B.comp l r).toMatrix' = l.toMatrix'ᵀ ⬝ B.toMatrix' ⬝ r.toMatrix' :=
@@ -302,50 +242,32 @@ theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o →
   · intros ; simp only [zero_smul, Finsupp.sum_zero]
 #align bilin_form.to_matrix'_comp BilinForm.toMatrix'_comp
 
-/- warning: bilin_form.to_matrix'_comp_left -> BilinForm.toMatrix'_compLeft is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_comp_left BilinForm.toMatrix'_compLeftₓ'. -/
 theorem BilinForm.toMatrix'_compLeft (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
     (B.compLeft f).toMatrix' = f.toMatrix'ᵀ ⬝ B.toMatrix' := by
   simp only [BilinForm.compLeft, BilinForm.toMatrix'_comp, to_matrix'_id, Matrix.mul_one]
 #align bilin_form.to_matrix'_comp_left BilinForm.toMatrix'_compLeft
 
-/- warning: bilin_form.to_matrix'_comp_right -> BilinForm.toMatrix'_compRight is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_comp_right BilinForm.toMatrix'_compRightₓ'. -/
 theorem BilinForm.toMatrix'_compRight (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
     (B.compRight f).toMatrix' = B.toMatrix' ⬝ f.toMatrix' := by
   simp only [BilinForm.compRight, BilinForm.toMatrix'_comp, to_matrix'_id, transpose_one,
     Matrix.one_mul]
 #align bilin_form.to_matrix'_comp_right BilinForm.toMatrix'_compRight
 
-/- warning: bilin_form.mul_to_matrix'_mul -> BilinForm.mul_toMatrix'_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.mul_to_matrix'_mul BilinForm.mul_toMatrix'_mulₓ'. -/
 theorem BilinForm.mul_toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix o n R₂)
     (N : Matrix n o R₂) : M ⬝ B.toMatrix' ⬝ N = (B.comp Mᵀ.toLin' N.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp, transpose_transpose, to_matrix'_to_lin']
 #align bilin_form.mul_to_matrix'_mul BilinForm.mul_toMatrix'_mul
 
-/- warning: bilin_form.mul_to_matrix' -> BilinForm.mul_toMatrix' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.mul_to_matrix' BilinForm.mul_toMatrix'ₓ'. -/
 theorem BilinForm.mul_toMatrix' (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
     M ⬝ B.toMatrix' = (B.compLeft Mᵀ.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp_left, transpose_transpose, to_matrix'_to_lin']
 #align bilin_form.mul_to_matrix' BilinForm.mul_toMatrix'
 
-/- warning: bilin_form.to_matrix'_mul -> BilinForm.toMatrix'_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_mul BilinForm.toMatrix'_mulₓ'. -/
 theorem BilinForm.toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
     B.toMatrix' ⬝ M = (B.compRight M.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp_right, to_matrix'_to_lin']
 #align bilin_form.to_matrix'_mul BilinForm.toMatrix'_mul
 
-/- warning: matrix.to_bilin'_comp -> Matrix.toBilin'_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_comp Matrix.toBilin'_compₓ'. -/
 theorem Matrix.toBilin'_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
     M.toBilin'.comp P.toLin' Q.toLin' = (Pᵀ ⬝ M ⬝ Q).toBilin' :=
   BilinForm.toMatrix'.Injective
@@ -365,33 +287,18 @@ a module with a fixed basis.
 
 variable [DecidableEq n] (b : Basis n R₂ M₂)
 
-/- warning: bilin_form.to_matrix -> BilinForm.toMatrix is a dubious translation:
-lean 3 declaration is
-  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n], (Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) -> (LinearEquiv.{u1, u1, max u1 u2, max u3 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.toMatrix._proof_1.{u1} R₂ _inst_7) (BilinForm.toMatrix._proof_2.{u1} R₂ _inst_7) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrix._proof_3.{u1} R₂ _inst_7)) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))
-but is expected to have type
-  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n], (Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) -> (LinearEquiv.{u1, u1, max u2 u1, max u1 u3} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.instAddCommMonoidBilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (smulCommClass_self.{u1, u1} R₂ R₂ (CommSemiring.toCommMonoid.{u1} R₂ _inst_7) (MulActionWithZero.toMulAction.{u1, u1} R₂ R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u1} R₂ (CommSemiring.toCommMonoidWithZero.{u1} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u1} R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))))) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix BilinForm.toMatrixₓ'. -/
 /-- `bilin_form.to_matrix b` is the equivalence between `R`-bilinear forms on `M` and
 `n`-by-`n` matrices with entries in `R`, if `b` is an `R`-basis for `M`. -/
 noncomputable def BilinForm.toMatrix : BilinForm R₂ M₂ ≃ₗ[R₂] Matrix n n R₂ :=
   (BilinForm.congr b.equivFun).trans BilinForm.toMatrix'
 #align bilin_form.to_matrix BilinForm.toMatrix
 
-/- warning: matrix.to_bilin -> Matrix.toBilin is a dubious translation:
-lean 3 declaration is
-  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n], (Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) -> (LinearEquiv.{u1, u1, max u3 u1, max u1 u2} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (Matrix.toBilin._proof_1.{u1} R₂ _inst_7) (Matrix.toBilin._proof_2.{u1} R₂ _inst_7) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.toBilin._proof_3.{u1} R₂ _inst_7)))
-but is expected to have type
-  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n], (Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) -> (LinearEquiv.{u1, u1, max u1 u3, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.instAddCommMonoidBilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (smulCommClass_self.{u1, u1} R₂ R₂ (CommSemiring.toCommMonoid.{u1} R₂ _inst_7) (MulActionWithZero.toMulAction.{u1, u1} R₂ R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u1} R₂ (CommSemiring.toCommMonoidWithZero.{u1} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u1} R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))))))
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin Matrix.toBilinₓ'. -/
 /-- `bilin_form.to_matrix b` is the equivalence between `R`-bilinear forms on `M` and
 `n`-by-`n` matrices with entries in `R`, if `b` is an `R`-basis for `M`. -/
 noncomputable def Matrix.toBilin : Matrix n n R₂ ≃ₗ[R₂] BilinForm R₂ M₂ :=
   (BilinForm.toMatrix b).symm
 #align matrix.to_bilin Matrix.toBilin
 
-/- warning: bilin_form.to_matrix_apply -> BilinForm.toMatrix_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_apply BilinForm.toMatrix_applyₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix_apply (B : BilinForm R₂ M₂) (i j : n) :
     BilinForm.toMatrix b B i j = B (b i) (b j) := by
@@ -399,9 +306,6 @@ theorem BilinForm.toMatrix_apply (B : BilinForm R₂ M₂) (i j : n) :
     b.equiv_fun_symm_std_basis, b.equiv_fun_symm_std_basis]
 #align bilin_form.to_matrix_apply BilinForm.toMatrix_apply
 
-/- warning: matrix.to_bilin_apply -> Matrix.toBilin_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin_apply Matrix.toBilin_applyₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
 theorem Matrix.toBilin_apply (M : Matrix n n R₂) (x y : M₂) :
@@ -412,70 +316,37 @@ theorem Matrix.toBilin_apply (M : Matrix n n R₂) (x y : M₂) :
     Basis.equivFun_apply]
 #align matrix.to_bilin_apply Matrix.toBilin_apply
 
-/- warning: bilinear_form.to_matrix_aux_eq -> BilinearForm.toMatrixAux_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilinear_form.to_matrix_aux_eq BilinearForm.toMatrixAux_eqₓ'. -/
 -- Not a `simp` lemma since `bilin_form.to_matrix` needs an extra argument
 theorem BilinearForm.toMatrixAux_eq (B : BilinForm R₂ M₂) :
     BilinForm.toMatrixAux b B = BilinForm.toMatrix b B :=
   ext fun i j => by rw [BilinForm.toMatrix_apply, BilinForm.toMatrixAux_apply]
 #align bilinear_form.to_matrix_aux_eq BilinearForm.toMatrixAux_eq
 
-/- warning: bilin_form.to_matrix_symm -> BilinForm.toMatrix_symm is a dubious translation:
-lean 3 declaration is
-  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n] (b : Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9), Eq.{max (succ (max u3 u1)) (succ (max u1 u2))} (LinearEquiv.{u1, u1, max u3 u1, max u1 u2} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.toMatrix._proof_2.{u1} R₂ _inst_7) (BilinForm.toMatrix._proof_1.{u1} R₂ _inst_7) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrix._proof_3.{u1} R₂ _inst_7))) (LinearEquiv.symm.{u1, u1, max u1 u2, max u3 u1} R₂ R₂ (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrix._proof_3.{u1} R₂ _inst_7)) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.toMatrix._proof_1.{u1} R₂ _inst_7) (BilinForm.toMatrix._proof_2.{u1} R₂ _inst_7) (BilinForm.toMatrix.{u1, u2, u3} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)) (Matrix.toBilin.{u1, u2, u3} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)
-but is expected to have type
-  forall {R₂ : Type.{u3}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u3} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] [_inst_18 : DecidableEq.{succ u1} n] (b : Basis.{u1, u3, u2} n R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9), Eq.{max (max (succ u3) (succ u2)) (succ u1)} (LinearEquiv.{u3, u3, max u3 u1, max u3 u2} R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (Matrix.{u1, u1, u3} n n R₂) (BilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u3, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))))) (BilinForm.instAddCommMonoidBilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u3, u1, u1, u3} n n R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u3, u2, u3} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (smulCommClass_self.{u3, u3} R₂ R₂ (CommSemiring.toCommMonoid.{u3} R₂ _inst_7) (MulActionWithZero.toMulAction.{u3, u3} R₂ R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u3} R₂ (CommSemiring.toCommMonoidWithZero.{u3} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u3} R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))))))) (LinearEquiv.symm.{u3, u3, max u3 u2, max u3 u1} R₂ R₂ (BilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u1, u1, u3} n n R₂) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (BilinForm.instAddCommMonoidBilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u3, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u3, u2, u3} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (smulCommClass_self.{u3, u3} R₂ R₂ (CommSemiring.toCommMonoid.{u3} R₂ _inst_7) (MulActionWithZero.toMulAction.{u3, u3} R₂ R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u3} R₂ (CommSemiring.toCommMonoidWithZero.{u3} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u3} R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))))) (Matrix.module.{u3, u1, u1, u3} n n R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (BilinForm.toMatrix.{u3, u2, u1} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)) (Matrix.toBilin.{u3, u2, u1} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_symm BilinForm.toMatrix_symmₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix_symm : (BilinForm.toMatrix b).symm = Matrix.toBilin b :=
   rfl
 #align bilin_form.to_matrix_symm BilinForm.toMatrix_symm
 
-/- warning: matrix.to_bilin_symm -> Matrix.toBilin_symm is a dubious translation:
-lean 3 declaration is
-  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n] (b : Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9), Eq.{max (succ (max u1 u2)) (succ (max u3 u1))} (LinearEquiv.{u1, u1, max u1 u2, max u3 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (Matrix.toBilin._proof_2.{u1} R₂ _inst_7) (Matrix.toBilin._proof_1.{u1} R₂ _inst_7) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.toBilin._proof_3.{u1} R₂ _inst_7)) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (LinearEquiv.symm.{u1, u1, max u3 u1, max u1 u2} R₂ R₂ (Matrix.{u3, u3, u1} n n R₂) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.toBilin._proof_3.{u1} R₂ _inst_7)) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (Matrix.toBilin._proof_1.{u1} R₂ _inst_7) (Matrix.toBilin._proof_2.{u1} R₂ _inst_7) (Matrix.toBilin.{u1, u2, u3} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)) (BilinForm.toMatrix.{u1, u2, u3} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)
-but is expected to have type
-  forall {R₂ : Type.{u3}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u3} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] [_inst_18 : DecidableEq.{succ u1} n] (b : Basis.{u1, u3, u2} n R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9), Eq.{max (max (succ u3) (succ u2)) (succ u1)} (LinearEquiv.{u3, u3, max u3 u2, max u3 u1} R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (BilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u1, u1, u3} n n R₂) (BilinForm.instAddCommMonoidBilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u3, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u3, u2, u3} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (smulCommClass_self.{u3, u3} R₂ R₂ (CommSemiring.toCommMonoid.{u3} R₂ _inst_7) (MulActionWithZero.toMulAction.{u3, u3} R₂ R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u3} R₂ (CommSemiring.toCommMonoidWithZero.{u3} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u3} R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))))) (Matrix.module.{u3, u1, u1, u3} n n R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))) (LinearEquiv.symm.{u3, u3, max u3 u1, max u3 u2} R₂ R₂ (Matrix.{u1, u1, u3} n n R₂) (BilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (Matrix.addCommMonoid.{u3, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))))) (BilinForm.instAddCommMonoidBilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u3, u1, u1, u3} n n R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u3, u2, u3} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (smulCommClass_self.{u3, u3} R₂ R₂ (CommSemiring.toCommMonoid.{u3} R₂ _inst_7) (MulActionWithZero.toMulAction.{u3, u3} R₂ R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u3} R₂ (CommSemiring.toCommMonoidWithZero.{u3} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u3} R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (Matrix.toBilin.{u3, u2, u1} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)) (BilinForm.toMatrix.{u3, u2, u1} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin_symm Matrix.toBilin_symmₓ'. -/
 @[simp]
 theorem Matrix.toBilin_symm : (Matrix.toBilin b).symm = BilinForm.toMatrix b :=
   (BilinForm.toMatrix b).symm_symm
 #align matrix.to_bilin_symm Matrix.toBilin_symm
 
-/- warning: matrix.to_bilin_basis_fun -> Matrix.toBilin_basisFun is a dubious translation:
-lean 3 declaration is
-  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], Eq.{succ (max u2 u1)} (LinearEquiv.{u1, u1, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (Matrix.toBilin._proof_1.{u1} R₂ _inst_7) (Matrix.toBilin._proof_2.{u1} R₂ _inst_7) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.addCommMonoid.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.module.{u1, max u2 u1, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.toBilin._proof_3.{u1} R₂ _inst_7))) (Matrix.toBilin.{u1, max u2 u1, u2} R₂ (n -> R₂) _inst_7 (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) (Pi.basisFun.{u1, u2} R₂ n (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_16)) (Matrix.toBilin'.{u1, u2} R₂ _inst_7 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b))
-but is expected to have type
-  forall {R₂ : Type.{u2}} [_inst_7 : CommSemiring.{u2} R₂] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] [_inst_18 : DecidableEq.{succ u1} n], Eq.{max (succ u2) (succ u1)} (LinearEquiv.{u2, u2, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (Matrix.{u1, u1, u2} n n R₂) (BilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.addCommMonoid.{u2, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (BilinForm.instAddCommMonoidBilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.module.{u2, u1, u1, u2} n n R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u2, max u2 u1, u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (smulCommClass_self.{u2, u2} R₂ R₂ (CommSemiring.toCommMonoid.{u2} R₂ _inst_7) (MulActionWithZero.toMulAction.{u2, u2} R₂ R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u2} R₂ (CommSemiring.toCommMonoidWithZero.{u2} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))))) (Matrix.toBilin.{u2, max u2 u1, u1} R₂ (n -> R₂) _inst_7 (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) (Pi.basisFun.{u2, u1} R₂ n (CommSemiring.toSemiring.{u2} R₂ _inst_7) _inst_16)) (Matrix.toBilin'.{u2, u1} R₂ _inst_7 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b))
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin_basis_fun Matrix.toBilin_basisFunₓ'. -/
 theorem Matrix.toBilin_basisFun : Matrix.toBilin (Pi.basisFun R₂ n) = Matrix.toBilin' := by ext M;
   simp only [Matrix.toBilin_apply, Matrix.toBilin'_apply, Pi.basisFun_repr]
 #align matrix.to_bilin_basis_fun Matrix.toBilin_basisFun
 
-/- warning: bilin_form.to_matrix_basis_fun -> BilinForm.toMatrix_basisFun is a dubious translation:
-lean 3 declaration is
-  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], Eq.{succ (max u2 u1)} (LinearEquiv.{u1, u1, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.toMatrix._proof_1.{u1} R₂ _inst_7) (BilinForm.toMatrix._proof_2.{u1} R₂ _inst_7) (BilinForm.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.addCommMonoid.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, max u2 u1, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrix._proof_3.{u1} R₂ _inst_7)) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (BilinForm.toMatrix.{u1, max u2 u1, u2} R₂ (n -> R₂) _inst_7 (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) (Pi.basisFun.{u1, u2} R₂ n (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_16)) (BilinForm.toMatrix'.{u1, u2} R₂ _inst_7 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b))
-but is expected to have type
-  forall {R₂ : Type.{u2}} [_inst_7 : CommSemiring.{u2} R₂] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] [_inst_18 : DecidableEq.{succ u1} n], Eq.{max (succ u2) (succ u1)} (LinearEquiv.{u2, u2, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (BilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.{u1, u1, u2} n n R₂) (BilinForm.instAddCommMonoidBilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.addCommMonoid.{u2, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u2, max u2 u1, u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (smulCommClass_self.{u2, u2} R₂ R₂ (CommSemiring.toCommMonoid.{u2} R₂ _inst_7) (MulActionWithZero.toMulAction.{u2, u2} R₂ R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u2} R₂ (CommSemiring.toCommMonoidWithZero.{u2} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))))) (Matrix.module.{u2, u1, u1, u2} n n R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (BilinForm.toMatrix.{u2, max u2 u1, u1} R₂ (n -> R₂) _inst_7 (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) (Pi.basisFun.{u2, u1} R₂ n (CommSemiring.toSemiring.{u2} R₂ _inst_7) _inst_16)) (BilinForm.toMatrix'.{u2, u1} R₂ _inst_7 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b))
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFunₓ'. -/
 theorem BilinForm.toMatrix_basisFun : BilinForm.toMatrix (Pi.basisFun R₂ n) = BilinForm.toMatrix' :=
   by ext B;
   rw [BilinForm.toMatrix_apply, BilinForm.toMatrix'_apply, Pi.basisFun_apply, Pi.basisFun_apply]
 #align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFun
 
-/- warning: matrix.to_bilin_to_matrix -> Matrix.toBilin_toMatrix is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin_to_matrix Matrix.toBilin_toMatrixₓ'. -/
 @[simp]
 theorem Matrix.toBilin_toMatrix (B : BilinForm R₂ M₂) :
     Matrix.toBilin b (BilinForm.toMatrix b B) = B :=
   (Matrix.toBilin b).apply_symm_apply B
 #align matrix.to_bilin_to_matrix Matrix.toBilin_toMatrix
 
-/- warning: bilin_form.to_matrix_to_bilin -> BilinForm.toMatrix_toBilin is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_to_bilin BilinForm.toMatrix_toBilinₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix_toBilin (M : Matrix n n R₂) :
     BilinForm.toMatrix b (Matrix.toBilin b M) = M :=
@@ -488,9 +359,6 @@ variable (c : Basis o R₂ M₂')
 
 variable [DecidableEq o]
 
-/- warning: bilin_form.to_matrix_comp -> BilinForm.toMatrix_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_comp BilinForm.toMatrix_compₓ'. -/
 -- Cannot be a `simp` lemma because `b` must be inferred.
 theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R₂] M₂) :
     BilinForm.toMatrix c (B.comp l r) =
@@ -513,59 +381,38 @@ theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R
   · intros ; simp only [zero_smul, Finsupp.sum_zero]
 #align bilin_form.to_matrix_comp BilinForm.toMatrix_comp
 
-/- warning: bilin_form.to_matrix_comp_left -> BilinForm.toMatrix_compLeft is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_comp_left BilinForm.toMatrix_compLeftₓ'. -/
 theorem BilinForm.toMatrix_compLeft (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
     BilinForm.toMatrix b (B.compLeft f) = (toMatrix b b f)ᵀ ⬝ BilinForm.toMatrix b B := by
   simp only [comp_left, BilinForm.toMatrix_comp b b, to_matrix_id, Matrix.mul_one]
 #align bilin_form.to_matrix_comp_left BilinForm.toMatrix_compLeft
 
-/- warning: bilin_form.to_matrix_comp_right -> BilinForm.toMatrix_compRight is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_comp_right BilinForm.toMatrix_compRightₓ'. -/
 theorem BilinForm.toMatrix_compRight (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
     BilinForm.toMatrix b (B.compRight f) = BilinForm.toMatrix b B ⬝ toMatrix b b f := by
   simp only [BilinForm.compRight, BilinForm.toMatrix_comp b b, to_matrix_id, transpose_one,
     Matrix.one_mul]
 #align bilin_form.to_matrix_comp_right BilinForm.toMatrix_compRight
 
-/- warning: bilin_form.to_matrix_mul_basis_to_matrix -> BilinForm.toMatrix_mul_basis_toMatrix is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_mul_basis_to_matrix BilinForm.toMatrix_mul_basis_toMatrixₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix_mul_basis_toMatrix (c : Basis o R₂ M₂) (B : BilinForm R₂ M₂) :
     (b.toMatrix c)ᵀ ⬝ BilinForm.toMatrix b B ⬝ b.toMatrix c = BilinForm.toMatrix c B := by
   rw [← LinearMap.toMatrix_id_eq_basis_toMatrix, ← BilinForm.toMatrix_comp, BilinForm.comp_id_id]
 #align bilin_form.to_matrix_mul_basis_to_matrix BilinForm.toMatrix_mul_basis_toMatrix
 
-/- warning: bilin_form.mul_to_matrix_mul -> BilinForm.mul_toMatrix_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.mul_to_matrix_mul BilinForm.mul_toMatrix_mulₓ'. -/
 theorem BilinForm.mul_toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix o n R₂) (N : Matrix n o R₂) :
     M ⬝ BilinForm.toMatrix b B ⬝ N = BilinForm.toMatrix c (B.comp (toLin c b Mᵀ) (toLin c b N)) :=
   by simp only [B.to_matrix_comp b c, to_matrix_to_lin, transpose_transpose]
 #align bilin_form.mul_to_matrix_mul BilinForm.mul_toMatrix_mul
 
-/- warning: bilin_form.mul_to_matrix -> BilinForm.mul_toMatrix is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.mul_to_matrix BilinForm.mul_toMatrixₓ'. -/
 theorem BilinForm.mul_toMatrix (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
     M ⬝ BilinForm.toMatrix b B = BilinForm.toMatrix b (B.compLeft (toLin b b Mᵀ)) := by
   rw [B.to_matrix_comp_left b, to_matrix_to_lin, transpose_transpose]
 #align bilin_form.mul_to_matrix BilinForm.mul_toMatrix
 
-/- warning: bilin_form.to_matrix_mul -> BilinForm.toMatrix_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_mul BilinForm.toMatrix_mulₓ'. -/
 theorem BilinForm.toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
     BilinForm.toMatrix b B ⬝ M = BilinForm.toMatrix b (B.compRight (toLin b b M)) := by
   rw [B.to_matrix_comp_right b, to_matrix_to_lin]
 #align bilin_form.to_matrix_mul BilinForm.toMatrix_mul
 
-/- warning: matrix.to_bilin_comp -> Matrix.toBilin_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.to_bilin_comp Matrix.toBilin_compₓ'. -/
 theorem Matrix.toBilin_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
     (Matrix.toBilin b M).comp (toLin c b P) (toLin c b Q) = Matrix.toBilin c (Pᵀ ⬝ M ⬝ Q) :=
   (BilinForm.toMatrix c).Injective
@@ -586,9 +433,6 @@ variable (b : Basis n R₃ M₃)
 
 variable (J J₃ A A' : Matrix n n R₃)
 
-/- warning: is_adjoint_pair_to_bilin' -> isAdjointPair_toBilin' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_adjoint_pair_to_bilin' isAdjointPair_toBilin'ₓ'. -/
 @[simp]
 theorem isAdjointPair_toBilin' [DecidableEq n] :
     BilinForm.IsAdjointPair (Matrix.toBilin' J) (Matrix.toBilin' J₃) (Matrix.toLin' A)
@@ -608,9 +452,6 @@ theorem isAdjointPair_toBilin' [DecidableEq n] :
   rfl
 #align is_adjoint_pair_to_bilin' isAdjointPair_toBilin'
 
-/- warning: is_adjoint_pair_to_bilin -> isAdjointPair_toBilin is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_adjoint_pair_to_bilin isAdjointPair_toBilinₓ'. -/
 @[simp]
 theorem isAdjointPair_toBilin [DecidableEq n] :
     BilinForm.IsAdjointPair (Matrix.toBilin b J) (Matrix.toBilin b J₃) (Matrix.toLin b b A)
@@ -629,12 +470,6 @@ theorem isAdjointPair_toBilin [DecidableEq n] :
   rfl
 #align is_adjoint_pair_to_bilin isAdjointPair_toBilin
 
-/- warning: matrix.is_adjoint_pair_equiv' -> Matrix.isAdjointPair_equiv' is a dubious translation:
-lean 3 declaration is
-  forall {R₃ : Type.{u1}} [_inst_10 : CommRing.{u1} R₃] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] (J : Matrix.{u2, u2, u1} n n R₃) (A : Matrix.{u2, u2, u1} n n R₃) (A' : Matrix.{u2, u2, u1} n n R₃) [_inst_17 : DecidableEq.{succ u2} n] (P : Matrix.{u2, u2, u1} n n R₃), (IsUnit.{max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Ring.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Matrix.ring.{u1, u2} n R₃ _inst_16 (fun (a : n) (b : n) => _inst_17 a b) (CommRing.toRing.{u1} R₃ _inst_10))) P) -> (Iff (Matrix.IsAdjointPair.{u1, u2, u2} R₃ n n _inst_10 _inst_16 _inst_16 (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.transpose.{u1, u2, u2} n n R₃ P) J) P) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.transpose.{u1, u2, u2} n n R₃ P) J) P) A A') (Matrix.IsAdjointPair.{u1, u2, u2} R₃ n n _inst_10 _inst_16 _inst_16 J J (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) P A) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Matrix.hasInv.{u2, u1} n R₃ _inst_16 (fun (a : n) (b : n) => _inst_17 a b) _inst_10) P)) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) P A') (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Matrix.hasInv.{u2, u1} n R₃ _inst_16 (fun (a : n) (b : n) => _inst_17 a b) _inst_10) P))))
-but is expected to have type
-  forall {R₃ : Type.{u1}} [_inst_10 : CommRing.{u1} R₃] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] (J : Matrix.{u2, u2, u1} n n R₃) (A : Matrix.{u2, u2, u1} n n R₃) (A' : Matrix.{u2, u2, u1} n n R₃) [_inst_17 : DecidableEq.{succ u2} n] (P : Matrix.{u2, u2, u1} n n R₃), (IsUnit.{max u1 u2} (Matrix.{u2, u2, u1} n n R₃) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R₃) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u2, u2, u1} n n R₃) (Matrix.semiring.{u1, u2} n R₃ (CommSemiring.toSemiring.{u1} R₃ (CommRing.toCommSemiring.{u1} R₃ _inst_10)) _inst_16 (fun (a : n) (b : n) => _inst_17 a b)))) P) -> (Iff (Matrix.IsAdjointPair.{u1, u2, u2} R₃ n n _inst_10 _inst_16 _inst_16 (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.transpose.{u1, u2, u2} n n R₃ P) J) P) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.transpose.{u1, u2, u2} n n R₃ P) J) P) A A') (Matrix.IsAdjointPair.{u1, u2, u2} R₃ n n _inst_10 _inst_16 _inst_16 J J (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) P A) (Inv.inv.{max u1 u2} (Matrix.{u2, u2, u1} n n R₃) (Matrix.inv.{u2, u1} n R₃ _inst_16 (fun (a : n) (b : n) => _inst_17 a b) _inst_10) P)) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) P A') (Inv.inv.{max u1 u2} (Matrix.{u2, u2, u1} n n R₃) (Matrix.inv.{u2, u1} n R₃ _inst_16 (fun (a : n) (b : n) => _inst_17 a b) _inst_10) P))))
-Case conversion may be inaccurate. Consider using '#align matrix.is_adjoint_pair_equiv' Matrix.isAdjointPair_equiv'ₓ'. -/
 theorem Matrix.isAdjointPair_equiv' [DecidableEq n] (P : Matrix n n R₃) (h : IsUnit P) :
     (Pᵀ ⬝ J ⬝ P).IsAdjointPair (Pᵀ ⬝ J ⬝ P) A A' ↔ J.IsAdjointPair J (P ⬝ A ⬝ P⁻¹) (P ⬝ A' ⬝ P⁻¹) :=
   by
@@ -679,12 +514,6 @@ def pairSelfAdjointMatricesSubmodule' : Submodule R₃ (Matrix n n R₃) :=
 #align pair_self_adjoint_matrices_submodule' pairSelfAdjointMatricesSubmodule'
 -/
 
-/- warning: mem_pair_self_adjoint_matrices_submodule' -> mem_pairSelfAdjointMatricesSubmodule' is a dubious translation:
-lean 3 declaration is
-  forall {R₃ : Type.{u1}} [_inst_10 : CommRing.{u1} R₃] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] (J : Matrix.{u2, u2, u1} n n R₃) (J₃ : Matrix.{u2, u2, u1} n n R₃) (A : Matrix.{u2, u2, u1} n n R₃) [_inst_17 : DecidableEq.{succ u2} n], Iff (Membership.Mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.{u2, u2, u1} n n R₃) (Submodule.setLike.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) A (pairSelfAdjointMatricesSubmodule.{u1, u2} R₃ n _inst_10 _inst_16 J J₃ (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsAdjointPair.{u1, u2, u2} R₃ n n _inst_10 _inst_16 _inst_16 J J₃ A A)
-but is expected to have type
-  forall {R₃ : Type.{u2}} [_inst_10 : CommRing.{u2} R₃] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] (J : Matrix.{u1, u1, u2} n n R₃) (J₃ : Matrix.{u1, u1, u2} n n R₃) (A : Matrix.{u1, u1, u2} n n R₃) [_inst_17 : DecidableEq.{succ u1} n], Iff (Membership.mem.{max u2 u1, max u1 u2} (Matrix.{u1, u1, u2} n n R₃) (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (Matrix.{u1, u1, u2} n n R₃) (Submodule.setLike.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)))))) A (pairSelfAdjointMatricesSubmodule.{u2, u1} R₃ n _inst_10 _inst_16 J J₃ (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsAdjointPair.{u2, u1, u1} R₃ n n _inst_10 _inst_16 _inst_16 J J₃ A A)
-Case conversion may be inaccurate. Consider using '#align mem_pair_self_adjoint_matrices_submodule' mem_pairSelfAdjointMatricesSubmodule'ₓ'. -/
 theorem mem_pairSelfAdjointMatricesSubmodule' :
     A ∈ pairSelfAdjointMatricesSubmodule J J₃ ↔ Matrix.IsAdjointPair J J₃ A A := by
   simp only [mem_pairSelfAdjointMatricesSubmodule]
@@ -698,12 +527,6 @@ def selfAdjointMatricesSubmodule' : Submodule R₃ (Matrix n n R₃) :=
 #align self_adjoint_matrices_submodule' selfAdjointMatricesSubmodule'
 -/
 
-/- warning: mem_self_adjoint_matrices_submodule' -> mem_selfAdjointMatricesSubmodule' is a dubious translation:
-lean 3 declaration is
-  forall {R₃ : Type.{u1}} [_inst_10 : CommRing.{u1} R₃] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] (J : Matrix.{u2, u2, u1} n n R₃) (A : Matrix.{u2, u2, u1} n n R₃) [_inst_17 : DecidableEq.{succ u2} n], Iff (Membership.Mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.{u2, u2, u1} n n R₃) (Submodule.setLike.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) A (selfAdjointMatricesSubmodule.{u1, u2} R₃ n _inst_10 _inst_16 J (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsSelfAdjoint.{u1, u2} R₃ n _inst_10 _inst_16 J A)
-but is expected to have type
-  forall {R₃ : Type.{u2}} [_inst_10 : CommRing.{u2} R₃] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] (J : Matrix.{u1, u1, u2} n n R₃) (A : Matrix.{u1, u1, u2} n n R₃) [_inst_17 : DecidableEq.{succ u1} n], Iff (Membership.mem.{max u2 u1, max u1 u2} (Matrix.{u1, u1, u2} n n R₃) (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (Matrix.{u1, u1, u2} n n R₃) (Submodule.setLike.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)))))) A (selfAdjointMatricesSubmodule.{u2, u1} R₃ n _inst_10 _inst_16 J (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsSelfAdjoint.{u2, u1} R₃ n _inst_10 _inst_16 J A)
-Case conversion may be inaccurate. Consider using '#align mem_self_adjoint_matrices_submodule' mem_selfAdjointMatricesSubmodule'ₓ'. -/
 theorem mem_selfAdjointMatricesSubmodule' :
     A ∈ selfAdjointMatricesSubmodule J ↔ J.IsSelfAdjoint A := by
   simp only [mem_selfAdjointMatricesSubmodule]
@@ -717,12 +540,6 @@ def skewAdjointMatricesSubmodule' : Submodule R₃ (Matrix n n R₃) :=
 #align skew_adjoint_matrices_submodule' skewAdjointMatricesSubmodule'
 -/
 
-/- warning: mem_skew_adjoint_matrices_submodule' -> mem_skewAdjointMatricesSubmodule' is a dubious translation:
-lean 3 declaration is
-  forall {R₃ : Type.{u1}} [_inst_10 : CommRing.{u1} R₃] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] (J : Matrix.{u2, u2, u1} n n R₃) (A : Matrix.{u2, u2, u1} n n R₃) [_inst_17 : DecidableEq.{succ u2} n], Iff (Membership.Mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.{u2, u2, u1} n n R₃) (Submodule.setLike.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) A (skewAdjointMatricesSubmodule.{u1, u2} R₃ n _inst_10 _inst_16 J (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsSkewAdjoint.{u1, u2} R₃ n _inst_10 _inst_16 J A)
-but is expected to have type
-  forall {R₃ : Type.{u2}} [_inst_10 : CommRing.{u2} R₃] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] (J : Matrix.{u1, u1, u2} n n R₃) (A : Matrix.{u1, u1, u2} n n R₃) [_inst_17 : DecidableEq.{succ u1} n], Iff (Membership.mem.{max u2 u1, max u1 u2} (Matrix.{u1, u1, u2} n n R₃) (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (Matrix.{u1, u1, u2} n n R₃) (Submodule.setLike.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)))))) A (skewAdjointMatricesSubmodule.{u2, u1} R₃ n _inst_10 _inst_16 J (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsSkewAdjoint.{u2, u1} R₃ n _inst_10 _inst_16 J A)
-Case conversion may be inaccurate. Consider using '#align mem_skew_adjoint_matrices_submodule' mem_skewAdjointMatricesSubmodule'ₓ'. -/
 theorem mem_skewAdjointMatricesSubmodule' :
     A ∈ skewAdjointMatricesSubmodule J ↔ J.IsSkewAdjoint A := by
   simp only [mem_skewAdjointMatricesSubmodule]
@@ -740,52 +557,34 @@ variable {A : Type _} [CommRing A] [IsDomain A] [Module A M₃] (B₃ : BilinFor
 
 variable {ι : Type _} [DecidableEq ι] [Fintype ι]
 
-/- warning: matrix.nondegenerate_to_bilin'_iff_nondegenerate_to_bilin -> Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.nondegenerate_to_bilin'_iff_nondegenerate_to_bilin Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilinₓ'. -/
 theorem Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin {M : Matrix ι ι R₂}
     (b : Basis ι R₂ M₂) : M.toBilin'.Nondegenerate ↔ (Matrix.toBilin b M).Nondegenerate :=
   (nondegenerate_congr_iff b.equivFun.symm).symm
 #align matrix.nondegenerate_to_bilin'_iff_nondegenerate_to_bilin Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin
 
-/- warning: matrix.nondegenerate.to_bilin' -> Matrix.Nondegenerate.toBilin' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.nondegenerate.to_bilin' Matrix.Nondegenerate.toBilin'ₓ'. -/
 -- Lemmas transferring nondegeneracy between a matrix and its associated bilinear form
 theorem Matrix.Nondegenerate.toBilin' {M : Matrix ι ι R₃} (h : M.Nondegenerate) :
     M.toBilin'.Nondegenerate := fun x hx =>
   h.eq_zero_of_ortho fun y => by simpa only [to_bilin'_apply'] using hx y
 #align matrix.nondegenerate.to_bilin' Matrix.Nondegenerate.toBilin'
 
-/- warning: matrix.nondegenerate_to_bilin'_iff -> Matrix.nondegenerate_toBilin'_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.nondegenerate_to_bilin'_iff Matrix.nondegenerate_toBilin'_iffₓ'. -/
 @[simp]
 theorem Matrix.nondegenerate_toBilin'_iff {M : Matrix ι ι R₃} :
     M.toBilin'.Nondegenerate ↔ M.Nondegenerate :=
   ⟨fun h v hv => h v fun w => (M.toBilin'_apply' _ _).trans <| hv w, Matrix.Nondegenerate.toBilin'⟩
 #align matrix.nondegenerate_to_bilin'_iff Matrix.nondegenerate_toBilin'_iff
 
-/- warning: matrix.nondegenerate.to_bilin -> Matrix.Nondegenerate.toBilin is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.nondegenerate.to_bilin Matrix.Nondegenerate.toBilinₓ'. -/
 theorem Matrix.Nondegenerate.toBilin {M : Matrix ι ι R₃} (h : M.Nondegenerate) (b : Basis ι R₃ M₃) :
     (toBilin b M).Nondegenerate :=
   (Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin b).mp h.toBilin'
 #align matrix.nondegenerate.to_bilin Matrix.Nondegenerate.toBilin
 
-/- warning: matrix.nondegenerate_to_bilin_iff -> Matrix.nondegenerate_toBilin_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.nondegenerate_to_bilin_iff Matrix.nondegenerate_toBilin_iffₓ'. -/
 @[simp]
 theorem Matrix.nondegenerate_toBilin_iff {M : Matrix ι ι R₃} (b : Basis ι R₃ M₃) :
     (toBilin b M).Nondegenerate ↔ M.Nondegenerate := by
   rw [← Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin, Matrix.nondegenerate_toBilin'_iff]
 #align matrix.nondegenerate_to_bilin_iff Matrix.nondegenerate_toBilin_iff
 
-/- warning: bilin_form.nondegenerate_to_matrix'_iff -> BilinForm.nondegenerate_toMatrix'_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_to_matrix'_iff BilinForm.nondegenerate_toMatrix'_iffₓ'. -/
 -- Lemmas transferring nondegeneracy between a bilinear form and its associated matrix
 @[simp]
 theorem nondegenerate_toMatrix'_iff {B : BilinForm R₃ (ι → R₃)} :
@@ -793,59 +592,38 @@ theorem nondegenerate_toMatrix'_iff {B : BilinForm R₃ (ι → R₃)} :
   Matrix.nondegenerate_toBilin'_iff.symm.trans <| (Matrix.toBilin'_toMatrix' B).symm ▸ Iff.rfl
 #align bilin_form.nondegenerate_to_matrix'_iff BilinForm.nondegenerate_toMatrix'_iff
 
-/- warning: bilin_form.nondegenerate.to_matrix' -> BilinForm.Nondegenerate.toMatrix' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate.to_matrix' BilinForm.Nondegenerate.toMatrix'ₓ'. -/
 theorem Nondegenerate.toMatrix' {B : BilinForm R₃ (ι → R₃)} (h : B.Nondegenerate) :
     B.toMatrix'.Nondegenerate :=
   nondegenerate_toMatrix'_iff.mpr h
 #align bilin_form.nondegenerate.to_matrix' BilinForm.Nondegenerate.toMatrix'
 
-/- warning: bilin_form.nondegenerate_to_matrix_iff -> BilinForm.nondegenerate_toMatrix_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_to_matrix_iff BilinForm.nondegenerate_toMatrix_iffₓ'. -/
 @[simp]
 theorem nondegenerate_toMatrix_iff {B : BilinForm R₃ M₃} (b : Basis ι R₃ M₃) :
     (toMatrix b B).Nondegenerate ↔ B.Nondegenerate :=
   (Matrix.nondegenerate_toBilin_iff b).symm.trans <| (Matrix.toBilin_toMatrix b B).symm ▸ Iff.rfl
 #align bilin_form.nondegenerate_to_matrix_iff BilinForm.nondegenerate_toMatrix_iff
 
-/- warning: bilin_form.nondegenerate.to_matrix -> BilinForm.Nondegenerate.toMatrix is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate.to_matrix BilinForm.Nondegenerate.toMatrixₓ'. -/
 theorem Nondegenerate.toMatrix {B : BilinForm R₃ M₃} (h : B.Nondegenerate) (b : Basis ι R₃ M₃) :
     (toMatrix b B).Nondegenerate :=
   (nondegenerate_toMatrix_iff b).mpr h
 #align bilin_form.nondegenerate.to_matrix BilinForm.Nondegenerate.toMatrix
 
-/- warning: bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero -> BilinForm.nondegenerate_toBilin'_iff_det_ne_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero BilinForm.nondegenerate_toBilin'_iff_det_ne_zeroₓ'. -/
 -- Some shorthands for combining the above with `matrix.nondegenerate_of_det_ne_zero`
 theorem nondegenerate_toBilin'_iff_det_ne_zero {M : Matrix ι ι A} :
     M.toBilin'.Nondegenerate ↔ M.det ≠ 0 := by
   rw [Matrix.nondegenerate_toBilin'_iff, Matrix.nondegenerate_iff_det_ne_zero]
 #align bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero BilinForm.nondegenerate_toBilin'_iff_det_ne_zero
 
-/- warning: bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' -> BilinForm.nondegenerate_toBilin'_of_det_ne_zero' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' BilinForm.nondegenerate_toBilin'_of_det_ne_zero'ₓ'. -/
 theorem nondegenerate_toBilin'_of_det_ne_zero' (M : Matrix ι ι A) (h : M.det ≠ 0) :
     M.toBilin'.Nondegenerate :=
   nondegenerate_toBilin'_iff_det_ne_zero.mpr h
 #align bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' BilinForm.nondegenerate_toBilin'_of_det_ne_zero'
 
-/- warning: bilin_form.nondegenerate_iff_det_ne_zero -> BilinForm.nondegenerate_iff_det_ne_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_iff_det_ne_zero BilinForm.nondegenerate_iff_det_ne_zeroₓ'. -/
 theorem nondegenerate_iff_det_ne_zero {B : BilinForm A M₃} (b : Basis ι A M₃) :
     B.Nondegenerate ↔ (toMatrix b B).det ≠ 0 := by
   rw [← Matrix.nondegenerate_iff_det_ne_zero, nondegenerate_to_matrix_iff]
 #align bilin_form.nondegenerate_iff_det_ne_zero BilinForm.nondegenerate_iff_det_ne_zero
 
-/- warning: bilin_form.nondegenerate_of_det_ne_zero -> BilinForm.nondegenerate_of_det_ne_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_of_det_ne_zero BilinForm.nondegenerate_of_det_ne_zeroₓ'. -/
 theorem nondegenerate_of_det_ne_zero (b : Basis ι A M₃) (h : (toMatrix b B₃).det ≠ 0) :
     B₃.Nondegenerate :=
   (nondegenerate_iff_det_ne_zero b).mpr h
Diff
@@ -170,8 +170,7 @@ def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R
         1 with
     invFun := Matrix.toBilin'Aux
     left_inv := by convert toBilin'Aux_toMatrixAux
-    right_inv := fun M => by
-      ext (i j)
+    right_inv := fun M => by ext (i j);
       simp only [to_fun_eq_coe, BilinForm.toMatrixAux_apply, Matrix.toBilin'Aux_stdBasis] }
 #align bilin_form.to_matrix' BilinForm.toMatrix'
 
@@ -299,10 +298,8 @@ theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o →
       rintro j' -
       simp only [smul_eq_mul, Pi.basisFun_repr, mul_assoc, mul_comm, mul_left_comm,
         Pi.basisFun_apply, of_apply]
-    · intros
-      simp only [zero_smul, smul_zero]
-  · intros
-    simp only [zero_smul, Finsupp.sum_zero]
+    · intros ; simp only [zero_smul, smul_zero]
+  · intros ; simp only [zero_smul, Finsupp.sum_zero]
 #align bilin_form.to_matrix'_comp BilinForm.toMatrix'_comp
 
 /- warning: bilin_form.to_matrix'_comp_left -> BilinForm.toMatrix'_compLeft is a dubious translation:
@@ -452,9 +449,7 @@ lean 3 declaration is
 but is expected to have type
   forall {R₂ : Type.{u2}} [_inst_7 : CommSemiring.{u2} R₂] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] [_inst_18 : DecidableEq.{succ u1} n], Eq.{max (succ u2) (succ u1)} (LinearEquiv.{u2, u2, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (Matrix.{u1, u1, u2} n n R₂) (BilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.addCommMonoid.{u2, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (BilinForm.instAddCommMonoidBilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.module.{u2, u1, u1, u2} n n R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u2, max u2 u1, u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (smulCommClass_self.{u2, u2} R₂ R₂ (CommSemiring.toCommMonoid.{u2} R₂ _inst_7) (MulActionWithZero.toMulAction.{u2, u2} R₂ R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u2} R₂ (CommSemiring.toCommMonoidWithZero.{u2} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))))) (Matrix.toBilin.{u2, max u2 u1, u1} R₂ (n -> R₂) _inst_7 (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) (Pi.basisFun.{u2, u1} R₂ n (CommSemiring.toSemiring.{u2} R₂ _inst_7) _inst_16)) (Matrix.toBilin'.{u2, u1} R₂ _inst_7 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b))
 Case conversion may be inaccurate. Consider using '#align matrix.to_bilin_basis_fun Matrix.toBilin_basisFunₓ'. -/
-theorem Matrix.toBilin_basisFun : Matrix.toBilin (Pi.basisFun R₂ n) = Matrix.toBilin' :=
-  by
-  ext M
+theorem Matrix.toBilin_basisFun : Matrix.toBilin (Pi.basisFun R₂ n) = Matrix.toBilin' := by ext M;
   simp only [Matrix.toBilin_apply, Matrix.toBilin'_apply, Pi.basisFun_repr]
 #align matrix.to_bilin_basis_fun Matrix.toBilin_basisFun
 
@@ -465,8 +460,7 @@ but is expected to have type
   forall {R₂ : Type.{u2}} [_inst_7 : CommSemiring.{u2} R₂] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] [_inst_18 : DecidableEq.{succ u1} n], Eq.{max (succ u2) (succ u1)} (LinearEquiv.{u2, u2, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (BilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.{u1, u1, u2} n n R₂) (BilinForm.instAddCommMonoidBilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.addCommMonoid.{u2, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u2, max u2 u1, u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (smulCommClass_self.{u2, u2} R₂ R₂ (CommSemiring.toCommMonoid.{u2} R₂ _inst_7) (MulActionWithZero.toMulAction.{u2, u2} R₂ R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u2} R₂ (CommSemiring.toCommMonoidWithZero.{u2} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))))) (Matrix.module.{u2, u1, u1, u2} n n R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (BilinForm.toMatrix.{u2, max u2 u1, u1} R₂ (n -> R₂) _inst_7 (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) (Pi.basisFun.{u2, u1} R₂ n (CommSemiring.toSemiring.{u2} R₂ _inst_7) _inst_16)) (BilinForm.toMatrix'.{u2, u1} R₂ _inst_7 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b))
 Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFunₓ'. -/
 theorem BilinForm.toMatrix_basisFun : BilinForm.toMatrix (Pi.basisFun R₂ n) = BilinForm.toMatrix' :=
-  by
-  ext B
+  by ext B;
   rw [BilinForm.toMatrix_apply, BilinForm.toMatrix'_apply, Pi.basisFun_apply, Pi.basisFun_apply]
 #align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFun
 
@@ -515,10 +509,8 @@ theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R
       rintro j' -
       simp only [smul_eq_mul, LinearMap.toMatrix_apply, Basis.equivFun_apply, mul_assoc, mul_comm,
         mul_left_comm]
-    · intros
-      simp only [zero_smul, smul_zero]
-  · intros
-    simp only [zero_smul, Finsupp.sum_zero]
+    · intros ; simp only [zero_smul, smul_zero]
+  · intros ; simp only [zero_smul, Finsupp.sum_zero]
 #align bilin_form.to_matrix_comp BilinForm.toMatrix_comp
 
 /- warning: bilin_form.to_matrix_comp_left -> BilinForm.toMatrix_compLeft is a dubious translation:
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen, Kexing Ying
 
 ! This file was ported from Lean 3 source module linear_algebra.matrix.bilinear_form
-! leanprover-community/mathlib commit 075b3f7d19b9da85a0b54b3e33055a74fc388dec
+! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -18,6 +18,9 @@ import Mathbin.LinearAlgebra.Matrix.SesquilinearForm
 /-!
 # Bilinear form
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines the conversion between bilinear forms and matrices.
 
 ## Main definitions
@@ -66,6 +69,7 @@ open BilinForm Finset LinearMap Matrix
 open Matrix
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Matrix.toBilin'Aux /-
 /-- The map from `matrix n n R` to bilinear forms on `n → R`.
 
 This is an auxiliary definition for the equivalence `matrix.to_bilin_form'`. -/
@@ -78,7 +82,11 @@ def Matrix.toBilin'Aux [Fintype n] (M : Matrix n n R₂) : BilinForm R₂ (n →
   bilin_smul_right a x y := by
     simp only [Pi.smul_apply, smul_eq_mul, mul_assoc, mul_left_comm, mul_sum]
 #align matrix.to_bilin'_aux Matrix.toBilin'Aux
+-/
 
+/- warning: matrix.to_bilin'_aux_std_basis -> Matrix.toBilin'Aux_stdBasis is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_aux_std_basis Matrix.toBilin'Aux_stdBasisₓ'. -/
 theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n R₂) (i j : n) :
     M.toBilin'Aux (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) = M i j :=
   by
@@ -100,6 +108,12 @@ theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n
     contradiction
 #align matrix.to_bilin'_aux_std_basis Matrix.toBilin'Aux_stdBasis
 
+/- warning: bilin_form.to_matrix_aux -> BilinForm.toMatrixAux is a dubious translation:
+lean 3 declaration is
+  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}}, (n -> M₂) -> (LinearMap.{u1, u1, max u1 u2, max u3 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrixAux._proof_1.{u1} R₂ _inst_7)) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))
+but is expected to have type
+  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}}, (n -> M₂) -> (LinearMap.{u1, u1, max u2 u1, max u1 u3} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.instAddCommMonoidBilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (smulCommClass_self.{u1, u1} R₂ R₂ (CommSemiring.toCommMonoid.{u1} R₂ _inst_7) (MulActionWithZero.toMulAction.{u1, u1} R₂ R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u1} R₂ (CommSemiring.toCommMonoidWithZero.{u1} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u1} R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))))) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_aux BilinForm.toMatrixAuxₓ'. -/
 /-- The linear map from bilinear forms to `matrix n n R` given an `n`-indexed basis.
 
 This is an auxiliary definition for the equivalence `matrix.to_bilin_form'`. -/
@@ -110,6 +124,9 @@ def BilinForm.toMatrixAux (b : n → M₂) : BilinForm R₂ M₂ →ₗ[R₂] Ma
   map_smul' f g := rfl
 #align bilin_form.to_matrix_aux BilinForm.toMatrixAux
 
+/- warning: bilin_form.to_matrix_aux_apply -> BilinForm.toMatrixAux_apply is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_aux_apply BilinForm.toMatrixAux_applyₓ'. -/
 @[simp]
 theorem BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (i j : n) :
     BilinForm.toMatrixAux b B i j = B (b i) (b j) :=
@@ -118,6 +135,9 @@ theorem BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (
 
 variable [Fintype n] [Fintype o]
 
+/- warning: to_bilin'_aux_to_matrix_aux -> toBilin'Aux_toMatrixAux is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align to_bilin'_aux_to_matrix_aux toBilin'Aux_toMatrixAuxₓ'. -/
 theorem toBilin'Aux_toMatrixAux [DecidableEq n] (B₂ : BilinForm R₂ (n → R₂)) :
     Matrix.toBilin'Aux (BilinForm.toMatrixAux (fun j => stdBasis R₂ (fun _ => R₂) j 1) B₂) = B₂ :=
   by
@@ -136,6 +156,12 @@ This section deals with the conversion between matrices and bilinear forms on `n
 
 variable [DecidableEq n] [DecidableEq o]
 
+/- warning: bilin_form.to_matrix' -> BilinForm.toMatrix' is a dubious translation:
+lean 3 declaration is
+  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], LinearEquiv.{u1, u1, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.toMatrix'._proof_1.{u1} R₂ _inst_7) (BilinForm.toMatrix'._proof_2.{u1} R₂ _inst_7) (BilinForm.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.addCommMonoid.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, max u2 u1, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrix'._proof_3.{u1} R₂ _inst_7)) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))
+but is expected to have type
+  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], LinearEquiv.{u1, u1, max u1 u2, max u1 u2} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.{u1, max u1 u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1500 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.instAddCommMonoidBilinForm.{u1, max u1 u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1500 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u1, max u1 u2, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1500 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (smulCommClass_self.{u1, u1} R₂ R₂ (CommSemiring.toCommMonoid.{u1} R₂ _inst_7) (MulActionWithZero.toMulAction.{u1, u1} R₂ R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u1} R₂ (CommSemiring.toCommMonoidWithZero.{u1} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u1} R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))))) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix' BilinForm.toMatrix'ₓ'. -/
 /-- The linear equivalence between bilinear forms on `n → R` and `n × n` matrices -/
 def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R₂ :=
   {
@@ -149,28 +175,46 @@ def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R
       simp only [to_fun_eq_coe, BilinForm.toMatrixAux_apply, Matrix.toBilin'Aux_stdBasis] }
 #align bilin_form.to_matrix' BilinForm.toMatrix'
 
+/- warning: bilin_form.to_matrix_aux_std_basis -> BilinForm.toMatrixAux_stdBasis is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_aux_std_basis BilinForm.toMatrixAux_stdBasisₓ'. -/
 @[simp]
 theorem BilinForm.toMatrixAux_stdBasis (B : BilinForm R₂ (n → R₂)) :
     BilinForm.toMatrixAux (fun j => stdBasis R₂ (fun _ => R₂) j 1) B = BilinForm.toMatrix' B :=
   rfl
 #align bilin_form.to_matrix_aux_std_basis BilinForm.toMatrixAux_stdBasis
 
+/- warning: matrix.to_bilin' -> Matrix.toBilin' is a dubious translation:
+lean 3 declaration is
+  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], LinearEquiv.{u1, u1, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (Matrix.toBilin'._proof_1.{u1} R₂ _inst_7) (Matrix.toBilin'._proof_2.{u1} R₂ _inst_7) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.addCommMonoid.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.module.{u1, max u2 u1, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.toBilin'._proof_3.{u1} R₂ _inst_7))
+but is expected to have type
+  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], LinearEquiv.{u1, u1, max u1 u2, max u1 u2} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.{u1, max u1 u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1888 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.instAddCommMonoidBilinForm.{u1, max u1 u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1888 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u1, max u1 u2, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (ᾰ : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.module.{u2, u1, u1} n (fun (a._@.Mathlib.LinearAlgebra.Matrix.BilinearForm._hyg.1888 : n) => R₂) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (smulCommClass_self.{u1, u1} R₂ R₂ (CommSemiring.toCommMonoid.{u1} R₂ _inst_7) (MulActionWithZero.toMulAction.{u1, u1} R₂ R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u1} R₂ (CommSemiring.toCommMonoidWithZero.{u1} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u1} R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))))
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin' Matrix.toBilin'ₓ'. -/
 /-- The linear equivalence between `n × n` matrices and bilinear forms on `n → R` -/
 def Matrix.toBilin' : Matrix n n R₂ ≃ₗ[R₂] BilinForm R₂ (n → R₂) :=
   BilinForm.toMatrix'.symm
 #align matrix.to_bilin' Matrix.toBilin'
 
+/- warning: matrix.to_bilin'_aux_eq -> Matrix.toBilin'Aux_eq is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_aux_eq Matrix.toBilin'Aux_eqₓ'. -/
 @[simp]
 theorem Matrix.toBilin'Aux_eq (M : Matrix n n R₂) : Matrix.toBilin'Aux M = Matrix.toBilin' M :=
   rfl
 #align matrix.to_bilin'_aux_eq Matrix.toBilin'Aux_eq
 
+/- warning: matrix.to_bilin'_apply -> Matrix.toBilin'_apply is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_apply Matrix.toBilin'_applyₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 theorem Matrix.toBilin'_apply (M : Matrix n n R₂) (x y : n → R₂) :
     Matrix.toBilin' M x y = ∑ (i) (j), x i * M i j * y j :=
   rfl
 #align matrix.to_bilin'_apply Matrix.toBilin'_apply
 
+/- warning: matrix.to_bilin'_apply' -> Matrix.toBilin'_apply' is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_apply' Matrix.toBilin'_apply'ₓ'. -/
 theorem Matrix.toBilin'_apply' (M : Matrix n n R₂) (v w : n → R₂) :
     Matrix.toBilin' M v w = Matrix.dotProduct v (M.mulVec w) :=
   by
@@ -181,42 +225,63 @@ theorem Matrix.toBilin'_apply' (M : Matrix n n R₂) (v w : n → R₂) :
   rw [← mul_assoc]
 #align matrix.to_bilin'_apply' Matrix.toBilin'_apply'
 
+/- warning: matrix.to_bilin'_std_basis -> Matrix.toBilin'_stdBasis is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_std_basis Matrix.toBilin'_stdBasisₓ'. -/
 @[simp]
 theorem Matrix.toBilin'_stdBasis (M : Matrix n n R₂) (i j : n) :
     Matrix.toBilin' M (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) = M i j :=
   Matrix.toBilin'Aux_stdBasis M i j
 #align matrix.to_bilin'_std_basis Matrix.toBilin'_stdBasis
 
+/- warning: bilin_form.to_matrix'_symm -> BilinForm.toMatrix'_symm is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_symm BilinForm.toMatrix'_symmₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix'_symm :
     (BilinForm.toMatrix'.symm : Matrix n n R₂ ≃ₗ[R₂] _) = Matrix.toBilin' :=
   rfl
 #align bilin_form.to_matrix'_symm BilinForm.toMatrix'_symm
 
+/- warning: matrix.to_bilin'_symm -> Matrix.toBilin'_symm is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_symm Matrix.toBilin'_symmₓ'. -/
 @[simp]
 theorem Matrix.toBilin'_symm :
     (Matrix.toBilin'.symm : _ ≃ₗ[R₂] Matrix n n R₂) = BilinForm.toMatrix' :=
   BilinForm.toMatrix'.symm_symm
 #align matrix.to_bilin'_symm Matrix.toBilin'_symm
 
+/- warning: matrix.to_bilin'_to_matrix' -> Matrix.toBilin'_toMatrix' is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_to_matrix' Matrix.toBilin'_toMatrix'ₓ'. -/
 @[simp]
 theorem Matrix.toBilin'_toMatrix' (B : BilinForm R₂ (n → R₂)) :
     Matrix.toBilin' (BilinForm.toMatrix' B) = B :=
   Matrix.toBilin'.apply_symm_apply B
 #align matrix.to_bilin'_to_matrix' Matrix.toBilin'_toMatrix'
 
+/- warning: bilin_form.to_matrix'_to_bilin' -> BilinForm.toMatrix'_toBilin' is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_to_bilin' BilinForm.toMatrix'_toBilin'ₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix'_toBilin' (M : Matrix n n R₂) :
     BilinForm.toMatrix' (Matrix.toBilin' M) = M :=
   BilinForm.toMatrix'.apply_symm_apply M
 #align bilin_form.to_matrix'_to_bilin' BilinForm.toMatrix'_toBilin'
 
+/- warning: bilin_form.to_matrix'_apply -> BilinForm.toMatrix'_apply is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_apply BilinForm.toMatrix'_applyₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix'_apply (B : BilinForm R₂ (n → R₂)) (i j : n) :
     BilinForm.toMatrix' B i j = B (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) :=
   rfl
 #align bilin_form.to_matrix'_apply BilinForm.toMatrix'_apply
 
+/- warning: bilin_form.to_matrix'_comp -> BilinForm.toMatrix'_comp is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_comp BilinForm.toMatrix'_compₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o → R₂) →ₗ[R₂] n → R₂) :
     (B.comp l r).toMatrix' = l.toMatrix'ᵀ ⬝ B.toMatrix' ⬝ r.toMatrix' :=
@@ -240,32 +305,50 @@ theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o →
     simp only [zero_smul, Finsupp.sum_zero]
 #align bilin_form.to_matrix'_comp BilinForm.toMatrix'_comp
 
+/- warning: bilin_form.to_matrix'_comp_left -> BilinForm.toMatrix'_compLeft is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_comp_left BilinForm.toMatrix'_compLeftₓ'. -/
 theorem BilinForm.toMatrix'_compLeft (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
     (B.compLeft f).toMatrix' = f.toMatrix'ᵀ ⬝ B.toMatrix' := by
   simp only [BilinForm.compLeft, BilinForm.toMatrix'_comp, to_matrix'_id, Matrix.mul_one]
 #align bilin_form.to_matrix'_comp_left BilinForm.toMatrix'_compLeft
 
+/- warning: bilin_form.to_matrix'_comp_right -> BilinForm.toMatrix'_compRight is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_comp_right BilinForm.toMatrix'_compRightₓ'. -/
 theorem BilinForm.toMatrix'_compRight (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
     (B.compRight f).toMatrix' = B.toMatrix' ⬝ f.toMatrix' := by
   simp only [BilinForm.compRight, BilinForm.toMatrix'_comp, to_matrix'_id, transpose_one,
     Matrix.one_mul]
 #align bilin_form.to_matrix'_comp_right BilinForm.toMatrix'_compRight
 
+/- warning: bilin_form.mul_to_matrix'_mul -> BilinForm.mul_toMatrix'_mul is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.mul_to_matrix'_mul BilinForm.mul_toMatrix'_mulₓ'. -/
 theorem BilinForm.mul_toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix o n R₂)
     (N : Matrix n o R₂) : M ⬝ B.toMatrix' ⬝ N = (B.comp Mᵀ.toLin' N.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp, transpose_transpose, to_matrix'_to_lin']
 #align bilin_form.mul_to_matrix'_mul BilinForm.mul_toMatrix'_mul
 
+/- warning: bilin_form.mul_to_matrix' -> BilinForm.mul_toMatrix' is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.mul_to_matrix' BilinForm.mul_toMatrix'ₓ'. -/
 theorem BilinForm.mul_toMatrix' (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
     M ⬝ B.toMatrix' = (B.compLeft Mᵀ.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp_left, transpose_transpose, to_matrix'_to_lin']
 #align bilin_form.mul_to_matrix' BilinForm.mul_toMatrix'
 
+/- warning: bilin_form.to_matrix'_mul -> BilinForm.toMatrix'_mul is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix'_mul BilinForm.toMatrix'_mulₓ'. -/
 theorem BilinForm.toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
     B.toMatrix' ⬝ M = (B.compRight M.toLin').toMatrix' := by
   simp only [B.to_matrix'_comp_right, to_matrix'_to_lin']
 #align bilin_form.to_matrix'_mul BilinForm.toMatrix'_mul
 
+/- warning: matrix.to_bilin'_comp -> Matrix.toBilin'_comp is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin'_comp Matrix.toBilin'_compₓ'. -/
 theorem Matrix.toBilin'_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
     M.toBilin'.comp P.toLin' Q.toLin' = (Pᵀ ⬝ M ⬝ Q).toBilin' :=
   BilinForm.toMatrix'.Injective
@@ -285,18 +368,33 @@ a module with a fixed basis.
 
 variable [DecidableEq n] (b : Basis n R₂ M₂)
 
+/- warning: bilin_form.to_matrix -> BilinForm.toMatrix is a dubious translation:
+lean 3 declaration is
+  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n], (Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) -> (LinearEquiv.{u1, u1, max u1 u2, max u3 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.toMatrix._proof_1.{u1} R₂ _inst_7) (BilinForm.toMatrix._proof_2.{u1} R₂ _inst_7) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrix._proof_3.{u1} R₂ _inst_7)) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))
+but is expected to have type
+  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n], (Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) -> (LinearEquiv.{u1, u1, max u2 u1, max u1 u3} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.instAddCommMonoidBilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (smulCommClass_self.{u1, u1} R₂ R₂ (CommSemiring.toCommMonoid.{u1} R₂ _inst_7) (MulActionWithZero.toMulAction.{u1, u1} R₂ R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u1} R₂ (CommSemiring.toCommMonoidWithZero.{u1} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u1} R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))))) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix BilinForm.toMatrixₓ'. -/
 /-- `bilin_form.to_matrix b` is the equivalence between `R`-bilinear forms on `M` and
 `n`-by-`n` matrices with entries in `R`, if `b` is an `R`-basis for `M`. -/
 noncomputable def BilinForm.toMatrix : BilinForm R₂ M₂ ≃ₗ[R₂] Matrix n n R₂ :=
   (BilinForm.congr b.equivFun).trans BilinForm.toMatrix'
 #align bilin_form.to_matrix BilinForm.toMatrix
 
+/- warning: matrix.to_bilin -> Matrix.toBilin is a dubious translation:
+lean 3 declaration is
+  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n], (Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) -> (LinearEquiv.{u1, u1, max u3 u1, max u1 u2} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (Matrix.toBilin._proof_1.{u1} R₂ _inst_7) (Matrix.toBilin._proof_2.{u1} R₂ _inst_7) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.toBilin._proof_3.{u1} R₂ _inst_7)))
+but is expected to have type
+  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n], (Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) -> (LinearEquiv.{u1, u1, max u1 u3, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (RingHomInvPair.ids.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.instAddCommMonoidBilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (smulCommClass_self.{u1, u1} R₂ R₂ (CommSemiring.toCommMonoid.{u1} R₂ _inst_7) (MulActionWithZero.toMulAction.{u1, u1} R₂ R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u1} R₂ (CommSemiring.toCommMonoidWithZero.{u1} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u1} R₂ (Semiring.toMonoidWithZero.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))))))
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin Matrix.toBilinₓ'. -/
 /-- `bilin_form.to_matrix b` is the equivalence between `R`-bilinear forms on `M` and
 `n`-by-`n` matrices with entries in `R`, if `b` is an `R`-basis for `M`. -/
 noncomputable def Matrix.toBilin : Matrix n n R₂ ≃ₗ[R₂] BilinForm R₂ M₂ :=
   (BilinForm.toMatrix b).symm
 #align matrix.to_bilin Matrix.toBilin
 
+/- warning: bilin_form.to_matrix_apply -> BilinForm.toMatrix_apply is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_apply BilinForm.toMatrix_applyₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix_apply (B : BilinForm R₂ M₂) (i j : n) :
     BilinForm.toMatrix b B i j = B (b i) (b j) := by
@@ -304,6 +402,9 @@ theorem BilinForm.toMatrix_apply (B : BilinForm R₂ M₂) (i j : n) :
     b.equiv_fun_symm_std_basis, b.equiv_fun_symm_std_basis]
 #align bilin_form.to_matrix_apply BilinForm.toMatrix_apply
 
+/- warning: matrix.to_bilin_apply -> Matrix.toBilin_apply is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin_apply Matrix.toBilin_applyₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
 theorem Matrix.toBilin_apply (M : Matrix n n R₂) (x y : M₂) :
@@ -314,40 +415,73 @@ theorem Matrix.toBilin_apply (M : Matrix n n R₂) (x y : M₂) :
     Basis.equivFun_apply]
 #align matrix.to_bilin_apply Matrix.toBilin_apply
 
+/- warning: bilinear_form.to_matrix_aux_eq -> BilinearForm.toMatrixAux_eq is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilinear_form.to_matrix_aux_eq BilinearForm.toMatrixAux_eqₓ'. -/
 -- Not a `simp` lemma since `bilin_form.to_matrix` needs an extra argument
 theorem BilinearForm.toMatrixAux_eq (B : BilinForm R₂ M₂) :
     BilinForm.toMatrixAux b B = BilinForm.toMatrix b B :=
   ext fun i j => by rw [BilinForm.toMatrix_apply, BilinForm.toMatrixAux_apply]
 #align bilinear_form.to_matrix_aux_eq BilinearForm.toMatrixAux_eq
 
+/- warning: bilin_form.to_matrix_symm -> BilinForm.toMatrix_symm is a dubious translation:
+lean 3 declaration is
+  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n] (b : Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9), Eq.{max (succ (max u3 u1)) (succ (max u1 u2))} (LinearEquiv.{u1, u1, max u3 u1, max u1 u2} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.toMatrix._proof_2.{u1} R₂ _inst_7) (BilinForm.toMatrix._proof_1.{u1} R₂ _inst_7) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrix._proof_3.{u1} R₂ _inst_7))) (LinearEquiv.symm.{u1, u1, max u1 u2, max u3 u1} R₂ R₂ (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrix._proof_3.{u1} R₂ _inst_7)) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.toMatrix._proof_1.{u1} R₂ _inst_7) (BilinForm.toMatrix._proof_2.{u1} R₂ _inst_7) (BilinForm.toMatrix.{u1, u2, u3} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)) (Matrix.toBilin.{u1, u2, u3} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)
+but is expected to have type
+  forall {R₂ : Type.{u3}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u3} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] [_inst_18 : DecidableEq.{succ u1} n] (b : Basis.{u1, u3, u2} n R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9), Eq.{max (max (succ u3) (succ u2)) (succ u1)} (LinearEquiv.{u3, u3, max u3 u1, max u3 u2} R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (Matrix.{u1, u1, u3} n n R₂) (BilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u3, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))))) (BilinForm.instAddCommMonoidBilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u3, u1, u1, u3} n n R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u3, u2, u3} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (smulCommClass_self.{u3, u3} R₂ R₂ (CommSemiring.toCommMonoid.{u3} R₂ _inst_7) (MulActionWithZero.toMulAction.{u3, u3} R₂ R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u3} R₂ (CommSemiring.toCommMonoidWithZero.{u3} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u3} R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))))))) (LinearEquiv.symm.{u3, u3, max u3 u2, max u3 u1} R₂ R₂ (BilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u1, u1, u3} n n R₂) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (BilinForm.instAddCommMonoidBilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u3, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u3, u2, u3} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (smulCommClass_self.{u3, u3} R₂ R₂ (CommSemiring.toCommMonoid.{u3} R₂ _inst_7) (MulActionWithZero.toMulAction.{u3, u3} R₂ R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u3} R₂ (CommSemiring.toCommMonoidWithZero.{u3} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u3} R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))))) (Matrix.module.{u3, u1, u1, u3} n n R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (BilinForm.toMatrix.{u3, u2, u1} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)) (Matrix.toBilin.{u3, u2, u1} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_symm BilinForm.toMatrix_symmₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix_symm : (BilinForm.toMatrix b).symm = Matrix.toBilin b :=
   rfl
 #align bilin_form.to_matrix_symm BilinForm.toMatrix_symm
 
+/- warning: matrix.to_bilin_symm -> Matrix.toBilin_symm is a dubious translation:
+lean 3 declaration is
+  forall {R₂ : Type.{u1}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u1} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8] {n : Type.{u3}} [_inst_16 : Fintype.{u3} n] [_inst_18 : DecidableEq.{succ u3} n] (b : Basis.{u3, u1, u2} n R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9), Eq.{max (succ (max u1 u2)) (succ (max u3 u1))} (LinearEquiv.{u1, u1, max u1 u2, max u3 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (Matrix.toBilin._proof_2.{u1} R₂ _inst_7) (Matrix.toBilin._proof_1.{u1} R₂ _inst_7) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u3, u3, u1} n n R₂) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.toBilin._proof_3.{u1} R₂ _inst_7)) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (LinearEquiv.symm.{u1, u1, max u3 u1, max u1 u2} R₂ R₂ (Matrix.{u3, u3, u1} n n R₂) (BilinForm.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Matrix.addCommMonoid.{u1, u3, u3} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.addCommMonoid.{u1, u2} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u1, u3, u3, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.module.{u1, u2, u1} R₂ M₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.toBilin._proof_3.{u1} R₂ _inst_7)) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (Matrix.toBilin._proof_1.{u1} R₂ _inst_7) (Matrix.toBilin._proof_2.{u1} R₂ _inst_7) (Matrix.toBilin.{u1, u2, u3} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)) (BilinForm.toMatrix.{u1, u2, u3} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)
+but is expected to have type
+  forall {R₂ : Type.{u3}} {M₂ : Type.{u2}} [_inst_7 : CommSemiring.{u3} R₂] [_inst_8 : AddCommMonoid.{u2} M₂] [_inst_9 : Module.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] [_inst_18 : DecidableEq.{succ u1} n] (b : Basis.{u1, u3, u2} n R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9), Eq.{max (max (succ u3) (succ u2)) (succ u1)} (LinearEquiv.{u3, u3, max u3 u2, max u3 u1} R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (BilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.{u1, u1, u3} n n R₂) (BilinForm.instAddCommMonoidBilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.addCommMonoid.{u3, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u3, u2, u3} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (smulCommClass_self.{u3, u3} R₂ R₂ (CommSemiring.toCommMonoid.{u3} R₂ _inst_7) (MulActionWithZero.toMulAction.{u3, u3} R₂ R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u3} R₂ (CommSemiring.toCommMonoidWithZero.{u3} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u3} R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))))) (Matrix.module.{u3, u1, u1, u3} n n R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))) (LinearEquiv.symm.{u3, u3, max u3 u1, max u3 u2} R₂ R₂ (Matrix.{u1, u1, u3} n n R₂) (BilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (CommSemiring.toSemiring.{u3} R₂ _inst_7) (Matrix.addCommMonoid.{u3, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))))) (BilinForm.instAddCommMonoidBilinForm.{u3, u2} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9) (Matrix.module.{u3, u1, u1, u3} n n R₂ R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u3, u2, u3} R₂ M₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) _inst_8 _inst_9 R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7) (Semiring.toModule.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (smulCommClass_self.{u3, u3} R₂ R₂ (CommSemiring.toCommMonoid.{u3} R₂ _inst_7) (MulActionWithZero.toMulAction.{u3, u3} R₂ R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u3} R₂ (CommSemiring.toCommMonoidWithZero.{u3} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u3} R₂ (Semiring.toMonoidWithZero.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)))))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHom.id.{u3} R₂ (Semiring.toNonAssocSemiring.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7))) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (RingHomInvPair.ids.{u3} R₂ (CommSemiring.toSemiring.{u3} R₂ _inst_7)) (Matrix.toBilin.{u3, u2, u1} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)) (BilinForm.toMatrix.{u3, u2, u1} R₂ M₂ _inst_7 _inst_8 _inst_9 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) b)
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin_symm Matrix.toBilin_symmₓ'. -/
 @[simp]
 theorem Matrix.toBilin_symm : (Matrix.toBilin b).symm = BilinForm.toMatrix b :=
   (BilinForm.toMatrix b).symm_symm
 #align matrix.to_bilin_symm Matrix.toBilin_symm
 
+/- warning: matrix.to_bilin_basis_fun -> Matrix.toBilin_basisFun is a dubious translation:
+lean 3 declaration is
+  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], Eq.{succ (max u2 u1)} (LinearEquiv.{u1, u1, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (Matrix.toBilin._proof_1.{u1} R₂ _inst_7) (Matrix.toBilin._proof_2.{u1} R₂ _inst_7) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.addCommMonoid.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.module.{u1, max u2 u1, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (Matrix.toBilin._proof_3.{u1} R₂ _inst_7))) (Matrix.toBilin.{u1, max u2 u1, u2} R₂ (n -> R₂) _inst_7 (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) (Pi.basisFun.{u1, u2} R₂ n (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_16)) (Matrix.toBilin'.{u1, u2} R₂ _inst_7 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b))
+but is expected to have type
+  forall {R₂ : Type.{u2}} [_inst_7 : CommSemiring.{u2} R₂] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] [_inst_18 : DecidableEq.{succ u1} n], Eq.{max (succ u2) (succ u1)} (LinearEquiv.{u2, u2, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (Matrix.{u1, u1, u2} n n R₂) (BilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.addCommMonoid.{u2, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (BilinForm.instAddCommMonoidBilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.module.{u2, u1, u1, u2} n n R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u2, max u2 u1, u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (smulCommClass_self.{u2, u2} R₂ R₂ (CommSemiring.toCommMonoid.{u2} R₂ _inst_7) (MulActionWithZero.toMulAction.{u2, u2} R₂ R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u2} R₂ (CommSemiring.toCommMonoidWithZero.{u2} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))))) (Matrix.toBilin.{u2, max u2 u1, u1} R₂ (n -> R₂) _inst_7 (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) (Pi.basisFun.{u2, u1} R₂ n (CommSemiring.toSemiring.{u2} R₂ _inst_7) _inst_16)) (Matrix.toBilin'.{u2, u1} R₂ _inst_7 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b))
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin_basis_fun Matrix.toBilin_basisFunₓ'. -/
 theorem Matrix.toBilin_basisFun : Matrix.toBilin (Pi.basisFun R₂ n) = Matrix.toBilin' :=
   by
   ext M
   simp only [Matrix.toBilin_apply, Matrix.toBilin'_apply, Pi.basisFun_repr]
 #align matrix.to_bilin_basis_fun Matrix.toBilin_basisFun
 
+/- warning: bilin_form.to_matrix_basis_fun -> BilinForm.toMatrix_basisFun is a dubious translation:
+lean 3 declaration is
+  forall {R₂ : Type.{u1}} [_inst_7 : CommSemiring.{u1} R₂] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] [_inst_18 : DecidableEq.{succ u2} n], Eq.{succ (max u2 u1)} (LinearEquiv.{u1, u1, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) (BilinForm.toMatrix._proof_1.{u1} R₂ _inst_7) (BilinForm.toMatrix._proof_2.{u1} R₂ _inst_7) (BilinForm.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.{u2, u2, u1} n n R₂) (BilinForm.addCommMonoid.{u1, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Matrix.addCommMonoid.{u1, u2, u2} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (BilinForm.module.{u1, max u2 u1, u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)) (BilinForm.toMatrix._proof_3.{u1} R₂ _inst_7)) (Matrix.module.{u1, u2, u2, u1} n n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (BilinForm.toMatrix.{u1, max u2 u1, u2} R₂ (n -> R₂) _inst_7 (Pi.addCommMonoid.{u2, u1} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))))) (Pi.Function.module.{u2, u1, u1} n R₂ R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7)))) (Semiring.toModule.{u1} R₂ (CommSemiring.toSemiring.{u1} R₂ _inst_7))) n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) (Pi.basisFun.{u1, u2} R₂ n (CommSemiring.toSemiring.{u1} R₂ _inst_7) _inst_16)) (BilinForm.toMatrix'.{u1, u2} R₂ _inst_7 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b))
+but is expected to have type
+  forall {R₂ : Type.{u2}} [_inst_7 : CommSemiring.{u2} R₂] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] [_inst_18 : DecidableEq.{succ u1} n], Eq.{max (succ u2) (succ u1)} (LinearEquiv.{u2, u2, max u2 u1, max u2 u1} R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (RingHomInvPair.ids.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (BilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.{u1, u1, u2} n n R₂) (BilinForm.instAddCommMonoidBilinForm.{u2, max u2 u1} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Matrix.addCommMonoid.{u2, u1, u1} n n R₂ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (BilinForm.instModuleBilinFormInstAddCommMonoidBilinForm.{u2, max u2 u1, u2} R₂ (n -> R₂) (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (smulCommClass_self.{u2, u2} R₂ R₂ (CommSemiring.toCommMonoid.{u2} R₂ _inst_7) (MulActionWithZero.toMulAction.{u2, u2} R₂ R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)) (CommMonoidWithZero.toZero.{u2} R₂ (CommSemiring.toCommMonoidWithZero.{u2} R₂ _inst_7)) (MonoidWithZero.toMulActionWithZero.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))))) (Matrix.module.{u2, u1, u1, u2} n n R₂ R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (BilinForm.toMatrix.{u2, max u2 u1, u1} R₂ (n -> R₂) _inst_7 (Pi.addCommMonoid.{u1, u2} n (fun (j : n) => R₂) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))))) (Pi.module.{u1, u2, u2} n (fun (x._@.Mathlib.LinearAlgebra.StdBasis._hyg.3573 : n) => R₂) R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7) (fun (i : n) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₂ (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7)))) (fun (i : n) => Semiring.toModule.{u2} R₂ (CommSemiring.toSemiring.{u2} R₂ _inst_7))) n _inst_16 (fun (a : n) (b : n) => _inst_18 a b) (Pi.basisFun.{u2, u1} R₂ n (CommSemiring.toSemiring.{u2} R₂ _inst_7) _inst_16)) (BilinForm.toMatrix'.{u2, u1} R₂ _inst_7 n _inst_16 (fun (a : n) (b : n) => _inst_18 a b))
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFunₓ'. -/
 theorem BilinForm.toMatrix_basisFun : BilinForm.toMatrix (Pi.basisFun R₂ n) = BilinForm.toMatrix' :=
   by
   ext B
   rw [BilinForm.toMatrix_apply, BilinForm.toMatrix'_apply, Pi.basisFun_apply, Pi.basisFun_apply]
 #align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFun
 
+/- warning: matrix.to_bilin_to_matrix -> Matrix.toBilin_toMatrix is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin_to_matrix Matrix.toBilin_toMatrixₓ'. -/
 @[simp]
 theorem Matrix.toBilin_toMatrix (B : BilinForm R₂ M₂) :
     Matrix.toBilin b (BilinForm.toMatrix b B) = B :=
   (Matrix.toBilin b).apply_symm_apply B
 #align matrix.to_bilin_to_matrix Matrix.toBilin_toMatrix
 
+/- warning: bilin_form.to_matrix_to_bilin -> BilinForm.toMatrix_toBilin is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_to_bilin BilinForm.toMatrix_toBilinₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix_toBilin (M : Matrix n n R₂) :
     BilinForm.toMatrix b (Matrix.toBilin b M) = M :=
@@ -360,6 +494,9 @@ variable (c : Basis o R₂ M₂')
 
 variable [DecidableEq o]
 
+/- warning: bilin_form.to_matrix_comp -> BilinForm.toMatrix_comp is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_comp BilinForm.toMatrix_compₓ'. -/
 -- Cannot be a `simp` lemma because `b` must be inferred.
 theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R₂] M₂) :
     BilinForm.toMatrix c (B.comp l r) =
@@ -384,38 +521,59 @@ theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R
     simp only [zero_smul, Finsupp.sum_zero]
 #align bilin_form.to_matrix_comp BilinForm.toMatrix_comp
 
+/- warning: bilin_form.to_matrix_comp_left -> BilinForm.toMatrix_compLeft is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_comp_left BilinForm.toMatrix_compLeftₓ'. -/
 theorem BilinForm.toMatrix_compLeft (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
     BilinForm.toMatrix b (B.compLeft f) = (toMatrix b b f)ᵀ ⬝ BilinForm.toMatrix b B := by
   simp only [comp_left, BilinForm.toMatrix_comp b b, to_matrix_id, Matrix.mul_one]
 #align bilin_form.to_matrix_comp_left BilinForm.toMatrix_compLeft
 
+/- warning: bilin_form.to_matrix_comp_right -> BilinForm.toMatrix_compRight is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_comp_right BilinForm.toMatrix_compRightₓ'. -/
 theorem BilinForm.toMatrix_compRight (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
     BilinForm.toMatrix b (B.compRight f) = BilinForm.toMatrix b B ⬝ toMatrix b b f := by
   simp only [BilinForm.compRight, BilinForm.toMatrix_comp b b, to_matrix_id, transpose_one,
     Matrix.one_mul]
 #align bilin_form.to_matrix_comp_right BilinForm.toMatrix_compRight
 
+/- warning: bilin_form.to_matrix_mul_basis_to_matrix -> BilinForm.toMatrix_mul_basis_toMatrix is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_mul_basis_to_matrix BilinForm.toMatrix_mul_basis_toMatrixₓ'. -/
 @[simp]
 theorem BilinForm.toMatrix_mul_basis_toMatrix (c : Basis o R₂ M₂) (B : BilinForm R₂ M₂) :
     (b.toMatrix c)ᵀ ⬝ BilinForm.toMatrix b B ⬝ b.toMatrix c = BilinForm.toMatrix c B := by
   rw [← LinearMap.toMatrix_id_eq_basis_toMatrix, ← BilinForm.toMatrix_comp, BilinForm.comp_id_id]
 #align bilin_form.to_matrix_mul_basis_to_matrix BilinForm.toMatrix_mul_basis_toMatrix
 
+/- warning: bilin_form.mul_to_matrix_mul -> BilinForm.mul_toMatrix_mul is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.mul_to_matrix_mul BilinForm.mul_toMatrix_mulₓ'. -/
 theorem BilinForm.mul_toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix o n R₂) (N : Matrix n o R₂) :
     M ⬝ BilinForm.toMatrix b B ⬝ N = BilinForm.toMatrix c (B.comp (toLin c b Mᵀ) (toLin c b N)) :=
   by simp only [B.to_matrix_comp b c, to_matrix_to_lin, transpose_transpose]
 #align bilin_form.mul_to_matrix_mul BilinForm.mul_toMatrix_mul
 
+/- warning: bilin_form.mul_to_matrix -> BilinForm.mul_toMatrix is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.mul_to_matrix BilinForm.mul_toMatrixₓ'. -/
 theorem BilinForm.mul_toMatrix (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
     M ⬝ BilinForm.toMatrix b B = BilinForm.toMatrix b (B.compLeft (toLin b b Mᵀ)) := by
   rw [B.to_matrix_comp_left b, to_matrix_to_lin, transpose_transpose]
 #align bilin_form.mul_to_matrix BilinForm.mul_toMatrix
 
+/- warning: bilin_form.to_matrix_mul -> BilinForm.toMatrix_mul is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.to_matrix_mul BilinForm.toMatrix_mulₓ'. -/
 theorem BilinForm.toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
     BilinForm.toMatrix b B ⬝ M = BilinForm.toMatrix b (B.compRight (toLin b b M)) := by
   rw [B.to_matrix_comp_right b, to_matrix_to_lin]
 #align bilin_form.to_matrix_mul BilinForm.toMatrix_mul
 
+/- warning: matrix.to_bilin_comp -> Matrix.toBilin_comp is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.to_bilin_comp Matrix.toBilin_compₓ'. -/
 theorem Matrix.toBilin_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
     (Matrix.toBilin b M).comp (toLin c b P) (toLin c b Q) = Matrix.toBilin c (Pᵀ ⬝ M ⬝ Q) :=
   (BilinForm.toMatrix c).Injective
@@ -436,6 +594,9 @@ variable (b : Basis n R₃ M₃)
 
 variable (J J₃ A A' : Matrix n n R₃)
 
+/- warning: is_adjoint_pair_to_bilin' -> isAdjointPair_toBilin' is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align is_adjoint_pair_to_bilin' isAdjointPair_toBilin'ₓ'. -/
 @[simp]
 theorem isAdjointPair_toBilin' [DecidableEq n] :
     BilinForm.IsAdjointPair (Matrix.toBilin' J) (Matrix.toBilin' J₃) (Matrix.toLin' A)
@@ -455,6 +616,9 @@ theorem isAdjointPair_toBilin' [DecidableEq n] :
   rfl
 #align is_adjoint_pair_to_bilin' isAdjointPair_toBilin'
 
+/- warning: is_adjoint_pair_to_bilin -> isAdjointPair_toBilin is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align is_adjoint_pair_to_bilin isAdjointPair_toBilinₓ'. -/
 @[simp]
 theorem isAdjointPair_toBilin [DecidableEq n] :
     BilinForm.IsAdjointPair (Matrix.toBilin b J) (Matrix.toBilin b J₃) (Matrix.toLin b b A)
@@ -473,6 +637,12 @@ theorem isAdjointPair_toBilin [DecidableEq n] :
   rfl
 #align is_adjoint_pair_to_bilin isAdjointPair_toBilin
 
+/- warning: matrix.is_adjoint_pair_equiv' -> Matrix.isAdjointPair_equiv' is a dubious translation:
+lean 3 declaration is
+  forall {R₃ : Type.{u1}} [_inst_10 : CommRing.{u1} R₃] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] (J : Matrix.{u2, u2, u1} n n R₃) (A : Matrix.{u2, u2, u1} n n R₃) (A' : Matrix.{u2, u2, u1} n n R₃) [_inst_17 : DecidableEq.{succ u2} n] (P : Matrix.{u2, u2, u1} n n R₃), (IsUnit.{max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Ring.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Matrix.ring.{u1, u2} n R₃ _inst_16 (fun (a : n) (b : n) => _inst_17 a b) (CommRing.toRing.{u1} R₃ _inst_10))) P) -> (Iff (Matrix.IsAdjointPair.{u1, u2, u2} R₃ n n _inst_10 _inst_16 _inst_16 (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.transpose.{u1, u2, u2} n n R₃ P) J) P) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.transpose.{u1, u2, u2} n n R₃ P) J) P) A A') (Matrix.IsAdjointPair.{u1, u2, u2} R₃ n n _inst_10 _inst_16 _inst_16 J J (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) P A) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Matrix.hasInv.{u2, u1} n R₃ _inst_16 (fun (a : n) (b : n) => _inst_17 a b) _inst_10) P)) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (Distrib.toHasMul.{u1} R₃ (Ring.toDistrib.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) P A') (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Matrix.hasInv.{u2, u1} n R₃ _inst_16 (fun (a : n) (b : n) => _inst_17 a b) _inst_10) P))))
+but is expected to have type
+  forall {R₃ : Type.{u1}} [_inst_10 : CommRing.{u1} R₃] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] (J : Matrix.{u2, u2, u1} n n R₃) (A : Matrix.{u2, u2, u1} n n R₃) (A' : Matrix.{u2, u2, u1} n n R₃) [_inst_17 : DecidableEq.{succ u2} n] (P : Matrix.{u2, u2, u1} n n R₃), (IsUnit.{max u1 u2} (Matrix.{u2, u2, u1} n n R₃) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R₃) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u2, u2, u1} n n R₃) (Matrix.semiring.{u1, u2} n R₃ (CommSemiring.toSemiring.{u1} R₃ (CommRing.toCommSemiring.{u1} R₃ _inst_10)) _inst_16 (fun (a : n) (b : n) => _inst_17 a b)))) P) -> (Iff (Matrix.IsAdjointPair.{u1, u2, u2} R₃ n n _inst_10 _inst_16 _inst_16 (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.transpose.{u1, u2, u2} n n R₃ P) J) P) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.transpose.{u1, u2, u2} n n R₃ P) J) P) A A') (Matrix.IsAdjointPair.{u1, u2, u2} R₃ n n _inst_10 _inst_16 _inst_16 J J (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) P A) (Inv.inv.{max u1 u2} (Matrix.{u2, u2, u1} n n R₃) (Matrix.inv.{u2, u1} n R₃ _inst_16 (fun (a : n) (b : n) => _inst_17 a b) _inst_10) P)) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.mul.{u1, u2, u2, u2} n n n R₃ _inst_16 (NonUnitalNonAssocRing.toMul.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) P A') (Inv.inv.{max u1 u2} (Matrix.{u2, u2, u1} n n R₃) (Matrix.inv.{u2, u1} n R₃ _inst_16 (fun (a : n) (b : n) => _inst_17 a b) _inst_10) P))))
+Case conversion may be inaccurate. Consider using '#align matrix.is_adjoint_pair_equiv' Matrix.isAdjointPair_equiv'ₓ'. -/
 theorem Matrix.isAdjointPair_equiv' [DecidableEq n] (P : Matrix n n R₃) (h : IsUnit P) :
     (Pᵀ ⬝ J ⬝ P).IsAdjointPair (Pᵀ ⬝ J ⬝ P) A A' ↔ J.IsAdjointPair J (P ⬝ A ⬝ P⁻¹) (P ⬝ A' ⬝ P⁻¹) :=
   by
@@ -507,6 +677,7 @@ theorem Matrix.isAdjointPair_equiv' [DecidableEq n] (P : Matrix n n R₃) (h : I
 
 variable [DecidableEq n]
 
+#print pairSelfAdjointMatricesSubmodule' /-
 /-- The submodule of pair-self-adjoint matrices with respect to bilinear forms corresponding to
 given matrices `J`, `J₂`. -/
 def pairSelfAdjointMatricesSubmodule' : Submodule R₃ (Matrix n n R₃) :=
@@ -514,33 +685,56 @@ def pairSelfAdjointMatricesSubmodule' : Submodule R₃ (Matrix n n R₃) :=
     ((LinearMap.toMatrix' : ((n → R₃) →ₗ[R₃] n → R₃) ≃ₗ[R₃] Matrix n n R₃) :
       ((n → R₃) →ₗ[R₃] n → R₃) →ₗ[R₃] Matrix n n R₃)
 #align pair_self_adjoint_matrices_submodule' pairSelfAdjointMatricesSubmodule'
+-/
 
-theorem mem_pair_self_adjoint_matrices_submodule' :
+/- warning: mem_pair_self_adjoint_matrices_submodule' -> mem_pairSelfAdjointMatricesSubmodule' is a dubious translation:
+lean 3 declaration is
+  forall {R₃ : Type.{u1}} [_inst_10 : CommRing.{u1} R₃] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] (J : Matrix.{u2, u2, u1} n n R₃) (J₃ : Matrix.{u2, u2, u1} n n R₃) (A : Matrix.{u2, u2, u1} n n R₃) [_inst_17 : DecidableEq.{succ u2} n], Iff (Membership.Mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.{u2, u2, u1} n n R₃) (Submodule.setLike.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) A (pairSelfAdjointMatricesSubmodule.{u1, u2} R₃ n _inst_10 _inst_16 J J₃ (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsAdjointPair.{u1, u2, u2} R₃ n n _inst_10 _inst_16 _inst_16 J J₃ A A)
+but is expected to have type
+  forall {R₃ : Type.{u2}} [_inst_10 : CommRing.{u2} R₃] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] (J : Matrix.{u1, u1, u2} n n R₃) (J₃ : Matrix.{u1, u1, u2} n n R₃) (A : Matrix.{u1, u1, u2} n n R₃) [_inst_17 : DecidableEq.{succ u1} n], Iff (Membership.mem.{max u2 u1, max u1 u2} (Matrix.{u1, u1, u2} n n R₃) (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (Matrix.{u1, u1, u2} n n R₃) (Submodule.setLike.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)))))) A (pairSelfAdjointMatricesSubmodule.{u2, u1} R₃ n _inst_10 _inst_16 J J₃ (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsAdjointPair.{u2, u1, u1} R₃ n n _inst_10 _inst_16 _inst_16 J J₃ A A)
+Case conversion may be inaccurate. Consider using '#align mem_pair_self_adjoint_matrices_submodule' mem_pairSelfAdjointMatricesSubmodule'ₓ'. -/
+theorem mem_pairSelfAdjointMatricesSubmodule' :
     A ∈ pairSelfAdjointMatricesSubmodule J J₃ ↔ Matrix.IsAdjointPair J J₃ A A := by
   simp only [mem_pairSelfAdjointMatricesSubmodule]
-#align mem_pair_self_adjoint_matrices_submodule' mem_pair_self_adjoint_matrices_submodule'
+#align mem_pair_self_adjoint_matrices_submodule' mem_pairSelfAdjointMatricesSubmodule'
 
+#print selfAdjointMatricesSubmodule' /-
 /-- The submodule of self-adjoint matrices with respect to the bilinear form corresponding to
 the matrix `J`. -/
 def selfAdjointMatricesSubmodule' : Submodule R₃ (Matrix n n R₃) :=
   pairSelfAdjointMatricesSubmodule J J
 #align self_adjoint_matrices_submodule' selfAdjointMatricesSubmodule'
+-/
 
-theorem mem_self_adjoint_matrices_submodule' :
+/- warning: mem_self_adjoint_matrices_submodule' -> mem_selfAdjointMatricesSubmodule' is a dubious translation:
+lean 3 declaration is
+  forall {R₃ : Type.{u1}} [_inst_10 : CommRing.{u1} R₃] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] (J : Matrix.{u2, u2, u1} n n R₃) (A : Matrix.{u2, u2, u1} n n R₃) [_inst_17 : DecidableEq.{succ u2} n], Iff (Membership.Mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.{u2, u2, u1} n n R₃) (Submodule.setLike.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) A (selfAdjointMatricesSubmodule.{u1, u2} R₃ n _inst_10 _inst_16 J (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsSelfAdjoint.{u1, u2} R₃ n _inst_10 _inst_16 J A)
+but is expected to have type
+  forall {R₃ : Type.{u2}} [_inst_10 : CommRing.{u2} R₃] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] (J : Matrix.{u1, u1, u2} n n R₃) (A : Matrix.{u1, u1, u2} n n R₃) [_inst_17 : DecidableEq.{succ u1} n], Iff (Membership.mem.{max u2 u1, max u1 u2} (Matrix.{u1, u1, u2} n n R₃) (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (Matrix.{u1, u1, u2} n n R₃) (Submodule.setLike.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)))))) A (selfAdjointMatricesSubmodule.{u2, u1} R₃ n _inst_10 _inst_16 J (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsSelfAdjoint.{u2, u1} R₃ n _inst_10 _inst_16 J A)
+Case conversion may be inaccurate. Consider using '#align mem_self_adjoint_matrices_submodule' mem_selfAdjointMatricesSubmodule'ₓ'. -/
+theorem mem_selfAdjointMatricesSubmodule' :
     A ∈ selfAdjointMatricesSubmodule J ↔ J.IsSelfAdjoint A := by
   simp only [mem_selfAdjointMatricesSubmodule]
-#align mem_self_adjoint_matrices_submodule' mem_self_adjoint_matrices_submodule'
+#align mem_self_adjoint_matrices_submodule' mem_selfAdjointMatricesSubmodule'
 
+#print skewAdjointMatricesSubmodule' /-
 /-- The submodule of skew-adjoint matrices with respect to the bilinear form corresponding to
 the matrix `J`. -/
 def skewAdjointMatricesSubmodule' : Submodule R₃ (Matrix n n R₃) :=
   pairSelfAdjointMatricesSubmodule (-J) J
 #align skew_adjoint_matrices_submodule' skewAdjointMatricesSubmodule'
+-/
 
-theorem mem_skew_adjoint_matrices_submodule' :
+/- warning: mem_skew_adjoint_matrices_submodule' -> mem_skewAdjointMatricesSubmodule' is a dubious translation:
+lean 3 declaration is
+  forall {R₃ : Type.{u1}} [_inst_10 : CommRing.{u1} R₃] {n : Type.{u2}} [_inst_16 : Fintype.{u2} n] (J : Matrix.{u2, u2, u1} n n R₃) (A : Matrix.{u2, u2, u1} n n R₃) [_inst_17 : DecidableEq.{succ u2} n], Iff (Membership.Mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n R₃) (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (SetLike.hasMem.{max u2 u1, max u2 u1} (Submodule.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Matrix.{u2, u2, u1} n n R₃) (Submodule.setLike.{u1, max u2 u1} R₃ (Matrix.{u2, u2, u1} n n R₃) (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (Matrix.addCommMonoid.{u1, u2, u2} n n R₃ (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) (Matrix.module.{u1, u2, u2, u1} n n R₃ R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} R₃ (NonUnitalNonAssocRing.toAddCommGroup.{u1} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u1} R₃ (Ring.toNonAssocRing.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10))))) (Semiring.toModule.{u1} R₃ (Ring.toSemiring.{u1} R₃ (CommRing.toRing.{u1} R₃ _inst_10)))))) A (skewAdjointMatricesSubmodule.{u1, u2} R₃ n _inst_10 _inst_16 J (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsSkewAdjoint.{u1, u2} R₃ n _inst_10 _inst_16 J A)
+but is expected to have type
+  forall {R₃ : Type.{u2}} [_inst_10 : CommRing.{u2} R₃] {n : Type.{u1}} [_inst_16 : Fintype.{u1} n] (J : Matrix.{u1, u1, u2} n n R₃) (A : Matrix.{u1, u1, u2} n n R₃) [_inst_17 : DecidableEq.{succ u1} n], Iff (Membership.mem.{max u2 u1, max u1 u2} (Matrix.{u1, u1, u2} n n R₃) (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submodule.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10))))) (Matrix.{u1, u1, u2} n n R₃) (Submodule.setLike.{u2, max u2 u1} R₃ (Matrix.{u1, u1, u2} n n R₃) (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (Matrix.addCommMonoid.{u2, u1, u1} n n R₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10)))))) (Matrix.module.{u2, u1, u1, u2} n n R₃ R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R₃ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R₃ (NonAssocRing.toNonUnitalNonAssocRing.{u2} R₃ (Ring.toNonAssocRing.{u2} R₃ (CommRing.toRing.{u2} R₃ _inst_10))))) (Semiring.toModule.{u2} R₃ (CommSemiring.toSemiring.{u2} R₃ (CommRing.toCommSemiring.{u2} R₃ _inst_10)))))) A (skewAdjointMatricesSubmodule.{u2, u1} R₃ n _inst_10 _inst_16 J (fun (a : n) (b : n) => _inst_17 a b))) (Matrix.IsSkewAdjoint.{u2, u1} R₃ n _inst_10 _inst_16 J A)
+Case conversion may be inaccurate. Consider using '#align mem_skew_adjoint_matrices_submodule' mem_skewAdjointMatricesSubmodule'ₓ'. -/
+theorem mem_skewAdjointMatricesSubmodule' :
     A ∈ skewAdjointMatricesSubmodule J ↔ J.IsSkewAdjoint A := by
   simp only [mem_skewAdjointMatricesSubmodule]
-#align mem_skew_adjoint_matrices_submodule' mem_skew_adjoint_matrices_submodule'
+#align mem_skew_adjoint_matrices_submodule' mem_skewAdjointMatricesSubmodule'
 
 end MatrixAdjoints
 
@@ -554,34 +748,52 @@ variable {A : Type _} [CommRing A] [IsDomain A] [Module A M₃] (B₃ : BilinFor
 
 variable {ι : Type _} [DecidableEq ι] [Fintype ι]
 
+/- warning: matrix.nondegenerate_to_bilin'_iff_nondegenerate_to_bilin -> Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.nondegenerate_to_bilin'_iff_nondegenerate_to_bilin Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilinₓ'. -/
 theorem Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin {M : Matrix ι ι R₂}
     (b : Basis ι R₂ M₂) : M.toBilin'.Nondegenerate ↔ (Matrix.toBilin b M).Nondegenerate :=
   (nondegenerate_congr_iff b.equivFun.symm).symm
 #align matrix.nondegenerate_to_bilin'_iff_nondegenerate_to_bilin Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin
 
+/- warning: matrix.nondegenerate.to_bilin' -> Matrix.Nondegenerate.toBilin' is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.nondegenerate.to_bilin' Matrix.Nondegenerate.toBilin'ₓ'. -/
 -- Lemmas transferring nondegeneracy between a matrix and its associated bilinear form
 theorem Matrix.Nondegenerate.toBilin' {M : Matrix ι ι R₃} (h : M.Nondegenerate) :
     M.toBilin'.Nondegenerate := fun x hx =>
   h.eq_zero_of_ortho fun y => by simpa only [to_bilin'_apply'] using hx y
 #align matrix.nondegenerate.to_bilin' Matrix.Nondegenerate.toBilin'
 
+/- warning: matrix.nondegenerate_to_bilin'_iff -> Matrix.nondegenerate_toBilin'_iff is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.nondegenerate_to_bilin'_iff Matrix.nondegenerate_toBilin'_iffₓ'. -/
 @[simp]
 theorem Matrix.nondegenerate_toBilin'_iff {M : Matrix ι ι R₃} :
     M.toBilin'.Nondegenerate ↔ M.Nondegenerate :=
   ⟨fun h v hv => h v fun w => (M.toBilin'_apply' _ _).trans <| hv w, Matrix.Nondegenerate.toBilin'⟩
 #align matrix.nondegenerate_to_bilin'_iff Matrix.nondegenerate_toBilin'_iff
 
+/- warning: matrix.nondegenerate.to_bilin -> Matrix.Nondegenerate.toBilin is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.nondegenerate.to_bilin Matrix.Nondegenerate.toBilinₓ'. -/
 theorem Matrix.Nondegenerate.toBilin {M : Matrix ι ι R₃} (h : M.Nondegenerate) (b : Basis ι R₃ M₃) :
     (toBilin b M).Nondegenerate :=
   (Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin b).mp h.toBilin'
 #align matrix.nondegenerate.to_bilin Matrix.Nondegenerate.toBilin
 
+/- warning: matrix.nondegenerate_to_bilin_iff -> Matrix.nondegenerate_toBilin_iff is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align matrix.nondegenerate_to_bilin_iff Matrix.nondegenerate_toBilin_iffₓ'. -/
 @[simp]
 theorem Matrix.nondegenerate_toBilin_iff {M : Matrix ι ι R₃} (b : Basis ι R₃ M₃) :
     (toBilin b M).Nondegenerate ↔ M.Nondegenerate := by
   rw [← Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin, Matrix.nondegenerate_toBilin'_iff]
 #align matrix.nondegenerate_to_bilin_iff Matrix.nondegenerate_toBilin_iff
 
+/- warning: bilin_form.nondegenerate_to_matrix'_iff -> BilinForm.nondegenerate_toMatrix'_iff is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_to_matrix'_iff BilinForm.nondegenerate_toMatrix'_iffₓ'. -/
 -- Lemmas transferring nondegeneracy between a bilinear form and its associated matrix
 @[simp]
 theorem nondegenerate_toMatrix'_iff {B : BilinForm R₃ (ι → R₃)} :
@@ -589,38 +801,59 @@ theorem nondegenerate_toMatrix'_iff {B : BilinForm R₃ (ι → R₃)} :
   Matrix.nondegenerate_toBilin'_iff.symm.trans <| (Matrix.toBilin'_toMatrix' B).symm ▸ Iff.rfl
 #align bilin_form.nondegenerate_to_matrix'_iff BilinForm.nondegenerate_toMatrix'_iff
 
+/- warning: bilin_form.nondegenerate.to_matrix' -> BilinForm.Nondegenerate.toMatrix' is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate.to_matrix' BilinForm.Nondegenerate.toMatrix'ₓ'. -/
 theorem Nondegenerate.toMatrix' {B : BilinForm R₃ (ι → R₃)} (h : B.Nondegenerate) :
     B.toMatrix'.Nondegenerate :=
   nondegenerate_toMatrix'_iff.mpr h
 #align bilin_form.nondegenerate.to_matrix' BilinForm.Nondegenerate.toMatrix'
 
+/- warning: bilin_form.nondegenerate_to_matrix_iff -> BilinForm.nondegenerate_toMatrix_iff is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_to_matrix_iff BilinForm.nondegenerate_toMatrix_iffₓ'. -/
 @[simp]
 theorem nondegenerate_toMatrix_iff {B : BilinForm R₃ M₃} (b : Basis ι R₃ M₃) :
     (toMatrix b B).Nondegenerate ↔ B.Nondegenerate :=
   (Matrix.nondegenerate_toBilin_iff b).symm.trans <| (Matrix.toBilin_toMatrix b B).symm ▸ Iff.rfl
 #align bilin_form.nondegenerate_to_matrix_iff BilinForm.nondegenerate_toMatrix_iff
 
+/- warning: bilin_form.nondegenerate.to_matrix -> BilinForm.Nondegenerate.toMatrix is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate.to_matrix BilinForm.Nondegenerate.toMatrixₓ'. -/
 theorem Nondegenerate.toMatrix {B : BilinForm R₃ M₃} (h : B.Nondegenerate) (b : Basis ι R₃ M₃) :
     (toMatrix b B).Nondegenerate :=
   (nondegenerate_toMatrix_iff b).mpr h
 #align bilin_form.nondegenerate.to_matrix BilinForm.Nondegenerate.toMatrix
 
+/- warning: bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero -> BilinForm.nondegenerate_toBilin'_iff_det_ne_zero is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero BilinForm.nondegenerate_toBilin'_iff_det_ne_zeroₓ'. -/
 -- Some shorthands for combining the above with `matrix.nondegenerate_of_det_ne_zero`
 theorem nondegenerate_toBilin'_iff_det_ne_zero {M : Matrix ι ι A} :
     M.toBilin'.Nondegenerate ↔ M.det ≠ 0 := by
   rw [Matrix.nondegenerate_toBilin'_iff, Matrix.nondegenerate_iff_det_ne_zero]
 #align bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero BilinForm.nondegenerate_toBilin'_iff_det_ne_zero
 
+/- warning: bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' -> BilinForm.nondegenerate_toBilin'_of_det_ne_zero' is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' BilinForm.nondegenerate_toBilin'_of_det_ne_zero'ₓ'. -/
 theorem nondegenerate_toBilin'_of_det_ne_zero' (M : Matrix ι ι A) (h : M.det ≠ 0) :
     M.toBilin'.Nondegenerate :=
   nondegenerate_toBilin'_iff_det_ne_zero.mpr h
 #align bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' BilinForm.nondegenerate_toBilin'_of_det_ne_zero'
 
+/- warning: bilin_form.nondegenerate_iff_det_ne_zero -> BilinForm.nondegenerate_iff_det_ne_zero is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_iff_det_ne_zero BilinForm.nondegenerate_iff_det_ne_zeroₓ'. -/
 theorem nondegenerate_iff_det_ne_zero {B : BilinForm A M₃} (b : Basis ι A M₃) :
     B.Nondegenerate ↔ (toMatrix b B).det ≠ 0 := by
   rw [← Matrix.nondegenerate_iff_det_ne_zero, nondegenerate_to_matrix_iff]
 #align bilin_form.nondegenerate_iff_det_ne_zero BilinForm.nondegenerate_iff_det_ne_zero
 
+/- warning: bilin_form.nondegenerate_of_det_ne_zero -> BilinForm.nondegenerate_of_det_ne_zero is a dubious translation:
+<too large>
+Case conversion may be inaccurate. Consider using '#align bilin_form.nondegenerate_of_det_ne_zero BilinForm.nondegenerate_of_det_ne_zeroₓ'. -/
 theorem nondegenerate_of_det_ne_zero (b : Basis ι A M₃) (h : (toMatrix b B₃).det ≠ 0) :
     B₃.Nondegenerate :=
   (nondegenerate_iff_det_ne_zero b).mpr h
Diff
@@ -611,20 +611,20 @@ theorem nondegenerate_toBilin'_iff_det_ne_zero {M : Matrix ι ι A} :
   rw [Matrix.nondegenerate_toBilin'_iff, Matrix.nondegenerate_iff_det_ne_zero]
 #align bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero BilinForm.nondegenerate_toBilin'_iff_det_ne_zero
 
-theorem nondegenerateToBilin'OfDetNeZero' (M : Matrix ι ι A) (h : M.det ≠ 0) :
+theorem nondegenerate_toBilin'_of_det_ne_zero' (M : Matrix ι ι A) (h : M.det ≠ 0) :
     M.toBilin'.Nondegenerate :=
   nondegenerate_toBilin'_iff_det_ne_zero.mpr h
-#align bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' BilinForm.nondegenerateToBilin'OfDetNeZero'
+#align bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' BilinForm.nondegenerate_toBilin'_of_det_ne_zero'
 
 theorem nondegenerate_iff_det_ne_zero {B : BilinForm A M₃} (b : Basis ι A M₃) :
     B.Nondegenerate ↔ (toMatrix b B).det ≠ 0 := by
   rw [← Matrix.nondegenerate_iff_det_ne_zero, nondegenerate_to_matrix_iff]
 #align bilin_form.nondegenerate_iff_det_ne_zero BilinForm.nondegenerate_iff_det_ne_zero
 
-theorem nondegenerateOfDetNeZero (b : Basis ι A M₃) (h : (toMatrix b B₃).det ≠ 0) :
+theorem nondegenerate_of_det_ne_zero (b : Basis ι A M₃) (h : (toMatrix b B₃).det ≠ 0) :
     B₃.Nondegenerate :=
   (nondegenerate_iff_det_ne_zero b).mpr h
-#align bilin_form.nondegenerate_of_det_ne_zero BilinForm.nondegenerateOfDetNeZero
+#align bilin_form.nondegenerate_of_det_ne_zero BilinForm.nondegenerate_of_det_ne_zero
 
 end Det
 
Diff
@@ -82,7 +82,7 @@ def Matrix.toBilin'Aux [Fintype n] (M : Matrix n n R₂) : BilinForm R₂ (n →
 theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n R₂) (i j : n) :
     M.toBilin'Aux (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) = M i j :=
   by
-  rw [Matrix.toBilin'Aux, [anonymous], sum_eq_single i, sum_eq_single j]
+  rw [Matrix.toBilin'Aux, coe_fn_mk, sum_eq_single i, sum_eq_single j]
   · simp only [std_basis_same, std_basis_same, one_mul, mul_one]
   · rintro j' - hj'
     apply mul_eq_zero_of_right

Changes in mathlib4

mathlib3
mathlib4
refactor(LinearAlgebra/BilinearForm/Hom): Deprecate results (#12078)

Following the removal of structure BilinForm from Mathlib (#11278) a number of definitions and results in LinearAlgebra/BilinearForm/Hom are essentially just the identity. This PR deprecates these results.

Co-authored-by: Christopher Hoskin <christopher.hoskin@gmail.com>

Diff
@@ -62,7 +62,7 @@ open Matrix
 
 This is an auxiliary definition for the equivalence `Matrix.toBilin'`. -/
 def Matrix.toBilin'Aux [Fintype n] (M : Matrix n n R₂) : BilinForm R₂ (n → R₂) :=
-  LinearMap.toBilin (Matrix.toLinearMap₂'Aux _ _ M)
+  Matrix.toLinearMap₂'Aux _ _ M
 #align matrix.to_bilin'_aux Matrix.toBilin'Aux
 
 theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n R₂) (i j : n) :
@@ -75,7 +75,7 @@ theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n
 
 This is an auxiliary definition for the equivalence `Matrix.toBilin'`. -/
 def BilinForm.toMatrixAux (b : n → M₂) : BilinForm R₂ M₂ →ₗ[R₂] Matrix n n R₂ :=
-  (LinearMap.toMatrix₂Aux b b) ∘ₗ BilinForm.toLinHom
+  LinearMap.toMatrix₂Aux b b
 #align bilin_form.to_matrix_aux BilinForm.toMatrixAux
 
 @[simp]
@@ -91,11 +91,8 @@ theorem toBilin'Aux_toMatrixAux [DecidableEq n] (B₂ : BilinForm R₂ (n → R
     -- Porting note: had to hint the base ring even though it should be clear from context...
     Matrix.toBilin'Aux (BilinForm.toMatrixAux (R₂ := R₂)
       (fun j => stdBasis R₂ (fun _ => R₂) j 1) B₂) = B₂ := by
-  rw [BilinForm.toMatrixAux, Matrix.toBilin'Aux, coe_comp, Function.comp_apply,
+  rw [BilinForm.toMatrixAux, Matrix.toBilin'Aux,
     toLinearMap₂'Aux_toMatrix₂Aux]
-  ext x y
-  simp only [coe_comp, coe_single, Function.comp_apply, toBilin_apply]
-  rfl
 #align to_bilin'_aux_to_matrix_aux toBilin'Aux_toMatrixAux
 
 section ToMatrix'
@@ -236,7 +233,7 @@ variable [DecidableEq n] (b : Basis n R₂ M₂)
 /-- `BilinForm.toMatrix b` is the equivalence between `R`-bilinear forms on `M` and
 `n`-by-`n` matrices with entries in `R`, if `b` is an `R`-basis for `M`. -/
 noncomputable def BilinForm.toMatrix : BilinForm R₂ M₂ ≃ₗ[R₂] Matrix n n R₂ :=
-  BilinForm.toLin ≪≫ₗ (LinearMap.toMatrix₂ b b)
+  LinearMap.toMatrix₂ b b
 #align bilin_form.to_matrix BilinForm.toMatrix
 
 /-- `BilinForm.toMatrix b` is the equivalence between `R`-bilinear forms on `M` and
@@ -282,7 +279,6 @@ theorem Matrix.toBilin_basisFun : Matrix.toBilin (Pi.basisFun R₂ n) = Matrix.t
 theorem BilinForm.toMatrix_basisFun :
     BilinForm.toMatrix (Pi.basisFun R₂ n) = BilinForm.toMatrix' := by
   rw [BilinForm.toMatrix, BilinForm.toMatrix', LinearMap.toMatrix₂_basisFun]
-  rfl
 #align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFun
 
 @[simp]
@@ -343,11 +339,8 @@ theorem BilinForm.toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
 theorem Matrix.toBilin_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
     (Matrix.toBilin b M).comp (toLin c b P) (toLin c b Q) = Matrix.toBilin c (Pᵀ * M * Q) := by
   ext x y
-  rw [Matrix.toBilin,
-    BilinForm.toMatrix, Matrix.toBilin, BilinForm.toMatrix, LinearEquiv.trans_symm,
-    LinearEquiv.trans_symm, toMatrix₂_symm, BilinForm.toLin_symm, LinearEquiv.trans_apply,
-    toMatrix₂_symm, BilinForm.toLin_symm, LinearEquiv.trans_apply,
-    ← Matrix.toLinearMap₂_compl₁₂ b b c c]
+  rw [Matrix.toBilin, BilinForm.toMatrix, Matrix.toBilin, BilinForm.toMatrix, toMatrix₂_symm,
+    toMatrix₂_symm, ← Matrix.toLinearMap₂_compl₁₂ b b c c]
   simp
 #align matrix.to_bilin_comp Matrix.toBilin_comp
 
refactor(LinearAlgebra/BilinForm): Remove structure BilinForm from Mathlib, migrate all of _root_.BilinForm to LinearMap.BilinForm (#11278)

Remove structure BilinForm from LinearAlgebra/BilinearForm/Basic and migrate all of _root_.BilinForm to LinearMap.BilinForm

Closes: #10553

This isn't the end of the story, as there's still a lot of overlap between LinearAlgebra/BilinearForm and LinearAlgebra/SesquilinearForm but that can be sorted out in subsequent PRs.

Supersedes:

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Christopher Hoskin <christopher.hoskin@overleaf.com> Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com> Co-authored-by: Vierkantor <vierkantor@vierkantor.com>

Diff
@@ -39,6 +39,7 @@ bilinear form, bilin form, BilinearForm, matrix, basis
 
 -/
 
+open LinearMap (BilinForm)
 
 variable {R : Type*} {M : Type*} [CommSemiring R] [AddCommMonoid M] [Module R M]
 variable {R₁ : Type*} {M₁ : Type*} [CommRing R₁] [AddCommGroup M₁] [Module R₁ M₁]
@@ -53,7 +54,7 @@ variable {n o : Type*}
 
 open BigOperators
 
-open BilinForm Finset LinearMap Matrix
+open Finset LinearMap Matrix
 
 open Matrix
 
@@ -78,11 +79,11 @@ def BilinForm.toMatrixAux (b : n → M₂) : BilinForm R₂ M₂ →ₗ[R₂] Ma
 #align bilin_form.to_matrix_aux BilinForm.toMatrixAux
 
 @[simp]
-theorem BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (i j : n) :
+theorem LinearMap.BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (i j : n) :
     -- Porting note: had to hint the base ring even though it should be clear from context...
     BilinForm.toMatrixAux (R₂ := R₂) b B i j = B (b i) (b j) :=
-  LinearMap.toMatrix₂Aux_apply (toLin B) _ _ _ _
-#align bilin_form.to_matrix_aux_apply BilinForm.toMatrixAux_apply
+  LinearMap.toMatrix₂Aux_apply B _ _ _ _
+#align bilin_form.to_matrix_aux_apply LinearMap.BilinForm.toMatrixAux_apply
 
 variable [Fintype n] [Fintype o]
 
@@ -93,7 +94,8 @@ theorem toBilin'Aux_toMatrixAux [DecidableEq n] (B₂ : BilinForm R₂ (n → R
   rw [BilinForm.toMatrixAux, Matrix.toBilin'Aux, coe_comp, Function.comp_apply,
     toLinearMap₂'Aux_toMatrix₂Aux]
   ext x y
-  simp only [toBilin_apply, BilinForm.toLin'_apply]
+  simp only [coe_comp, coe_single, Function.comp_apply, toBilin_apply]
+  rfl
 #align to_bilin'_aux_to_matrix_aux toBilin'Aux_toMatrixAux
 
 section ToMatrix'
@@ -107,17 +109,17 @@ This section deals with the conversion between matrices and bilinear forms on `n
 variable [DecidableEq n] [DecidableEq o]
 
 /-- The linear equivalence between bilinear forms on `n → R` and `n × n` matrices -/
-def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R₂ :=
-  BilinForm.toLin ≪≫ₗ  LinearMap.toMatrix₂'
-#align bilin_form.to_matrix' BilinForm.toMatrix'
+def LinearMap.BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R₂ :=
+  LinearMap.toMatrix₂'
+#align bilin_form.to_matrix' LinearMap.BilinForm.toMatrix'
 
 @[simp]
-theorem BilinForm.toMatrixAux_stdBasis (B : BilinForm R₂ (n → R₂)) :
+theorem LinearMap.BilinForm.toMatrixAux_stdBasis (B : BilinForm R₂ (n → R₂)) :
     -- Porting note: had to hint the base ring even though it should be clear from context...
     BilinForm.toMatrixAux (R₂ := R₂) (fun j => stdBasis R₂ (fun _ => R₂) j 1) B =
       BilinForm.toMatrix' B :=
   rfl
-#align bilin_form.to_matrix_aux_std_basis BilinForm.toMatrixAux_stdBasis
+#align bilin_form.to_matrix_aux_std_basis LinearMap.BilinForm.toMatrixAux_stdBasis
 
 /-- The linear equivalence between `n × n` matrices and bilinear forms on `n → R` -/
 def Matrix.toBilin' : Matrix n n R₂ ≃ₗ[R₂] BilinForm R₂ (n → R₂) :=
@@ -145,10 +147,10 @@ theorem Matrix.toBilin'_stdBasis (M : Matrix n n R₂) (i j : n) :
 #align matrix.to_bilin'_std_basis Matrix.toBilin'_stdBasis
 
 @[simp]
-theorem BilinForm.toMatrix'_symm :
+theorem LinearMap.BilinForm.toMatrix'_symm :
     (BilinForm.toMatrix'.symm : Matrix n n R₂ ≃ₗ[R₂] _) = Matrix.toBilin' :=
   rfl
-#align bilin_form.to_matrix'_symm BilinForm.toMatrix'_symm
+#align bilin_form.to_matrix'_symm LinearMap.BilinForm.toMatrix'_symm
 
 @[simp]
 theorem Matrix.toBilin'_symm :
@@ -162,51 +164,55 @@ theorem Matrix.toBilin'_toMatrix' (B : BilinForm R₂ (n → R₂)) :
   Matrix.toBilin'.apply_symm_apply B
 #align matrix.to_bilin'_to_matrix' Matrix.toBilin'_toMatrix'
 
+namespace LinearMap
+
 @[simp]
 theorem BilinForm.toMatrix'_toBilin' (M : Matrix n n R₂) :
     BilinForm.toMatrix' (Matrix.toBilin' M) = M :=
   LinearMap.toMatrix₂'.apply_symm_apply M
-#align bilin_form.to_matrix'_to_bilin' BilinForm.toMatrix'_toBilin'
+#align bilin_form.to_matrix'_to_bilin' LinearMap.BilinForm.toMatrix'_toBilin'
 
 @[simp]
 theorem BilinForm.toMatrix'_apply (B : BilinForm R₂ (n → R₂)) (i j : n) :
     BilinForm.toMatrix' B i j = B (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) :=
   LinearMap.toMatrix₂'_apply _ _ _
-#align bilin_form.to_matrix'_apply BilinForm.toMatrix'_apply
+#align bilin_form.to_matrix'_apply LinearMap.BilinForm.toMatrix'_apply
 
 -- Porting note: dot notation for bundled maps doesn't work in the rest of this section
 @[simp]
 theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o → R₂) →ₗ[R₂] n → R₂) :
     BilinForm.toMatrix' (B.comp l r) =
       (LinearMap.toMatrix' l)ᵀ * BilinForm.toMatrix' B * LinearMap.toMatrix' r :=
-  LinearMap.toMatrix₂'_compl₁₂ (toLin B) _ _
-#align bilin_form.to_matrix'_comp BilinForm.toMatrix'_comp
+  LinearMap.toMatrix₂'_compl₁₂ B _ _
+#align bilin_form.to_matrix'_comp LinearMap.BilinForm.toMatrix'_comp
 
 theorem BilinForm.toMatrix'_compLeft (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
     BilinForm.toMatrix' (B.compLeft f) = (LinearMap.toMatrix' f)ᵀ * BilinForm.toMatrix' B :=
-  LinearMap.toMatrix₂'_comp (toLin B) _
-#align bilin_form.to_matrix'_comp_left BilinForm.toMatrix'_compLeft
+  LinearMap.toMatrix₂'_comp B _
+#align bilin_form.to_matrix'_comp_left LinearMap.BilinForm.toMatrix'_compLeft
 
 theorem BilinForm.toMatrix'_compRight (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
     BilinForm.toMatrix' (B.compRight f) = BilinForm.toMatrix' B * LinearMap.toMatrix' f :=
-  LinearMap.toMatrix₂'_compl₂ (toLin B) _
-#align bilin_form.to_matrix'_comp_right BilinForm.toMatrix'_compRight
+  LinearMap.toMatrix₂'_compl₂ B _
+#align bilin_form.to_matrix'_comp_right LinearMap.BilinForm.toMatrix'_compRight
 
 theorem BilinForm.mul_toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix o n R₂)
     (N : Matrix n o R₂) : M * BilinForm.toMatrix' B * N =
       BilinForm.toMatrix' (B.comp (Matrix.toLin' Mᵀ) (Matrix.toLin' N)) :=
-  LinearMap.mul_toMatrix₂'_mul (toLin B) _ _
-#align bilin_form.mul_to_matrix'_mul BilinForm.mul_toMatrix'_mul
+  LinearMap.mul_toMatrix₂'_mul B _ _
+#align bilin_form.mul_to_matrix'_mul LinearMap.BilinForm.mul_toMatrix'_mul
 
 theorem BilinForm.mul_toMatrix' (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
     M * BilinForm.toMatrix' B = BilinForm.toMatrix' (B.compLeft (Matrix.toLin' Mᵀ)) :=
-  LinearMap.mul_toMatrix' (toLin B) _
-#align bilin_form.mul_to_matrix' BilinForm.mul_toMatrix'
+  LinearMap.mul_toMatrix' B _
+#align bilin_form.mul_to_matrix' LinearMap.BilinForm.mul_toMatrix'
 
 theorem BilinForm.toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
     BilinForm.toMatrix' B * M = BilinForm.toMatrix' (B.compRight (Matrix.toLin' M)) :=
-  LinearMap.toMatrix₂'_mul (toLin B) _
-#align bilin_form.to_matrix'_mul BilinForm.toMatrix'_mul
+  LinearMap.toMatrix₂'_mul B _
+#align bilin_form.to_matrix'_mul LinearMap.BilinForm.toMatrix'_mul
+
+end LinearMap
 
 theorem Matrix.toBilin'_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
     M.toBilin'.comp (Matrix.toLin' P) (Matrix.toLin' Q) = Matrix.toBilin' (Pᵀ * M * Q) :=
@@ -242,7 +248,7 @@ noncomputable def Matrix.toBilin : Matrix n n R₂ ≃ₗ[R₂] BilinForm R₂ M
 @[simp]
 theorem BilinForm.toMatrix_apply (B : BilinForm R₂ M₂) (i j : n) :
     BilinForm.toMatrix b B i j = B (b i) (b j) :=
-  LinearMap.toMatrix₂_apply _ _ (toLin B) _ _
+  LinearMap.toMatrix₂_apply _ _ B _ _
 #align bilin_form.to_matrix_apply BilinForm.toMatrix_apply
 
 @[simp]
@@ -254,7 +260,7 @@ theorem Matrix.toBilin_apply (M : Matrix n n R₂) (x y : M₂) :
 -- Not a `simp` lemma since `BilinForm.toMatrix` needs an extra argument
 theorem BilinearForm.toMatrixAux_eq (B : BilinForm R₂ M₂) :
     BilinForm.toMatrixAux (R₂ := R₂) b B = BilinForm.toMatrix b B :=
-  LinearMap.toMatrix₂Aux_eq _ _ (toLin B)
+  LinearMap.toMatrix₂Aux_eq _ _ B
 #align bilinear_form.to_matrix_aux_eq BilinearForm.toMatrixAux_eq
 
 @[simp]
@@ -269,12 +275,14 @@ theorem Matrix.toBilin_symm : (Matrix.toBilin b).symm = BilinForm.toMatrix b :=
 
 theorem Matrix.toBilin_basisFun : Matrix.toBilin (Pi.basisFun R₂ n) = Matrix.toBilin' := by
   ext M
-  simp only [Matrix.toBilin_apply, Matrix.toBilin'_apply, Pi.basisFun_repr]
+  simp only [coe_comp, coe_single, Function.comp_apply, toBilin_apply, Pi.basisFun_repr,
+    toBilin'_apply]
 #align matrix.to_bilin_basis_fun Matrix.toBilin_basisFun
 
 theorem BilinForm.toMatrix_basisFun :
     BilinForm.toMatrix (Pi.basisFun R₂ n) = BilinForm.toMatrix' := by
   rw [BilinForm.toMatrix, BilinForm.toMatrix', LinearMap.toMatrix₂_basisFun]
+  rfl
 #align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFun
 
 @[simp]
@@ -297,39 +305,39 @@ variable [DecidableEq o]
 theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R₂] M₂) :
     BilinForm.toMatrix c (B.comp l r) =
       (LinearMap.toMatrix c b l)ᵀ * BilinForm.toMatrix b B * LinearMap.toMatrix c b r :=
-  LinearMap.toMatrix₂_compl₁₂ _ _ _ _ (toLin B) _ _
+  LinearMap.toMatrix₂_compl₁₂ _ _ _ _ B _ _
 #align bilin_form.to_matrix_comp BilinForm.toMatrix_comp
 
 theorem BilinForm.toMatrix_compLeft (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
     BilinForm.toMatrix b (B.compLeft f) = (LinearMap.toMatrix b b f)ᵀ * BilinForm.toMatrix b B :=
-  LinearMap.toMatrix₂_comp _ _ _ (toLin B) _
+  LinearMap.toMatrix₂_comp _ _ _ B _
 #align bilin_form.to_matrix_comp_left BilinForm.toMatrix_compLeft
 
 theorem BilinForm.toMatrix_compRight (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
     BilinForm.toMatrix b (B.compRight f) = BilinForm.toMatrix b B * LinearMap.toMatrix b b f :=
-  LinearMap.toMatrix₂_compl₂ _ _ _ (toLin B) _
+  LinearMap.toMatrix₂_compl₂ _ _ _ B _
 #align bilin_form.to_matrix_comp_right BilinForm.toMatrix_compRight
 
 @[simp]
 theorem BilinForm.toMatrix_mul_basis_toMatrix (c : Basis o R₂ M₂) (B : BilinForm R₂ M₂) :
     (b.toMatrix c)ᵀ * BilinForm.toMatrix b B * b.toMatrix c = BilinForm.toMatrix c B :=
-  LinearMap.toMatrix₂_mul_basis_toMatrix _ _ _  _ (toLin B)
+  LinearMap.toMatrix₂_mul_basis_toMatrix _ _ _  _ B
 #align bilin_form.to_matrix_mul_basis_to_matrix BilinForm.toMatrix_mul_basis_toMatrix
 
 theorem BilinForm.mul_toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix o n R₂) (N : Matrix n o R₂) :
     M * BilinForm.toMatrix b B * N =
       BilinForm.toMatrix c (B.comp (Matrix.toLin c b Mᵀ) (Matrix.toLin c b N)) :=
-  LinearMap.mul_toMatrix₂_mul _ _ _ _ (toLin B) _ _
+  LinearMap.mul_toMatrix₂_mul _ _ _ _ B _ _
 #align bilin_form.mul_to_matrix_mul BilinForm.mul_toMatrix_mul
 
 theorem BilinForm.mul_toMatrix (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
     M * BilinForm.toMatrix b B = BilinForm.toMatrix b (B.compLeft (Matrix.toLin b b Mᵀ)) :=
-  LinearMap.mul_toMatrix₂ _ _ _ (toLin B) _
+  LinearMap.mul_toMatrix₂ _ _ _ B _
 #align bilin_form.mul_to_matrix BilinForm.mul_toMatrix
 
 theorem BilinForm.toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
     BilinForm.toMatrix b B * M = BilinForm.toMatrix b (B.compRight (Matrix.toLin b b M)) :=
-  LinearMap.toMatrix₂_mul _ _ _ (toLin B) _
+  LinearMap.toMatrix₂_mul _ _ _  B _
 #align bilin_form.to_matrix_mul BilinForm.toMatrix_mul
 
 theorem Matrix.toBilin_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
@@ -416,6 +424,8 @@ theorem mem_skewAdjointMatricesSubmodule' :
 
 end MatrixAdjoints
 
+namespace LinearMap
+
 namespace BilinForm
 
 section Det
@@ -443,13 +453,13 @@ theorem _root_.Matrix.nondegenerate_toBilin'_iff {M : Matrix ι ι R₃} :
 #align matrix.nondegenerate_to_bilin'_iff Matrix.nondegenerate_toBilin'_iff
 
 theorem _root_.Matrix.Nondegenerate.toBilin {M : Matrix ι ι R₃} (h : M.Nondegenerate)
-    (b : Basis ι R₃ M₃) : (toBilin b M).Nondegenerate :=
+    (b : Basis ι R₃ M₃) : (Matrix.toBilin b M).Nondegenerate :=
   (Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin b).mp h.toBilin'
 #align matrix.nondegenerate.to_bilin Matrix.Nondegenerate.toBilin
 
 @[simp]
 theorem _root_.Matrix.nondegenerate_toBilin_iff {M : Matrix ι ι R₃} (b : Basis ι R₃ M₃) :
-    (toBilin b M).Nondegenerate ↔ M.Nondegenerate := by
+    (Matrix.toBilin b M).Nondegenerate ↔ M.Nondegenerate := by
   rw [← Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin, Matrix.nondegenerate_toBilin'_iff]
 #align matrix.nondegenerate_to_bilin_iff Matrix.nondegenerate_toBilin_iff
 
@@ -457,47 +467,47 @@ theorem _root_.Matrix.nondegenerate_toBilin_iff {M : Matrix ι ι R₃} (b : Bas
 
 @[simp]
 theorem nondegenerate_toMatrix'_iff {B : BilinForm R₃ (ι → R₃)} :
-    B.toMatrix'.Nondegenerate ↔ B.Nondegenerate :=
+    B.toMatrix'.Nondegenerate (R := R₃) (m := ι) ↔ B.Nondegenerate :=
   Matrix.nondegenerate_toBilin'_iff.symm.trans <| (Matrix.toBilin'_toMatrix' B).symm ▸ Iff.rfl
-#align bilin_form.nondegenerate_to_matrix'_iff BilinForm.nondegenerate_toMatrix'_iff
+#align bilin_form.nondegenerate_to_matrix'_iff LinearMap.BilinForm.nondegenerate_toMatrix'_iff
 
 theorem Nondegenerate.toMatrix' {B : BilinForm R₃ (ι → R₃)} (h : B.Nondegenerate) :
     B.toMatrix'.Nondegenerate :=
   nondegenerate_toMatrix'_iff.mpr h
-#align bilin_form.nondegenerate.to_matrix' BilinForm.Nondegenerate.toMatrix'
+#align bilin_form.nondegenerate.to_matrix' LinearMap.BilinForm.Nondegenerate.toMatrix'
 
 @[simp]
 theorem nondegenerate_toMatrix_iff {B : BilinForm R₃ M₃} (b : Basis ι R₃ M₃) :
-    (toMatrix b B).Nondegenerate ↔ B.Nondegenerate :=
+    (BilinForm.toMatrix b B).Nondegenerate ↔ B.Nondegenerate :=
   (Matrix.nondegenerate_toBilin_iff b).symm.trans <| (Matrix.toBilin_toMatrix b B).symm ▸ Iff.rfl
-#align bilin_form.nondegenerate_to_matrix_iff BilinForm.nondegenerate_toMatrix_iff
+#align bilin_form.nondegenerate_to_matrix_iff LinearMap.BilinForm.nondegenerate_toMatrix_iff
 
 theorem Nondegenerate.toMatrix {B : BilinForm R₃ M₃} (h : B.Nondegenerate) (b : Basis ι R₃ M₃) :
-    (toMatrix b B).Nondegenerate :=
+    (BilinForm.toMatrix b B).Nondegenerate :=
   (nondegenerate_toMatrix_iff b).mpr h
-#align bilin_form.nondegenerate.to_matrix BilinForm.Nondegenerate.toMatrix
+#align bilin_form.nondegenerate.to_matrix LinearMap.BilinForm.Nondegenerate.toMatrix
 
 /-! Some shorthands for combining the above with `Matrix.nondegenerate_of_det_ne_zero` -/
 
 theorem nondegenerate_toBilin'_iff_det_ne_zero {M : Matrix ι ι A} :
     M.toBilin'.Nondegenerate ↔ M.det ≠ 0 := by
   rw [Matrix.nondegenerate_toBilin'_iff, Matrix.nondegenerate_iff_det_ne_zero]
-#align bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero BilinForm.nondegenerate_toBilin'_iff_det_ne_zero
+#align bilin_form.nondegenerate_to_bilin'_iff_det_ne_zero LinearMap.BilinForm.nondegenerate_toBilin'_iff_det_ne_zero
 
 theorem nondegenerate_toBilin'_of_det_ne_zero' (M : Matrix ι ι A) (h : M.det ≠ 0) :
     M.toBilin'.Nondegenerate :=
   nondegenerate_toBilin'_iff_det_ne_zero.mpr h
-#align bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' BilinForm.nondegenerate_toBilin'_of_det_ne_zero'
+#align bilin_form.nondegenerate_to_bilin'_of_det_ne_zero' LinearMap.BilinForm.nondegenerate_toBilin'_of_det_ne_zero'
 
 theorem nondegenerate_iff_det_ne_zero {B : BilinForm A M₃} (b : Basis ι A M₃) :
-    B.Nondegenerate ↔ (toMatrix b B).det ≠ 0 := by
+    B.Nondegenerate ↔ (BilinForm.toMatrix b B).det ≠ 0 := by
   rw [← Matrix.nondegenerate_iff_det_ne_zero, nondegenerate_toMatrix_iff]
-#align bilin_form.nondegenerate_iff_det_ne_zero BilinForm.nondegenerate_iff_det_ne_zero
+#align bilin_form.nondegenerate_iff_det_ne_zero LinearMap.BilinForm.nondegenerate_iff_det_ne_zero
 
-theorem nondegenerate_of_det_ne_zero (b : Basis ι A M₃) (h : (toMatrix b B₃).det ≠ 0) :
+theorem nondegenerate_of_det_ne_zero (b : Basis ι A M₃) (h : (BilinForm.toMatrix b B₃).det ≠ 0) :
     B₃.Nondegenerate :=
   (nondegenerate_iff_det_ne_zero b).mpr h
-#align bilin_form.nondegenerate_of_det_ne_zero BilinForm.nondegenerate_of_det_ne_zero
+#align bilin_form.nondegenerate_of_det_ne_zero LinearMap.BilinForm.nondegenerate_of_det_ne_zero
 
 end Det
 
refactor(LinearAlgebra/BilinearForm/Basic): descope BilinForm to modules over commutative semirings (#11280)

Require the module in the definition of the BilinForm structure to be over a commutative semiring.

This PR is a per-requisite for #11278. It supersedes #10422.

It's been pointed out elsewhere that the current definition over a non-commutative semiring doesn't make mathematical sense: https://github.com/leanprover-community/mathlib4/issues/10553#issuecomment-1944434170

Eventually the non-commutative situation may be considered in a mathematically meaningful way in the context of sesquilinear maps (e.g. something like https://github.com/leanprover-community/mathlib4/pull/9334#pullrequestreview-1880856848).

Co-authored-by: @Vierkantor

Co-authored-by: Christopher Hoskin <christopher.hoskin@gmail.com> Co-authored-by: Christopher Hoskin <christopher.hoskin@overleaf.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -27,8 +27,8 @@ This file defines the conversion between bilinear forms and matrices.
 ## Notations
 
 In this file we use the following type variables:
- - `M`, `M'`, ... are modules over the semiring `R`,
- - `M₁`, `M₁'`, ... are modules over the ring `R₁`,
+ - `M`, `M'`, ... are modules over the commutative semiring `R`,
+ - `M₁`, `M₁'`, ... are modules over the commutative ring `R₁`,
  - `M₂`, `M₂'`, ... are modules over the commutative semiring `R₂`,
  - `M₃`, `M₃'`, ... are modules over the commutative ring `R₃`,
  - `V`, ... is a vector space over the field `K`.
@@ -40,8 +40,8 @@ bilinear form, bilin form, BilinearForm, matrix, basis
 -/
 
 
-variable {R : Type*} {M : Type*} [Semiring R] [AddCommMonoid M] [Module R M]
-variable {R₁ : Type*} {M₁ : Type*} [Ring R₁] [AddCommGroup M₁] [Module R₁ M₁]
+variable {R : Type*} {M : Type*} [CommSemiring R] [AddCommMonoid M] [Module R M]
+variable {R₁ : Type*} {M₁ : Type*} [CommRing R₁] [AddCommGroup M₁] [Module R₁ M₁]
 variable {R₂ : Type*} {M₂ : Type*} [CommSemiring R₂] [AddCommMonoid M₂] [Module R₂ M₂]
 variable {R₃ : Type*} {M₃ : Type*} [CommRing R₃] [AddCommGroup M₃] [Module R₃ M₃]
 variable {V : Type*} {K : Type*} [Field K] [AddCommGroup V] [Module K V]
@@ -74,7 +74,7 @@ theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n
 
 This is an auxiliary definition for the equivalence `Matrix.toBilin'`. -/
 def BilinForm.toMatrixAux (b : n → M₂) : BilinForm R₂ M₂ →ₗ[R₂] Matrix n n R₂ :=
-  (LinearMap.toMatrix₂Aux b b) ∘ₗ BilinForm.toLinHom (R₂ := R₂)
+  (LinearMap.toMatrix₂Aux b b) ∘ₗ BilinForm.toLinHom
 #align bilin_form.to_matrix_aux BilinForm.toMatrixAux
 
 @[simp]
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
@@ -41,15 +41,10 @@ bilinear form, bilin form, BilinearForm, matrix, basis
 
 
 variable {R : Type*} {M : Type*} [Semiring R] [AddCommMonoid M] [Module R M]
-
 variable {R₁ : Type*} {M₁ : Type*} [Ring R₁] [AddCommGroup M₁] [Module R₁ M₁]
-
 variable {R₂ : Type*} {M₂ : Type*} [CommSemiring R₂] [AddCommMonoid M₂] [Module R₂ M₂]
-
 variable {R₃ : Type*} {M₃ : Type*} [CommRing R₃] [AddCommGroup M₃] [Module R₃ M₃]
-
 variable {V : Type*} {K : Type*} [Field K] [AddCommGroup V] [Module K V]
-
 variable {B : BilinForm R M} {B₁ : BilinForm R₁ M₁} {B₂ : BilinForm R₂ M₂}
 
 section Matrix
@@ -295,9 +290,7 @@ theorem BilinForm.toMatrix_toBilin (M : Matrix n n R₂) :
 #align bilin_form.to_matrix_to_bilin BilinForm.toMatrix_toBilin
 
 variable {M₂' : Type*} [AddCommMonoid M₂'] [Module R₂ M₂']
-
 variable (c : Basis o R₂ M₂')
-
 variable [DecidableEq o]
 
 -- Cannot be a `simp` lemma because `b` must be inferred.
@@ -359,9 +352,7 @@ section MatrixAdjoints
 open Matrix
 
 variable {n : Type*} [Fintype n]
-
 variable (b : Basis n R₃ M₃)
-
 variable (J J₃ A A' : Matrix n n R₃)
 
 @[simp]
@@ -432,7 +423,6 @@ section Det
 open Matrix
 
 variable {A : Type*} [CommRing A] [IsDomain A] [Module A M₃] (B₃ : BilinForm A M₃)
-
 variable {ι : Type*} [DecidableEq ι] [Fintype ι]
 
 theorem _root_.Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin {M : Matrix ι ι R₂}
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -84,7 +84,7 @@ def BilinForm.toMatrixAux (b : n → M₂) : BilinForm R₂ M₂ →ₗ[R₂] Ma
 
 @[simp]
 theorem BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (i j : n) :
-    -- porting note: had to hint the base ring even though it should be clear from context...
+    -- Porting note: had to hint the base ring even though it should be clear from context...
     BilinForm.toMatrixAux (R₂ := R₂) b B i j = B (b i) (b j) :=
   LinearMap.toMatrix₂Aux_apply (toLin B) _ _ _ _
 #align bilin_form.to_matrix_aux_apply BilinForm.toMatrixAux_apply
@@ -92,7 +92,7 @@ theorem BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (
 variable [Fintype n] [Fintype o]
 
 theorem toBilin'Aux_toMatrixAux [DecidableEq n] (B₂ : BilinForm R₂ (n → R₂)) :
-    -- porting note: had to hint the base ring even though it should be clear from context...
+    -- Porting note: had to hint the base ring even though it should be clear from context...
     Matrix.toBilin'Aux (BilinForm.toMatrixAux (R₂ := R₂)
       (fun j => stdBasis R₂ (fun _ => R₂) j 1) B₂) = B₂ := by
   rw [BilinForm.toMatrixAux, Matrix.toBilin'Aux, coe_comp, Function.comp_apply,
@@ -118,7 +118,7 @@ def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R
 
 @[simp]
 theorem BilinForm.toMatrixAux_stdBasis (B : BilinForm R₂ (n → R₂)) :
-    -- porting note: had to hint the base ring even though it should be clear from context...
+    -- Porting note: had to hint the base ring even though it should be clear from context...
     BilinForm.toMatrixAux (R₂ := R₂) (fun j => stdBasis R₂ (fun _ => R₂) j 1) B =
       BilinForm.toMatrix' B :=
   rfl
chore: Matrix.mulVec and Matrix.vecMul get infix notation (#10297)

Zulip discussion: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Notation.20for.20mul_vec.20and.20vec_mul

Co-authored-by: Martin Dvorak <mdvorak@ista.ac.at>

Diff
@@ -139,7 +139,7 @@ theorem Matrix.toBilin'_apply (M : Matrix n n R₂) (x y : n → R₂) :
 #align matrix.to_bilin'_apply Matrix.toBilin'_apply
 
 theorem Matrix.toBilin'_apply' (M : Matrix n n R₂) (v w : n → R₂) :
-    Matrix.toBilin' M v w = Matrix.dotProduct v (M.mulVec w) := Matrix.toLinearMap₂'_apply' _ _ _
+    Matrix.toBilin' M v w = Matrix.dotProduct v (M *ᵥ w) := Matrix.toLinearMap₂'_apply' _ _ _
 #align matrix.to_bilin'_apply' Matrix.toBilin'_apply'
 
 @[simp]
chore: tidy various files (#9728)
Diff
@@ -79,7 +79,7 @@ theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n
 
 This is an auxiliary definition for the equivalence `Matrix.toBilin'`. -/
 def BilinForm.toMatrixAux (b : n → M₂) : BilinForm R₂ M₂ →ₗ[R₂] Matrix n n R₂ :=
-  (LinearMap.toMatrix₂Aux b b) ∘ₗ  BilinForm.toLinHom (R₂ := R₂)
+  (LinearMap.toMatrix₂Aux b b) ∘ₗ BilinForm.toLinHom (R₂ := R₂)
 #align bilin_form.to_matrix_aux BilinForm.toMatrixAux
 
 @[simp]
@@ -97,7 +97,8 @@ theorem toBilin'Aux_toMatrixAux [DecidableEq n] (B₂ : BilinForm R₂ (n → R
       (fun j => stdBasis R₂ (fun _ => R₂) j 1) B₂) = B₂ := by
   rw [BilinForm.toMatrixAux, Matrix.toBilin'Aux, coe_comp, Function.comp_apply,
     toLinearMap₂'Aux_toMatrix₂Aux]
-  exact rfl
+  ext x y
+  simp only [toBilin_apply, BilinForm.toLin'_apply]
 #align to_bilin'_aux_to_matrix_aux toBilin'Aux_toMatrixAux
 
 section ToMatrix'
@@ -188,7 +189,7 @@ theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o →
 
 theorem BilinForm.toMatrix'_compLeft (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
     BilinForm.toMatrix' (B.compLeft f) = (LinearMap.toMatrix' f)ᵀ * BilinForm.toMatrix' B :=
-   LinearMap.toMatrix₂'_comp (toLin B) _
+  LinearMap.toMatrix₂'_comp (toLin B) _
 #align bilin_form.to_matrix'_comp_left BilinForm.toMatrix'_compLeft
 
 theorem BilinForm.toMatrix'_compRight (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
@@ -234,7 +235,7 @@ variable [DecidableEq n] (b : Basis n R₂ M₂)
 /-- `BilinForm.toMatrix b` is the equivalence between `R`-bilinear forms on `M` and
 `n`-by-`n` matrices with entries in `R`, if `b` is an `R`-basis for `M`. -/
 noncomputable def BilinForm.toMatrix : BilinForm R₂ M₂ ≃ₗ[R₂] Matrix n n R₂ :=
-   BilinForm.toLin ≪≫ₗ (LinearMap.toMatrix₂ b b)
+  BilinForm.toLin ≪≫ₗ (LinearMap.toMatrix₂ b b)
 #align bilin_form.to_matrix BilinForm.toMatrix
 
 /-- `BilinForm.toMatrix b` is the equivalence between `R`-bilinear forms on `M` and
@@ -278,7 +279,7 @@ theorem Matrix.toBilin_basisFun : Matrix.toBilin (Pi.basisFun R₂ n) = Matrix.t
 
 theorem BilinForm.toMatrix_basisFun :
     BilinForm.toMatrix (Pi.basisFun R₂ n) = BilinForm.toMatrix' := by
- rw [BilinForm.toMatrix, BilinForm.toMatrix', LinearMap.toMatrix₂_basisFun]
+  rw [BilinForm.toMatrix, BilinForm.toMatrix', LinearMap.toMatrix₂_basisFun]
 #align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFun
 
 @[simp]
@@ -340,12 +341,13 @@ theorem BilinForm.toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
 
 theorem Matrix.toBilin_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
     (Matrix.toBilin b M).comp (toLin c b P) (toLin c b Q) = Matrix.toBilin c (Pᵀ * M * Q) := by
+  ext x y
   rw [Matrix.toBilin,
     BilinForm.toMatrix, Matrix.toBilin, BilinForm.toMatrix, LinearEquiv.trans_symm,
     LinearEquiv.trans_symm, toMatrix₂_symm, BilinForm.toLin_symm, LinearEquiv.trans_apply,
     toMatrix₂_symm, BilinForm.toLin_symm, LinearEquiv.trans_apply,
     ← Matrix.toLinearMap₂_compl₁₂ b b c c]
-  rfl
+  simp
 #align matrix.to_bilin_comp Matrix.toBilin_comp
 
 end ToMatrix
refactor(LinearAlgebra/Matrix/BilinearForm): Derive BilinearForm results from SesquilinearForm (#9485)

Give definitions in LinearAlgebra/Matrix/BilinearForm in terms of the equivalent definitions in LinearAlgebra/Matrix/SesquilinearForm and derive the BilinearForm results as effectively special cases of the equivalent results in SesquilinearForm. This reduces the length of LinearAlgebra/Matrix/BilinearForm by over 100 lines.

The aim is to:

  • Clarify how results in BilinearForm relate to results in SesquilinearForm
  • Reduce duplication of argument between the two files
  • Validate that the results in SesquilinearForm are sufficiently general to provide the results in BilinearForm in their existing form - in fact, some loosening of the hypothesis in SesquilinearForm is required. Further loosening was already applied in #9475

Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com> Co-authored-by: Christopher Hoskin <christopher.hoskin@overleaf.com>

Diff
@@ -65,52 +65,28 @@ open Matrix
 /-- The map from `Matrix n n R` to bilinear forms on `n → R`.
 
 This is an auxiliary definition for the equivalence `Matrix.toBilin'`. -/
-def Matrix.toBilin'Aux [Fintype n] (M : Matrix n n R₂) : BilinForm R₂ (n → R₂) where
-  bilin v w := ∑ i, ∑ j, v i * M i j * w j
-  bilin_add_left x y z := by simp only [Pi.add_apply, add_mul, sum_add_distrib]
-  bilin_smul_left a x y := by simp only [Pi.smul_apply, smul_eq_mul, mul_assoc, mul_sum]
-  bilin_add_right x y z := by simp only [Pi.add_apply, mul_add, sum_add_distrib]
-  bilin_smul_right a x y := by
-    simp only [Pi.smul_apply, smul_eq_mul, mul_assoc, mul_left_comm, mul_sum]
+def Matrix.toBilin'Aux [Fintype n] (M : Matrix n n R₂) : BilinForm R₂ (n → R₂) :=
+  LinearMap.toBilin (Matrix.toLinearMap₂'Aux _ _ M)
 #align matrix.to_bilin'_aux Matrix.toBilin'Aux
 
 theorem Matrix.toBilin'Aux_stdBasis [Fintype n] [DecidableEq n] (M : Matrix n n R₂) (i j : n) :
     M.toBilin'Aux (LinearMap.stdBasis R₂ (fun _ => R₂) i 1)
-      (LinearMap.stdBasis R₂ (fun _ => R₂) j 1) = M i j := by
-  rw [Matrix.toBilin'Aux]
-  dsimp only -- Porting note: had to add `dsimp only` to get rid of the projections
-  rw [sum_eq_single i, sum_eq_single j]
-  · simp only [stdBasis_same, stdBasis_same, one_mul, mul_one]
-  · rintro j' - hj'
-    apply mul_eq_zero_of_right
-    exact stdBasis_ne R₂ (fun _ => R₂) _ _ hj' 1
-  · intros
-    have := Finset.mem_univ j
-    contradiction
-  · rintro i' - hi'
-    refine' Finset.sum_eq_zero fun j _ => _
-    apply mul_eq_zero_of_left
-    apply mul_eq_zero_of_left
-    exact stdBasis_ne R₂ (fun _ => R₂) _ _ hi' 1
-  · intros
-    have := Finset.mem_univ i
-    contradiction
+      (LinearMap.stdBasis R₂ (fun _ => R₂) j 1) = M i j :=
+  Matrix.toLinearMap₂'Aux_stdBasis _ _ _ _ _
 #align matrix.to_bilin'_aux_std_basis Matrix.toBilin'Aux_stdBasis
 
 /-- The linear map from bilinear forms to `Matrix n n R` given an `n`-indexed basis.
 
 This is an auxiliary definition for the equivalence `Matrix.toBilin'`. -/
-def BilinForm.toMatrixAux (b : n → M₂) : BilinForm R₂ M₂ →ₗ[R₂] Matrix n n R₂ where
-  toFun B := of fun i j => B (b i) (b j)
-  map_add' _ _ := rfl
-  map_smul' _ _ := rfl
+def BilinForm.toMatrixAux (b : n → M₂) : BilinForm R₂ M₂ →ₗ[R₂] Matrix n n R₂ :=
+  (LinearMap.toMatrix₂Aux b b) ∘ₗ  BilinForm.toLinHom (R₂ := R₂)
 #align bilin_form.to_matrix_aux BilinForm.toMatrixAux
 
 @[simp]
 theorem BilinForm.toMatrixAux_apply (B : BilinForm R₂ M₂) (b : n → M₂) (i j : n) :
     -- porting note: had to hint the base ring even though it should be clear from context...
     BilinForm.toMatrixAux (R₂ := R₂) b B i j = B (b i) (b j) :=
-  rfl
+  LinearMap.toMatrix₂Aux_apply (toLin B) _ _ _ _
 #align bilin_form.to_matrix_aux_apply BilinForm.toMatrixAux_apply
 
 variable [Fintype n] [Fintype o]
@@ -119,9 +95,9 @@ theorem toBilin'Aux_toMatrixAux [DecidableEq n] (B₂ : BilinForm R₂ (n → R
     -- porting note: had to hint the base ring even though it should be clear from context...
     Matrix.toBilin'Aux (BilinForm.toMatrixAux (R₂ := R₂)
       (fun j => stdBasis R₂ (fun _ => R₂) j 1) B₂) = B₂ := by
-  refine' ext_basis (Pi.basisFun R₂ n) fun i j => _
-  rw [Pi.basisFun_apply, Pi.basisFun_apply, Matrix.toBilin'Aux_stdBasis,
-    BilinForm.toMatrixAux_apply]
+  rw [BilinForm.toMatrixAux, Matrix.toBilin'Aux, coe_comp, Function.comp_apply,
+    toLinearMap₂'Aux_toMatrix₂Aux]
+  exact rfl
 #align to_bilin'_aux_to_matrix_aux toBilin'Aux_toMatrixAux
 
 section ToMatrix'
@@ -136,14 +112,7 @@ variable [DecidableEq n] [DecidableEq o]
 
 /-- The linear equivalence between bilinear forms on `n → R` and `n × n` matrices -/
 def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R₂ :=
-  { BilinForm.toMatrixAux fun j =>
-      stdBasis R₂ (fun _ => R₂) j
-        1 with
-    invFun := Matrix.toBilin'Aux
-    left_inv := fun B ↦ by convert toBilin'Aux_toMatrixAux B
-    right_inv := fun M => by
-      ext i j
-      simp only [toFun_eq_coe, BilinForm.toMatrixAux_apply, Matrix.toBilin'Aux_stdBasis] }
+  BilinForm.toLin ≪≫ₗ  LinearMap.toMatrix₂'
 #align bilin_form.to_matrix' BilinForm.toMatrix'
 
 @[simp]
@@ -165,25 +134,18 @@ theorem Matrix.toBilin'Aux_eq (M : Matrix n n R₂) : Matrix.toBilin'Aux M = Mat
 #align matrix.to_bilin'_aux_eq Matrix.toBilin'Aux_eq
 
 theorem Matrix.toBilin'_apply (M : Matrix n n R₂) (x y : n → R₂) :
-    Matrix.toBilin' M x y = ∑ i, ∑ j, x i * M i j * y j :=
-  rfl
+    Matrix.toBilin' M x y = ∑ i, ∑ j, x i * M i j * y j := Matrix.toLinearMap₂'_apply _ _ _
 #align matrix.to_bilin'_apply Matrix.toBilin'_apply
 
 theorem Matrix.toBilin'_apply' (M : Matrix n n R₂) (v w : n → R₂) :
-    Matrix.toBilin' M v w = Matrix.dotProduct v (M.mulVec w) := by
-  simp_rw [Matrix.toBilin'_apply, Matrix.dotProduct, Matrix.mulVec, Matrix.dotProduct]
-  refine' Finset.sum_congr rfl fun _ _ => _
-  rw [Finset.mul_sum]
-  refine' Finset.sum_congr rfl fun _ _ => _
-  rw [← mul_assoc]
+    Matrix.toBilin' M v w = Matrix.dotProduct v (M.mulVec w) := Matrix.toLinearMap₂'_apply' _ _ _
 #align matrix.to_bilin'_apply' Matrix.toBilin'_apply'
 
 @[simp]
 theorem Matrix.toBilin'_stdBasis (M : Matrix n n R₂) (i j : n) :
     Matrix.toBilin' M
       (LinearMap.stdBasis R₂ (fun _ => R₂) i 1)
-      (LinearMap.stdBasis R₂ (fun _ => R₂) j 1) = M i j :=
-  Matrix.toBilin'Aux_stdBasis M i j
+      (LinearMap.stdBasis R₂ (fun _ => R₂) j 1) = M i j := Matrix.toLinearMap₂'_stdBasis _ _ _
 #align matrix.to_bilin'_std_basis Matrix.toBilin'_stdBasis
 
 @[simp]
@@ -207,64 +169,47 @@ theorem Matrix.toBilin'_toMatrix' (B : BilinForm R₂ (n → R₂)) :
 @[simp]
 theorem BilinForm.toMatrix'_toBilin' (M : Matrix n n R₂) :
     BilinForm.toMatrix' (Matrix.toBilin' M) = M :=
-  BilinForm.toMatrix'.apply_symm_apply M
+  LinearMap.toMatrix₂'.apply_symm_apply M
 #align bilin_form.to_matrix'_to_bilin' BilinForm.toMatrix'_toBilin'
 
 @[simp]
 theorem BilinForm.toMatrix'_apply (B : BilinForm R₂ (n → R₂)) (i j : n) :
     BilinForm.toMatrix' B i j = B (stdBasis R₂ (fun _ => R₂) i 1) (stdBasis R₂ (fun _ => R₂) j 1) :=
-  rfl
+  LinearMap.toMatrix₂'_apply _ _ _
 #align bilin_form.to_matrix'_apply BilinForm.toMatrix'_apply
 
 -- Porting note: dot notation for bundled maps doesn't work in the rest of this section
 @[simp]
 theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o → R₂) →ₗ[R₂] n → R₂) :
     BilinForm.toMatrix' (B.comp l r) =
-      (LinearMap.toMatrix' l)ᵀ * BilinForm.toMatrix' B * LinearMap.toMatrix' r := by
-  ext i j
-  simp only [BilinForm.toMatrix'_apply, BilinForm.comp_apply, transpose_apply, Matrix.mul_apply,
-    LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
-  rw [sum_comm]
-  conv_lhs => rw [← BilinForm.sum_repr_mul_repr_mul (Pi.basisFun R₂ n) (l _) (r _)]
-  rw [Finsupp.sum_fintype]
-  · apply sum_congr rfl
-    rintro i' -
-    rw [Finsupp.sum_fintype]
-    · apply sum_congr rfl
-      rintro j' -
-      simp only [smul_eq_mul, Pi.basisFun_repr, mul_assoc, mul_comm, mul_left_comm,
-        Pi.basisFun_apply, of_apply]
-    · intros
-      simp only [zero_smul, smul_zero]
-  · intros
-    simp only [zero_smul, Finsupp.sum_zero]
+      (LinearMap.toMatrix' l)ᵀ * BilinForm.toMatrix' B * LinearMap.toMatrix' r :=
+  LinearMap.toMatrix₂'_compl₁₂ (toLin B) _ _
 #align bilin_form.to_matrix'_comp BilinForm.toMatrix'_comp
 
 theorem BilinForm.toMatrix'_compLeft (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
-    BilinForm.toMatrix' (B.compLeft f) = (LinearMap.toMatrix' f)ᵀ * BilinForm.toMatrix' B := by
-  simp only [BilinForm.compLeft, BilinForm.toMatrix'_comp, toMatrix'_id, Matrix.mul_one]
+    BilinForm.toMatrix' (B.compLeft f) = (LinearMap.toMatrix' f)ᵀ * BilinForm.toMatrix' B :=
+   LinearMap.toMatrix₂'_comp (toLin B) _
 #align bilin_form.to_matrix'_comp_left BilinForm.toMatrix'_compLeft
 
 theorem BilinForm.toMatrix'_compRight (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
-    BilinForm.toMatrix' (B.compRight f) = BilinForm.toMatrix' B * LinearMap.toMatrix' f := by
-  simp only [BilinForm.compRight, BilinForm.toMatrix'_comp, toMatrix'_id, transpose_one,
-    Matrix.one_mul]
+    BilinForm.toMatrix' (B.compRight f) = BilinForm.toMatrix' B * LinearMap.toMatrix' f :=
+  LinearMap.toMatrix₂'_compl₂ (toLin B) _
 #align bilin_form.to_matrix'_comp_right BilinForm.toMatrix'_compRight
 
 theorem BilinForm.mul_toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix o n R₂)
     (N : Matrix n o R₂) : M * BilinForm.toMatrix' B * N =
-      BilinForm.toMatrix' (B.comp (Matrix.toLin' Mᵀ) (Matrix.toLin' N)) := by
-  simp only [B.toMatrix'_comp, transpose_transpose, toMatrix'_toLin']
+      BilinForm.toMatrix' (B.comp (Matrix.toLin' Mᵀ) (Matrix.toLin' N)) :=
+  LinearMap.mul_toMatrix₂'_mul (toLin B) _ _
 #align bilin_form.mul_to_matrix'_mul BilinForm.mul_toMatrix'_mul
 
 theorem BilinForm.mul_toMatrix' (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
-    M * BilinForm.toMatrix' B = BilinForm.toMatrix' (B.compLeft (Matrix.toLin' Mᵀ)) := by
-  simp only [toMatrix'_compLeft, transpose_transpose, toMatrix'_toLin']
+    M * BilinForm.toMatrix' B = BilinForm.toMatrix' (B.compLeft (Matrix.toLin' Mᵀ)) :=
+  LinearMap.mul_toMatrix' (toLin B) _
 #align bilin_form.mul_to_matrix' BilinForm.mul_toMatrix'
 
 theorem BilinForm.toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
-    BilinForm.toMatrix' B * M = BilinForm.toMatrix' (B.compRight (Matrix.toLin' M)) := by
-  simp only [toMatrix'_compRight, toMatrix'_toLin']
+    BilinForm.toMatrix' B * M = BilinForm.toMatrix' (B.compRight (Matrix.toLin' M)) :=
+  LinearMap.toMatrix₂'_mul (toLin B) _
 #align bilin_form.to_matrix'_mul BilinForm.toMatrix'_mul
 
 theorem Matrix.toBilin'_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
@@ -289,7 +234,7 @@ variable [DecidableEq n] (b : Basis n R₂ M₂)
 /-- `BilinForm.toMatrix b` is the equivalence between `R`-bilinear forms on `M` and
 `n`-by-`n` matrices with entries in `R`, if `b` is an `R`-basis for `M`. -/
 noncomputable def BilinForm.toMatrix : BilinForm R₂ M₂ ≃ₗ[R₂] Matrix n n R₂ :=
-  (BilinForm.congr b.equivFun).trans BilinForm.toMatrix'
+   BilinForm.toLin ≪≫ₗ (LinearMap.toMatrix₂ b b)
 #align bilin_form.to_matrix BilinForm.toMatrix
 
 /-- `BilinForm.toMatrix b` is the equivalence between `R`-bilinear forms on `M` and
@@ -300,23 +245,20 @@ noncomputable def Matrix.toBilin : Matrix n n R₂ ≃ₗ[R₂] BilinForm R₂ M
 
 @[simp]
 theorem BilinForm.toMatrix_apply (B : BilinForm R₂ M₂) (i j : n) :
-    BilinForm.toMatrix b B i j = B (b i) (b j) := by
-  rw [BilinForm.toMatrix, LinearEquiv.trans_apply, BilinForm.toMatrix'_apply, congr_apply,
-    b.equivFun_symm_stdBasis, b.equivFun_symm_stdBasis]
+    BilinForm.toMatrix b B i j = B (b i) (b j) :=
+  LinearMap.toMatrix₂_apply _ _ (toLin B) _ _
 #align bilin_form.to_matrix_apply BilinForm.toMatrix_apply
 
 @[simp]
 theorem Matrix.toBilin_apply (M : Matrix n n R₂) (x y : M₂) :
-    Matrix.toBilin b M x y = ∑ i, ∑ j, b.repr x i * M i j * b.repr y j := by
-  rw [Matrix.toBilin, BilinForm.toMatrix, LinearEquiv.symm_trans_apply, ← Matrix.toBilin']
-  simp only [congr_symm, congr_apply, LinearEquiv.symm_symm, Matrix.toBilin'_apply,
-    Basis.equivFun_apply]
+    Matrix.toBilin b M x y = ∑ i, ∑ j, b.repr x i * M i j * b.repr y j :=
+  Matrix.toLinearMap₂_apply _ _ _ _ _
 #align matrix.to_bilin_apply Matrix.toBilin_apply
 
 -- Not a `simp` lemma since `BilinForm.toMatrix` needs an extra argument
 theorem BilinearForm.toMatrixAux_eq (B : BilinForm R₂ M₂) :
     BilinForm.toMatrixAux (R₂ := R₂) b B = BilinForm.toMatrix b B :=
-  ext fun i j => by rw [BilinForm.toMatrix_apply, BilinForm.toMatrixAux_apply]
+  LinearMap.toMatrix₂Aux_eq _ _ (toLin B)
 #align bilinear_form.to_matrix_aux_eq BilinearForm.toMatrixAux_eq
 
 @[simp]
@@ -336,8 +278,7 @@ theorem Matrix.toBilin_basisFun : Matrix.toBilin (Pi.basisFun R₂ n) = Matrix.t
 
 theorem BilinForm.toMatrix_basisFun :
     BilinForm.toMatrix (Pi.basisFun R₂ n) = BilinForm.toMatrix' := by
-  ext B
-  rw [BilinForm.toMatrix_apply, BilinForm.toMatrix'_apply, Pi.basisFun_apply, Pi.basisFun_apply]
+ rw [BilinForm.toMatrix, BilinForm.toMatrix', LinearMap.toMatrix₂_basisFun]
 #align bilin_form.to_matrix_basis_fun BilinForm.toMatrix_basisFun
 
 @[simp]
@@ -361,63 +302,50 @@ variable [DecidableEq o]
 -- Cannot be a `simp` lemma because `b` must be inferred.
 theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R₂] M₂) :
     BilinForm.toMatrix c (B.comp l r) =
-      (LinearMap.toMatrix c b l)ᵀ * BilinForm.toMatrix b B * LinearMap.toMatrix c b r := by
-  ext i j
-  simp only [BilinForm.toMatrix_apply, BilinForm.comp_apply, transpose_apply, Matrix.mul_apply,
-    LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
-  rw [sum_comm]
-  conv_lhs => rw [← BilinForm.sum_repr_mul_repr_mul b]
-  rw [Finsupp.sum_fintype]
-  · apply sum_congr rfl
-    rintro i' -
-    rw [Finsupp.sum_fintype]
-    · apply sum_congr rfl
-      rintro j' -
-      simp only [smul_eq_mul, LinearMap.toMatrix_apply, Basis.equivFun_apply, mul_assoc, mul_comm,
-        mul_left_comm]
-    · intros
-      simp only [zero_smul, smul_zero]
-  · intros
-    simp only [zero_smul, Finsupp.sum_zero]
+      (LinearMap.toMatrix c b l)ᵀ * BilinForm.toMatrix b B * LinearMap.toMatrix c b r :=
+  LinearMap.toMatrix₂_compl₁₂ _ _ _ _ (toLin B) _ _
 #align bilin_form.to_matrix_comp BilinForm.toMatrix_comp
 
 theorem BilinForm.toMatrix_compLeft (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
-    BilinForm.toMatrix b (B.compLeft f) = (LinearMap.toMatrix b b f)ᵀ * BilinForm.toMatrix b B := by
-  simp only [compLeft, BilinForm.toMatrix_comp b b, toMatrix_id, Matrix.mul_one]
+    BilinForm.toMatrix b (B.compLeft f) = (LinearMap.toMatrix b b f)ᵀ * BilinForm.toMatrix b B :=
+  LinearMap.toMatrix₂_comp _ _ _ (toLin B) _
 #align bilin_form.to_matrix_comp_left BilinForm.toMatrix_compLeft
 
 theorem BilinForm.toMatrix_compRight (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
-    BilinForm.toMatrix b (B.compRight f) = BilinForm.toMatrix b B * LinearMap.toMatrix b b f := by
-  simp only [BilinForm.compRight, BilinForm.toMatrix_comp b b, toMatrix_id, transpose_one,
-    Matrix.one_mul]
+    BilinForm.toMatrix b (B.compRight f) = BilinForm.toMatrix b B * LinearMap.toMatrix b b f :=
+  LinearMap.toMatrix₂_compl₂ _ _ _ (toLin B) _
 #align bilin_form.to_matrix_comp_right BilinForm.toMatrix_compRight
 
 @[simp]
 theorem BilinForm.toMatrix_mul_basis_toMatrix (c : Basis o R₂ M₂) (B : BilinForm R₂ M₂) :
-    (b.toMatrix c)ᵀ * BilinForm.toMatrix b B * b.toMatrix c = BilinForm.toMatrix c B := by
-  rw [← LinearMap.toMatrix_id_eq_basis_toMatrix, ← BilinForm.toMatrix_comp, BilinForm.comp_id_id]
+    (b.toMatrix c)ᵀ * BilinForm.toMatrix b B * b.toMatrix c = BilinForm.toMatrix c B :=
+  LinearMap.toMatrix₂_mul_basis_toMatrix _ _ _  _ (toLin B)
 #align bilin_form.to_matrix_mul_basis_to_matrix BilinForm.toMatrix_mul_basis_toMatrix
 
 theorem BilinForm.mul_toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix o n R₂) (N : Matrix n o R₂) :
     M * BilinForm.toMatrix b B * N =
       BilinForm.toMatrix c (B.comp (Matrix.toLin c b Mᵀ) (Matrix.toLin c b N)) :=
-  by simp only [B.toMatrix_comp b c, toMatrix_toLin, transpose_transpose]
+  LinearMap.mul_toMatrix₂_mul _ _ _ _ (toLin B) _ _
 #align bilin_form.mul_to_matrix_mul BilinForm.mul_toMatrix_mul
 
 theorem BilinForm.mul_toMatrix (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
-    M * BilinForm.toMatrix b B = BilinForm.toMatrix b (B.compLeft (Matrix.toLin b b Mᵀ)) := by
-  rw [B.toMatrix_compLeft b, toMatrix_toLin, transpose_transpose]
+    M * BilinForm.toMatrix b B = BilinForm.toMatrix b (B.compLeft (Matrix.toLin b b Mᵀ)) :=
+  LinearMap.mul_toMatrix₂ _ _ _ (toLin B) _
 #align bilin_form.mul_to_matrix BilinForm.mul_toMatrix
 
 theorem BilinForm.toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
-    BilinForm.toMatrix b B * M = BilinForm.toMatrix b (B.compRight (Matrix.toLin b b M)) := by
-  rw [B.toMatrix_compRight b, toMatrix_toLin]
+    BilinForm.toMatrix b B * M = BilinForm.toMatrix b (B.compRight (Matrix.toLin b b M)) :=
+  LinearMap.toMatrix₂_mul _ _ _ (toLin B) _
 #align bilin_form.to_matrix_mul BilinForm.toMatrix_mul
 
 theorem Matrix.toBilin_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
-    (Matrix.toBilin b M).comp (toLin c b P) (toLin c b Q) = Matrix.toBilin c (Pᵀ * M * Q) :=
-  (BilinForm.toMatrix c).injective
-    (by simp only [BilinForm.toMatrix_comp b c, BilinForm.toMatrix_toBilin, toMatrix_toLin])
+    (Matrix.toBilin b M).comp (toLin c b P) (toLin c b Q) = Matrix.toBilin c (Pᵀ * M * Q) := by
+  rw [Matrix.toBilin,
+    BilinForm.toMatrix, Matrix.toBilin, BilinForm.toMatrix, LinearEquiv.trans_symm,
+    LinearEquiv.trans_symm, toMatrix₂_symm, BilinForm.toLin_symm, LinearEquiv.trans_apply,
+    toMatrix₂_symm, BilinForm.toLin_symm, LinearEquiv.trans_apply,
+    ← Matrix.toLinearMap₂_compl₁₂ b b c c]
+  rfl
 #align matrix.to_bilin_comp Matrix.toBilin_comp
 
 end ToMatrix
@@ -438,57 +366,22 @@ variable (J J₃ A A' : Matrix n n R₃)
 theorem isAdjointPair_toBilin' [DecidableEq n] :
     BilinForm.IsAdjointPair (Matrix.toBilin' J) (Matrix.toBilin' J₃) (Matrix.toLin' A)
         (Matrix.toLin' A') ↔
-      Matrix.IsAdjointPair J J₃ A A' := by
-  rw [BilinForm.isAdjointPair_iff_compLeft_eq_compRight]
-  have h :
-    ∀ B B' : BilinForm R₃ (n → R₃), B = B' ↔ BilinForm.toMatrix' B = BilinForm.toMatrix' B' := by
-    intro B B'
-    constructor <;> intro h
-    · rw [h]
-    · exact BilinForm.toMatrix'.injective h
-  rw [h, BilinForm.toMatrix'_compLeft, BilinForm.toMatrix'_compRight, LinearMap.toMatrix'_toLin',
-    LinearMap.toMatrix'_toLin', BilinForm.toMatrix'_toBilin', BilinForm.toMatrix'_toBilin']
-  rfl
+      Matrix.IsAdjointPair J J₃ A A' :=
+  isAdjointPair_toLinearMap₂' _ _ _ _
 #align is_adjoint_pair_to_bilin' isAdjointPair_toBilin'
 
 @[simp]
 theorem isAdjointPair_toBilin [DecidableEq n] :
     BilinForm.IsAdjointPair (Matrix.toBilin b J) (Matrix.toBilin b J₃) (Matrix.toLin b b A)
         (Matrix.toLin b b A') ↔
-      Matrix.IsAdjointPair J J₃ A A' := by
-  rw [BilinForm.isAdjointPair_iff_compLeft_eq_compRight]
-  have h : ∀ B B' : BilinForm R₃ M₃, B = B' ↔ BilinForm.toMatrix b B = BilinForm.toMatrix b B' := by
-    intro B B'
-    constructor <;> intro h
-    · rw [h]
-    · exact (BilinForm.toMatrix b).injective h
-  rw [h, BilinForm.toMatrix_compLeft, BilinForm.toMatrix_compRight, LinearMap.toMatrix_toLin,
-    LinearMap.toMatrix_toLin, BilinForm.toMatrix_toBilin, BilinForm.toMatrix_toBilin]
-  rfl
+      Matrix.IsAdjointPair J J₃ A A' :=
+  isAdjointPair_toLinearMap₂ _ _ _ _ _ _
 #align is_adjoint_pair_to_bilin isAdjointPair_toBilin
 
 theorem Matrix.isAdjointPair_equiv' [DecidableEq n] (P : Matrix n n R₃) (h : IsUnit P) :
     (Pᵀ * J * P).IsAdjointPair (Pᵀ * J * P) A A' ↔
-      J.IsAdjointPair J (P * A * P⁻¹) (P * A' * P⁻¹) := by
-  have h' : IsUnit P.det := P.isUnit_iff_isUnit_det.mp h
-  -- Porting note: the original proof used a complicated conv and timed out
-  let u := P.nonsingInvUnit h'
-  have coe_u : (u : Matrix n n R₃) = P := rfl
-  have coe_u_inv : (↑u⁻¹ : Matrix n n R₃) = P⁻¹ := rfl
-  let v := Pᵀ.nonsingInvUnit (P.isUnit_det_transpose h')
-  have coe_v : (v : Matrix n n R₃) = Pᵀ := rfl
-  have coe_v_inv : (↑v⁻¹ : Matrix n n R₃) = P⁻¹ᵀ := P.transpose_nonsing_inv.symm
-  set x := Aᵀ * Pᵀ * J with x_def
-  set y := J * P * A' with y_def
-  simp only [Matrix.IsAdjointPair]
-  calc (Aᵀ * (Pᵀ * J * P) = Pᵀ * J * P * A')
-         ↔ (x * ↑u = ↑v * y) := ?_
-       _ ↔ (↑v⁻¹ * x = y * ↑u⁻¹) := ?_
-       _ ↔ ((P * A * P⁻¹)ᵀ * J = J * (P * A' * P⁻¹)) := ?_
-  · simp only [mul_assoc, x_def, y_def, coe_u, coe_v]
-  · rw [Units.eq_mul_inv_iff_mul_eq, mul_assoc ↑v⁻¹ x, Units.inv_mul_eq_iff_eq_mul]
-  · rw [x_def, y_def, coe_u_inv, coe_v_inv]
-    simp only [Matrix.mul_assoc, Matrix.transpose_mul]
+      J.IsAdjointPair J (P * A * P⁻¹) (P * A' * P⁻¹) :=
+  Matrix.isAdjointPair_equiv _ _ _ _ h
 #align matrix.is_adjoint_pair_equiv' Matrix.isAdjointPair_equiv'
 
 variable [DecidableEq n]
chore: Split LinearAlgebra.BilinearForm. (#8879)

Also renamed BilinearForm.restrictSymm to BilinearForm.IsSymm.restrict.

Diff
@@ -7,7 +7,7 @@ import Mathlib.LinearAlgebra.Matrix.Basis
 import Mathlib.LinearAlgebra.Matrix.Nondegenerate
 import Mathlib.LinearAlgebra.Matrix.NonsingularInverse
 import Mathlib.LinearAlgebra.Matrix.ToLinearEquiv
-import Mathlib.LinearAlgebra.BilinearForm
+import Mathlib.LinearAlgebra.BilinearForm.Properties
 import Mathlib.LinearAlgebra.Matrix.SesquilinearForm
 
 #align_import linear_algebra.matrix.bilinear_form from "leanprover-community/mathlib"@"075b3f7d19b9da85a0b54b3e33055a74fc388dec"
doc: convert comments to docstrings and doc-comments (#7951)
Diff
@@ -568,7 +568,8 @@ theorem _root_.Matrix.nondegenerate_toBilin_iff {M : Matrix ι ι R₃} (b : Bas
   rw [← Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin, Matrix.nondegenerate_toBilin'_iff]
 #align matrix.nondegenerate_to_bilin_iff Matrix.nondegenerate_toBilin_iff
 
--- Lemmas transferring nondegeneracy between a bilinear form and its associated matrix
+/-! Lemmas transferring nondegeneracy between a bilinear form and its associated matrix -/
+
 @[simp]
 theorem nondegenerate_toMatrix'_iff {B : BilinForm R₃ (ι → R₃)} :
     B.toMatrix'.Nondegenerate ↔ B.Nondegenerate :=
@@ -591,7 +592,8 @@ theorem Nondegenerate.toMatrix {B : BilinForm R₃ M₃} (h : B.Nondegenerate) (
   (nondegenerate_toMatrix_iff b).mpr h
 #align bilin_form.nondegenerate.to_matrix BilinForm.Nondegenerate.toMatrix
 
--- Some shorthands for combining the above with `Matrix.nondegenerate_of_det_ne_zero`
+/-! Some shorthands for combining the above with `Matrix.nondegenerate_of_det_ne_zero` -/
+
 theorem nondegenerate_toBilin'_iff_det_ne_zero {M : Matrix ι ι A} :
     M.toBilin'.Nondegenerate ↔ M.det ≠ 0 := by
   rw [Matrix.nondegenerate_toBilin'_iff, Matrix.nondegenerate_iff_det_ne_zero]
refactor(Data/Matrix): Eliminate notation in favor of HMul (#6487)

The main difficulty here is that * has a slightly difference precedence to . notably around smul and neg.

The other annoyance is that ↑U ⬝ A ⬝ ↑U⁻¹ : Matrix m m 𝔸 now has to be written U.val * A * (U⁻¹).val in order to typecheck.

A downside of this change to consider: if you have a goal of A * (B * C) = (A * B) * C, mul_assoc now gives the illusion of matching, when in fact Matrix.mul_assoc is needed. Previously the distinct symbol made it easy to avoid this mistake.

On the flipside, there is now no need to rewrite by Matrix.mul_eq_mul all the time (indeed, the lemma is now removed).

Diff
@@ -220,7 +220,7 @@ theorem BilinForm.toMatrix'_apply (B : BilinForm R₂ (n → R₂)) (i j : n) :
 @[simp]
 theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o → R₂) →ₗ[R₂] n → R₂) :
     BilinForm.toMatrix' (B.comp l r) =
-      (LinearMap.toMatrix' l)ᵀ ⬝ BilinForm.toMatrix' B ⬝ LinearMap.toMatrix' r := by
+      (LinearMap.toMatrix' l)ᵀ * BilinForm.toMatrix' B * LinearMap.toMatrix' r := by
   ext i j
   simp only [BilinForm.toMatrix'_apply, BilinForm.comp_apply, transpose_apply, Matrix.mul_apply,
     LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
@@ -241,34 +241,34 @@ theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o →
 #align bilin_form.to_matrix'_comp BilinForm.toMatrix'_comp
 
 theorem BilinForm.toMatrix'_compLeft (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
-    BilinForm.toMatrix' (B.compLeft f) = (LinearMap.toMatrix' f)ᵀ ⬝ BilinForm.toMatrix' B := by
+    BilinForm.toMatrix' (B.compLeft f) = (LinearMap.toMatrix' f)ᵀ * BilinForm.toMatrix' B := by
   simp only [BilinForm.compLeft, BilinForm.toMatrix'_comp, toMatrix'_id, Matrix.mul_one]
 #align bilin_form.to_matrix'_comp_left BilinForm.toMatrix'_compLeft
 
 theorem BilinForm.toMatrix'_compRight (B : BilinForm R₂ (n → R₂)) (f : (n → R₂) →ₗ[R₂] n → R₂) :
-    BilinForm.toMatrix' (B.compRight f) = BilinForm.toMatrix' B ⬝ LinearMap.toMatrix' f := by
+    BilinForm.toMatrix' (B.compRight f) = BilinForm.toMatrix' B * LinearMap.toMatrix' f := by
   simp only [BilinForm.compRight, BilinForm.toMatrix'_comp, toMatrix'_id, transpose_one,
     Matrix.one_mul]
 #align bilin_form.to_matrix'_comp_right BilinForm.toMatrix'_compRight
 
 theorem BilinForm.mul_toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix o n R₂)
-    (N : Matrix n o R₂) : M ⬝ BilinForm.toMatrix' B ⬝ N =
+    (N : Matrix n o R₂) : M * BilinForm.toMatrix' B * N =
       BilinForm.toMatrix' (B.comp (Matrix.toLin' Mᵀ) (Matrix.toLin' N)) := by
   simp only [B.toMatrix'_comp, transpose_transpose, toMatrix'_toLin']
 #align bilin_form.mul_to_matrix'_mul BilinForm.mul_toMatrix'_mul
 
 theorem BilinForm.mul_toMatrix' (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
-    M ⬝ BilinForm.toMatrix' B = BilinForm.toMatrix' (B.compLeft (Matrix.toLin' Mᵀ)) := by
+    M * BilinForm.toMatrix' B = BilinForm.toMatrix' (B.compLeft (Matrix.toLin' Mᵀ)) := by
   simp only [toMatrix'_compLeft, transpose_transpose, toMatrix'_toLin']
 #align bilin_form.mul_to_matrix' BilinForm.mul_toMatrix'
 
 theorem BilinForm.toMatrix'_mul (B : BilinForm R₂ (n → R₂)) (M : Matrix n n R₂) :
-    BilinForm.toMatrix' B ⬝ M = BilinForm.toMatrix' (B.compRight (Matrix.toLin' M)) := by
+    BilinForm.toMatrix' B * M = BilinForm.toMatrix' (B.compRight (Matrix.toLin' M)) := by
   simp only [toMatrix'_compRight, toMatrix'_toLin']
 #align bilin_form.to_matrix'_mul BilinForm.toMatrix'_mul
 
 theorem Matrix.toBilin'_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
-    M.toBilin'.comp (Matrix.toLin' P) (Matrix.toLin' Q) = Matrix.toBilin' (Pᵀ ⬝ M ⬝ Q) :=
+    M.toBilin'.comp (Matrix.toLin' P) (Matrix.toLin' Q) = Matrix.toBilin' (Pᵀ * M * Q) :=
   BilinForm.toMatrix'.injective
     (by simp only [BilinForm.toMatrix'_comp, BilinForm.toMatrix'_toBilin', toMatrix'_toLin'])
 #align matrix.to_bilin'_comp Matrix.toBilin'_comp
@@ -361,7 +361,7 @@ variable [DecidableEq o]
 -- Cannot be a `simp` lemma because `b` must be inferred.
 theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R₂] M₂) :
     BilinForm.toMatrix c (B.comp l r) =
-      (LinearMap.toMatrix c b l)ᵀ ⬝ BilinForm.toMatrix b B ⬝ LinearMap.toMatrix c b r := by
+      (LinearMap.toMatrix c b l)ᵀ * BilinForm.toMatrix b B * LinearMap.toMatrix c b r := by
   ext i j
   simp only [BilinForm.toMatrix_apply, BilinForm.comp_apply, transpose_apply, Matrix.mul_apply,
     LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
@@ -382,40 +382,40 @@ theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R
 #align bilin_form.to_matrix_comp BilinForm.toMatrix_comp
 
 theorem BilinForm.toMatrix_compLeft (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
-    BilinForm.toMatrix b (B.compLeft f) = (LinearMap.toMatrix b b f)ᵀ ⬝ BilinForm.toMatrix b B := by
+    BilinForm.toMatrix b (B.compLeft f) = (LinearMap.toMatrix b b f)ᵀ * BilinForm.toMatrix b B := by
   simp only [compLeft, BilinForm.toMatrix_comp b b, toMatrix_id, Matrix.mul_one]
 #align bilin_form.to_matrix_comp_left BilinForm.toMatrix_compLeft
 
 theorem BilinForm.toMatrix_compRight (B : BilinForm R₂ M₂) (f : M₂ →ₗ[R₂] M₂) :
-    BilinForm.toMatrix b (B.compRight f) = BilinForm.toMatrix b B ⬝ LinearMap.toMatrix b b f := by
+    BilinForm.toMatrix b (B.compRight f) = BilinForm.toMatrix b B * LinearMap.toMatrix b b f := by
   simp only [BilinForm.compRight, BilinForm.toMatrix_comp b b, toMatrix_id, transpose_one,
     Matrix.one_mul]
 #align bilin_form.to_matrix_comp_right BilinForm.toMatrix_compRight
 
 @[simp]
 theorem BilinForm.toMatrix_mul_basis_toMatrix (c : Basis o R₂ M₂) (B : BilinForm R₂ M₂) :
-    (b.toMatrix c)ᵀ ⬝ BilinForm.toMatrix b B ⬝ b.toMatrix c = BilinForm.toMatrix c B := by
+    (b.toMatrix c)ᵀ * BilinForm.toMatrix b B * b.toMatrix c = BilinForm.toMatrix c B := by
   rw [← LinearMap.toMatrix_id_eq_basis_toMatrix, ← BilinForm.toMatrix_comp, BilinForm.comp_id_id]
 #align bilin_form.to_matrix_mul_basis_to_matrix BilinForm.toMatrix_mul_basis_toMatrix
 
 theorem BilinForm.mul_toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix o n R₂) (N : Matrix n o R₂) :
-    M ⬝ BilinForm.toMatrix b B ⬝ N =
+    M * BilinForm.toMatrix b B * N =
       BilinForm.toMatrix c (B.comp (Matrix.toLin c b Mᵀ) (Matrix.toLin c b N)) :=
   by simp only [B.toMatrix_comp b c, toMatrix_toLin, transpose_transpose]
 #align bilin_form.mul_to_matrix_mul BilinForm.mul_toMatrix_mul
 
 theorem BilinForm.mul_toMatrix (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
-    M ⬝ BilinForm.toMatrix b B = BilinForm.toMatrix b (B.compLeft (Matrix.toLin b b Mᵀ)) := by
+    M * BilinForm.toMatrix b B = BilinForm.toMatrix b (B.compLeft (Matrix.toLin b b Mᵀ)) := by
   rw [B.toMatrix_compLeft b, toMatrix_toLin, transpose_transpose]
 #align bilin_form.mul_to_matrix BilinForm.mul_toMatrix
 
 theorem BilinForm.toMatrix_mul (B : BilinForm R₂ M₂) (M : Matrix n n R₂) :
-    BilinForm.toMatrix b B ⬝ M = BilinForm.toMatrix b (B.compRight (Matrix.toLin b b M)) := by
+    BilinForm.toMatrix b B * M = BilinForm.toMatrix b (B.compRight (Matrix.toLin b b M)) := by
   rw [B.toMatrix_compRight b, toMatrix_toLin]
 #align bilin_form.to_matrix_mul BilinForm.toMatrix_mul
 
 theorem Matrix.toBilin_comp (M : Matrix n n R₂) (P Q : Matrix n o R₂) :
-    (Matrix.toBilin b M).comp (toLin c b P) (toLin c b Q) = Matrix.toBilin c (Pᵀ ⬝ M ⬝ Q) :=
+    (Matrix.toBilin b M).comp (toLin c b P) (toLin c b Q) = Matrix.toBilin c (Pᵀ * M * Q) :=
   (BilinForm.toMatrix c).injective
     (by simp only [BilinForm.toMatrix_comp b c, BilinForm.toMatrix_toBilin, toMatrix_toLin])
 #align matrix.to_bilin_comp Matrix.toBilin_comp
@@ -468,8 +468,8 @@ theorem isAdjointPair_toBilin [DecidableEq n] :
 #align is_adjoint_pair_to_bilin isAdjointPair_toBilin
 
 theorem Matrix.isAdjointPair_equiv' [DecidableEq n] (P : Matrix n n R₃) (h : IsUnit P) :
-    (Pᵀ ⬝ J ⬝ P).IsAdjointPair (Pᵀ ⬝ J ⬝ P) A A' ↔
-      J.IsAdjointPair J (P ⬝ A ⬝ P⁻¹) (P ⬝ A' ⬝ P⁻¹) := by
+    (Pᵀ * J * P).IsAdjointPair (Pᵀ * J * P) A A' ↔
+      J.IsAdjointPair J (P * A * P⁻¹) (P * A' * P⁻¹) := by
   have h' : IsUnit P.det := P.isUnit_iff_isUnit_det.mp h
   -- Porting note: the original proof used a complicated conv and timed out
   let u := P.nonsingInvUnit h'
@@ -480,7 +480,7 @@ theorem Matrix.isAdjointPair_equiv' [DecidableEq n] (P : Matrix n n R₃) (h : I
   have coe_v_inv : (↑v⁻¹ : Matrix n n R₃) = P⁻¹ᵀ := P.transpose_nonsing_inv.symm
   set x := Aᵀ * Pᵀ * J with x_def
   set y := J * P * A' with y_def
-  simp only [Matrix.IsAdjointPair, ← Matrix.mul_eq_mul]
+  simp only [Matrix.IsAdjointPair]
   calc (Aᵀ * (Pᵀ * J * P) = Pᵀ * J * P * A')
          ↔ (x * ↑u = ↑v * y) := ?_
        _ ↔ (↑v⁻¹ * x = y * ↑u⁻¹) := ?_
@@ -488,7 +488,7 @@ theorem Matrix.isAdjointPair_equiv' [DecidableEq n] (P : Matrix n n R₃) (h : I
   · simp only [mul_assoc, x_def, y_def, coe_u, coe_v]
   · rw [Units.eq_mul_inv_iff_mul_eq, mul_assoc ↑v⁻¹ x, Units.inv_mul_eq_iff_eq_mul]
   · rw [x_def, y_def, coe_u_inv, coe_v_inv]
-    simp only [Matrix.mul_eq_mul, Matrix.mul_assoc, Matrix.transpose_mul]
+    simp only [Matrix.mul_assoc, Matrix.transpose_mul]
 #align matrix.is_adjoint_pair_equiv' Matrix.isAdjointPair_equiv'
 
 variable [DecidableEq n]
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
@@ -40,21 +40,21 @@ bilinear form, bilin form, BilinearForm, matrix, basis
 -/
 
 
-variable {R : Type _} {M : Type _} [Semiring R] [AddCommMonoid M] [Module R M]
+variable {R : Type*} {M : Type*} [Semiring R] [AddCommMonoid M] [Module R M]
 
-variable {R₁ : Type _} {M₁ : Type _} [Ring R₁] [AddCommGroup M₁] [Module R₁ M₁]
+variable {R₁ : Type*} {M₁ : Type*} [Ring R₁] [AddCommGroup M₁] [Module R₁ M₁]
 
-variable {R₂ : Type _} {M₂ : Type _} [CommSemiring R₂] [AddCommMonoid M₂] [Module R₂ M₂]
+variable {R₂ : Type*} {M₂ : Type*} [CommSemiring R₂] [AddCommMonoid M₂] [Module R₂ M₂]
 
-variable {R₃ : Type _} {M₃ : Type _} [CommRing R₃] [AddCommGroup M₃] [Module R₃ M₃]
+variable {R₃ : Type*} {M₃ : Type*} [CommRing R₃] [AddCommGroup M₃] [Module R₃ M₃]
 
-variable {V : Type _} {K : Type _} [Field K] [AddCommGroup V] [Module K V]
+variable {V : Type*} {K : Type*} [Field K] [AddCommGroup V] [Module K V]
 
 variable {B : BilinForm R M} {B₁ : BilinForm R₁ M₁} {B₂ : BilinForm R₂ M₂}
 
 section Matrix
 
-variable {n o : Type _}
+variable {n o : Type*}
 
 open BigOperators
 
@@ -352,7 +352,7 @@ theorem BilinForm.toMatrix_toBilin (M : Matrix n n R₂) :
   (BilinForm.toMatrix b).apply_symm_apply M
 #align bilin_form.to_matrix_to_bilin BilinForm.toMatrix_toBilin
 
-variable {M₂' : Type _} [AddCommMonoid M₂'] [Module R₂ M₂']
+variable {M₂' : Type*} [AddCommMonoid M₂'] [Module R₂ M₂']
 
 variable (c : Basis o R₂ M₂')
 
@@ -428,7 +428,7 @@ section MatrixAdjoints
 
 open Matrix
 
-variable {n : Type _} [Fintype n]
+variable {n : Type*} [Fintype n]
 
 variable (b : Basis n R₃ M₃)
 
@@ -536,9 +536,9 @@ section Det
 
 open Matrix
 
-variable {A : Type _} [CommRing A] [IsDomain A] [Module A M₃] (B₃ : BilinForm A M₃)
+variable {A : Type*} [CommRing A] [IsDomain A] [Module A M₃] (B₃ : BilinForm A M₃)
 
-variable {ι : Type _} [DecidableEq ι] [Fintype ι]
+variable {ι : Type*} [DecidableEq ι] [Fintype ι]
 
 theorem _root_.Matrix.nondegenerate_toBilin'_iff_nondegenerate_toBilin {M : Matrix ι ι R₂}
     (b : Basis ι R₂ M₂) : M.toBilin'.Nondegenerate ↔ (Matrix.toBilin b M).Nondegenerate :=
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,11 +2,6 @@
 Copyright (c) 2020 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen, Kexing Ying
-
-! This file was ported from Lean 3 source module linear_algebra.matrix.bilinear_form
-! leanprover-community/mathlib commit 075b3f7d19b9da85a0b54b3e33055a74fc388dec
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.LinearAlgebra.Matrix.Basis
 import Mathlib.LinearAlgebra.Matrix.Nondegenerate
@@ -15,6 +10,8 @@ import Mathlib.LinearAlgebra.Matrix.ToLinearEquiv
 import Mathlib.LinearAlgebra.BilinearForm
 import Mathlib.LinearAlgebra.Matrix.SesquilinearForm
 
+#align_import linear_algebra.matrix.bilinear_form from "leanprover-community/mathlib"@"075b3f7d19b9da85a0b54b3e33055a74fc388dec"
+
 /-!
 # Bilinear form
 
chore: remove superfluous parentheses in calls to ext (#5258)

Co-authored-by: Xavier Roblot <46200072+xroblot@users.noreply.github.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Pol'tta / Miyahara Kō <pol_tta@outlook.jp> Co-authored-by: Jason Yuen <jason_yuen2007@hotmail.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: Jireh Loreaux <loreaujy@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com> Co-authored-by: Jujian Zhang <jujian.zhang1998@outlook.com> Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>

Diff
@@ -145,7 +145,7 @@ def BilinForm.toMatrix' : BilinForm R₂ (n → R₂) ≃ₗ[R₂] Matrix n n R
     invFun := Matrix.toBilin'Aux
     left_inv := fun B ↦ by convert toBilin'Aux_toMatrixAux B
     right_inv := fun M => by
-      ext (i j)
+      ext i j
       simp only [toFun_eq_coe, BilinForm.toMatrixAux_apply, Matrix.toBilin'Aux_stdBasis] }
 #align bilin_form.to_matrix' BilinForm.toMatrix'
 
@@ -224,7 +224,7 @@ theorem BilinForm.toMatrix'_apply (B : BilinForm R₂ (n → R₂)) (i j : n) :
 theorem BilinForm.toMatrix'_comp (B : BilinForm R₂ (n → R₂)) (l r : (o → R₂) →ₗ[R₂] n → R₂) :
     BilinForm.toMatrix' (B.comp l r) =
       (LinearMap.toMatrix' l)ᵀ ⬝ BilinForm.toMatrix' B ⬝ LinearMap.toMatrix' r := by
-  ext (i j)
+  ext i j
   simp only [BilinForm.toMatrix'_apply, BilinForm.comp_apply, transpose_apply, Matrix.mul_apply,
     LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
   rw [sum_comm]
@@ -365,7 +365,7 @@ variable [DecidableEq o]
 theorem BilinForm.toMatrix_comp (B : BilinForm R₂ M₂) (l r : M₂' →ₗ[R₂] M₂) :
     BilinForm.toMatrix c (B.comp l r) =
       (LinearMap.toMatrix c b l)ᵀ ⬝ BilinForm.toMatrix b B ⬝ LinearMap.toMatrix c b r := by
-  ext (i j)
+  ext i j
   simp only [BilinForm.toMatrix_apply, BilinForm.comp_apply, transpose_apply, Matrix.mul_apply,
     LinearMap.toMatrix', LinearEquiv.coe_mk, sum_mul]
   rw [sum_comm]
feat: port LinearAlgebra.Matrix.BilinearForm (#4361)

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Dependencies 10 + 622

623 files ported (98.4%)
263649 lines ported (98.7%)
Show graph

The unported dependencies are