linear_algebra.symplectic_groupMathlib.LinearAlgebra.SymplecticGroup

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -175,10 +175,10 @@ theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
   use A.det
   refine' (is_unit_det_J l R).hMul_left_cancel _
   rw [mul_one]
-  rw [mem_iff] at hA 
-  apply_fun det at hA 
-  simp only [det_mul, det_transpose] at hA 
-  rw [mul_comm A.det, mul_assoc] at hA 
+  rw [mem_iff] at hA
+  apply_fun det at hA
+  simp only [det_mul, det_transpose] at hA
+  rw [mul_comm A.det, mul_assoc] at hA
   exact hA
 #align symplectic_group.symplectic_det SymplecticGroup.symplectic_det
 -/
@@ -232,7 +232,7 @@ theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝
   calc
     -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = (-J l R) ⬝ (Aᵀ ⬝ J l R ⬝ A) := by
       simp only [Matrix.mul_assoc, Matrix.neg_mul]
-    _ = (-J l R) ⬝ J l R := by rw [mem_iff'] at hA ; rw [hA]
+    _ = (-J l R) ⬝ J l R := by rw [mem_iff'] at hA; rw [hA]
     _ = (-1 : R) • J l R ⬝ J l R := by simp only [Matrix.neg_mul, neg_smul, one_smul]
     _ = (-1 : R) • -1 := by rw [J_squared]
     _ = 1 := by simp only [neg_smul_neg, one_smul]
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Matej Penciak. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Matej Penciak, Moritz Doll, Fabien Clery
 -/
-import Mathbin.LinearAlgebra.Matrix.NonsingularInverse
+import LinearAlgebra.Matrix.NonsingularInverse
 
 #align_import linear_algebra.symplectic_group from "leanprover-community/mathlib"@"ef55335933293309ff8c0b1d20ffffeecbe5c39f"
 
Diff
@@ -100,7 +100,7 @@ variable [Fintype l]
 def symplecticGroup : Submonoid (Matrix (Sum l l) (Sum l l) R)
     where
   carrier := {A | A ⬝ J l R ⬝ Aᵀ = J l R}
-  mul_mem' := by
+  hMul_mem' := by
     intro a b ha hb
     simp only [mul_eq_mul, Set.mem_setOf_eq, transpose_mul] at *
     rw [← Matrix.mul_assoc, a.mul_assoc, a.mul_assoc, hb]
@@ -173,7 +173,7 @@ theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
   by
   rw [isUnit_iff_exists_inv]
   use A.det
-  refine' (is_unit_det_J l R).mul_left_cancel _
+  refine' (is_unit_det_J l R).hMul_left_cancel _
   rw [mul_one]
   rw [mem_iff] at hA 
   apply_fun det at hA 
@@ -219,7 +219,7 @@ theorem mem_iff' : A ∈ symplecticGroup l R ↔ Aᵀ ⬝ J l R ⬝ A = J l R :=
 instance : Inv (symplecticGroup l R)
     where inv A :=
     ⟨(-J l R) ⬝ (A : Matrix (Sum l l) (Sum l l) R)ᵀ ⬝ J l R,
-      mul_mem (mul_mem (neg_mem <| J_mem _ _) <| transpose_mem A.2) <| J_mem _ _⟩
+      hMul_mem (hMul_mem (neg_mem <| J_mem _ _) <| transpose_mem A.2) <| J_mem _ _⟩
 
 #print SymplecticGroup.coe_inv /-
 theorem coe_inv (A : symplecticGroup l R) : (↑A⁻¹ : Matrix _ _ _) = (-J l R) ⬝ (↑A)ᵀ ⬝ J l R :=
@@ -256,10 +256,10 @@ theorem inv_eq_symplectic_inv (A : Matrix (Sum l l) (Sum l l) R) (hA : A ∈ sym
 
 instance : Group (symplecticGroup l R) :=
   { SymplecticGroup.hasInv, Submonoid.toMonoid _ with
-    mul_left_inv := fun A => by
+    hMul_left_inv := fun A => by
       apply Subtype.ext
       simp only [Submonoid.coe_one, Submonoid.coe_mul, Matrix.neg_mul, coe_inv]
-      rw [Matrix.mul_eq_mul, Matrix.neg_mul]
+      rw [Matrix.hMul_eq_hMul, Matrix.neg_mul]
       exact inv_left_mul_aux A.2 }
 
 end SymplecticGroup
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Matej Penciak. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Matej Penciak, Moritz Doll, Fabien Clery
-
-! This file was ported from Lean 3 source module linear_algebra.symplectic_group
-! leanprover-community/mathlib commit ef55335933293309ff8c0b1d20ffffeecbe5c39f
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.LinearAlgebra.Matrix.NonsingularInverse
 
+#align_import linear_algebra.symplectic_group from "leanprover-community/mathlib"@"ef55335933293309ff8c0b1d20ffffeecbe5c39f"
+
 /-!
 # The Symplectic Group
 
Diff
@@ -46,6 +46,7 @@ def J : Matrix (Sum l l) (Sum l l) R :=
 #align matrix.J Matrix.J
 -/
 
+#print Matrix.J_transpose /-
 @[simp]
 theorem J_transpose : (J l R)ᵀ = -J l R :=
   by
@@ -53,23 +54,29 @@ theorem J_transpose : (J l R)ᵀ = -J l R :=
     Matrix.transpose_zero, Matrix.transpose_one, transpose_neg]
   simp [from_blocks]
 #align matrix.J_transpose Matrix.J_transpose
+-/
 
 variable [Fintype l]
 
+#print Matrix.J_squared /-
 theorem J_squared : J l R ⬝ J l R = -1 :=
   by
   rw [J, from_blocks_multiply]
   simp only [Matrix.zero_mul, Matrix.neg_mul, zero_add, neg_zero, Matrix.one_mul, add_zero]
   rw [← neg_zero, ← Matrix.fromBlocks_neg, ← from_blocks_one]
 #align matrix.J_squared Matrix.J_squared
+-/
 
+#print Matrix.J_inv /-
 theorem J_inv : (J l R)⁻¹ = -J l R :=
   by
   refine' Matrix.inv_eq_right_inv _
   rw [Matrix.mul_neg, J_squared]
   exact neg_neg 1
 #align matrix.J_inv Matrix.J_inv
+-/
 
+#print Matrix.J_det_mul_J_det /-
 theorem J_det_mul_J_det : det (J l R) * det (J l R) = 1 :=
   by
   rw [← det_mul, J_squared]
@@ -79,6 +86,7 @@ theorem J_det_mul_J_det : det (J l R) * det (J l R) = 1 :=
   apply Even.neg_one_pow
   exact even_add_self _
 #align matrix.J_det_mul_J_det Matrix.J_det_mul_J_det
+-/
 
 #print Matrix.isUnit_det_J /-
 theorem isUnit_det_J : IsUnit (det (J l R)) :=
@@ -90,6 +98,7 @@ end JMatrixLemmas
 
 variable [Fintype l]
 
+#print Matrix.symplecticGroup /-
 /-- The group of symplectic matrices over a ring `R`. -/
 def symplecticGroup : Submonoid (Matrix (Sum l l) (Sum l l) R)
     where
@@ -101,6 +110,7 @@ def symplecticGroup : Submonoid (Matrix (Sum l l) (Sum l l) R)
     exact ha
   one_mem' := by simp
 #align matrix.symplectic_group Matrix.symplecticGroup
+-/
 
 end Matrix
 
@@ -110,45 +120,58 @@ variable {l} {R} [DecidableEq l] [Fintype l] [CommRing R]
 
 open Matrix
 
+#print SymplecticGroup.mem_iff /-
 theorem mem_iff {A : Matrix (Sum l l) (Sum l l) R} :
     A ∈ symplecticGroup l R ↔ A ⬝ J l R ⬝ Aᵀ = J l R := by simp [symplectic_group]
 #align symplectic_group.mem_iff SymplecticGroup.mem_iff
+-/
 
+#print SymplecticGroup.coeMatrix /-
 instance coeMatrix : Coe (symplecticGroup l R) (Matrix (Sum l l) (Sum l l) R) := by infer_instance
 #align symplectic_group.coe_matrix SymplecticGroup.coeMatrix
+-/
 
 section SymplecticJ
 
 variable (l) (R)
 
+#print SymplecticGroup.J_mem /-
 theorem J_mem : J l R ∈ symplecticGroup l R :=
   by
   rw [mem_iff, J, from_blocks_multiply, from_blocks_transpose, from_blocks_multiply]
   simp
 #align symplectic_group.J_mem SymplecticGroup.J_mem
+-/
 
+#print SymplecticGroup.symJ /-
 /-- The canonical skew-symmetric matrix as an element in the symplectic group. -/
 def symJ : symplecticGroup l R :=
   ⟨J l R, J_mem l R⟩
 #align symplectic_group.sym_J SymplecticGroup.symJ
+-/
 
 variable {l} {R}
 
+#print SymplecticGroup.coe_J /-
 @[simp]
 theorem coe_J : ↑(symJ l R) = J l R :=
   rfl
 #align symplectic_group.coe_J SymplecticGroup.coe_J
+-/
 
 end SymplecticJ
 
 variable {R} {A : Matrix (Sum l l) (Sum l l) R}
 
+#print SymplecticGroup.neg_mem /-
 theorem neg_mem (h : A ∈ symplecticGroup l R) : -A ∈ symplecticGroup l R :=
   by
   rw [mem_iff] at h ⊢
   simp [h]
 #align symplectic_group.neg_mem SymplecticGroup.neg_mem
+-/
 
+#print SymplecticGroup.symplectic_det /-
 theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
   by
   rw [isUnit_iff_exists_inv]
@@ -161,7 +184,9 @@ theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
   rw [mul_comm A.det, mul_assoc] at hA 
   exact hA
 #align symplectic_group.symplectic_det SymplecticGroup.symplectic_det
+-/
 
+#print SymplecticGroup.transpose_mem /-
 theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGroup l R :=
   by
   rw [mem_iff] at hA ⊢
@@ -179,25 +204,33 @@ theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGrou
       rw [mul_nonsing_inv_cancel_left _ _ huAT, nonsing_inv_mul_cancel_right _ _ huA]
     _ = J l R := by simp [J_inv]
 #align symplectic_group.transpose_mem SymplecticGroup.transpose_mem
+-/
 
+#print SymplecticGroup.transpose_mem_iff /-
 @[simp]
 theorem transpose_mem_iff : Aᵀ ∈ symplecticGroup l R ↔ A ∈ symplecticGroup l R :=
   ⟨fun hA => by simpa using transpose_mem hA, transpose_mem⟩
 #align symplectic_group.transpose_mem_iff SymplecticGroup.transpose_mem_iff
+-/
 
+#print SymplecticGroup.mem_iff' /-
 theorem mem_iff' : A ∈ symplecticGroup l R ↔ Aᵀ ⬝ J l R ⬝ A = J l R := by
   rw [← transpose_mem_iff, mem_iff, transpose_transpose]
 #align symplectic_group.mem_iff' SymplecticGroup.mem_iff'
+-/
 
 instance : Inv (symplecticGroup l R)
     where inv A :=
     ⟨(-J l R) ⬝ (A : Matrix (Sum l l) (Sum l l) R)ᵀ ⬝ J l R,
       mul_mem (mul_mem (neg_mem <| J_mem _ _) <| transpose_mem A.2) <| J_mem _ _⟩
 
+#print SymplecticGroup.coe_inv /-
 theorem coe_inv (A : symplecticGroup l R) : (↑A⁻¹ : Matrix _ _ _) = (-J l R) ⬝ (↑A)ᵀ ⬝ J l R :=
   rfl
 #align symplectic_group.coe_inv SymplecticGroup.coe_inv
+-/
 
+#print SymplecticGroup.inv_left_mul_aux /-
 theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = 1 :=
   calc
     -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = (-J l R) ⬝ (Aᵀ ⬝ J l R ⬝ A) := by
@@ -207,17 +240,22 @@ theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝
     _ = (-1 : R) • -1 := by rw [J_squared]
     _ = 1 := by simp only [neg_smul_neg, one_smul]
 #align symplectic_group.inv_left_mul_aux SymplecticGroup.inv_left_mul_aux
+-/
 
+#print SymplecticGroup.coe_inv' /-
 theorem coe_inv' (A : symplecticGroup l R) : (↑A⁻¹ : Matrix (Sum l l) (Sum l l) R) = A⁻¹ :=
   by
   refine' (coe_inv A).trans (inv_eq_left_inv _).symm
   simp [inv_left_mul_aux, coe_inv]
 #align symplectic_group.coe_inv' SymplecticGroup.coe_inv'
+-/
 
+#print SymplecticGroup.inv_eq_symplectic_inv /-
 theorem inv_eq_symplectic_inv (A : Matrix (Sum l l) (Sum l l) R) (hA : A ∈ symplecticGroup l R) :
     A⁻¹ = (-J l R) ⬝ Aᵀ ⬝ J l R :=
   inv_eq_left_inv (by simp only [Matrix.neg_mul, inv_left_mul_aux hA])
 #align symplectic_group.inv_eq_symplectic_inv SymplecticGroup.inv_eq_symplectic_inv
+-/
 
 instance : Group (symplecticGroup l R) :=
   { SymplecticGroup.hasInv, Submonoid.toMonoid _ with
Diff
@@ -178,7 +178,6 @@ theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGrou
     _ = -(J l R)⁻¹ := by
       rw [mul_nonsing_inv_cancel_left _ _ huAT, nonsing_inv_mul_cancel_right _ _ huA]
     _ = J l R := by simp [J_inv]
-    
 #align symplectic_group.transpose_mem SymplecticGroup.transpose_mem
 
 @[simp]
@@ -207,7 +206,6 @@ theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝
     _ = (-1 : R) • J l R ⬝ J l R := by simp only [Matrix.neg_mul, neg_smul, one_smul]
     _ = (-1 : R) • -1 := by rw [J_squared]
     _ = 1 := by simp only [neg_smul_neg, one_smul]
-    
 #align symplectic_group.inv_left_mul_aux SymplecticGroup.inv_left_mul_aux
 
 theorem coe_inv' (A : symplecticGroup l R) : (↑A⁻¹ : Matrix (Sum l l) (Sum l l) R) = A⁻¹ :=
Diff
@@ -93,7 +93,7 @@ variable [Fintype l]
 /-- The group of symplectic matrices over a ring `R`. -/
 def symplecticGroup : Submonoid (Matrix (Sum l l) (Sum l l) R)
     where
-  carrier := { A | A ⬝ J l R ⬝ Aᵀ = J l R }
+  carrier := {A | A ⬝ J l R ⬝ Aᵀ = J l R}
   mul_mem' := by
     intro a b ha hb
     simp only [mul_eq_mul, Set.mem_setOf_eq, transpose_mul] at *
@@ -156,7 +156,7 @@ theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
   refine' (is_unit_det_J l R).mul_left_cancel _
   rw [mul_one]
   rw [mem_iff] at hA 
-  apply_fun det  at hA 
+  apply_fun det at hA 
   simp only [det_mul, det_transpose] at hA 
   rw [mul_comm A.det, mul_assoc] at hA 
   exact hA
Diff
@@ -145,7 +145,7 @@ variable {R} {A : Matrix (Sum l l) (Sum l l) R}
 
 theorem neg_mem (h : A ∈ symplecticGroup l R) : -A ∈ symplecticGroup l R :=
   by
-  rw [mem_iff] at h⊢
+  rw [mem_iff] at h ⊢
   simp [h]
 #align symplectic_group.neg_mem SymplecticGroup.neg_mem
 
@@ -155,16 +155,16 @@ theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
   use A.det
   refine' (is_unit_det_J l R).mul_left_cancel _
   rw [mul_one]
-  rw [mem_iff] at hA
-  apply_fun det  at hA
-  simp only [det_mul, det_transpose] at hA
-  rw [mul_comm A.det, mul_assoc] at hA
+  rw [mem_iff] at hA 
+  apply_fun det  at hA 
+  simp only [det_mul, det_transpose] at hA 
+  rw [mul_comm A.det, mul_assoc] at hA 
   exact hA
 #align symplectic_group.symplectic_det SymplecticGroup.symplectic_det
 
 theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGroup l R :=
   by
-  rw [mem_iff] at hA⊢
+  rw [mem_iff] at hA ⊢
   rw [transpose_transpose]
   have huA := symplectic_det hA
   have huAT : IsUnit Aᵀ.det := by
@@ -203,7 +203,7 @@ theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝
   calc
     -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = (-J l R) ⬝ (Aᵀ ⬝ J l R ⬝ A) := by
       simp only [Matrix.mul_assoc, Matrix.neg_mul]
-    _ = (-J l R) ⬝ J l R := by rw [mem_iff'] at hA; rw [hA]
+    _ = (-J l R) ⬝ J l R := by rw [mem_iff'] at hA ; rw [hA]
     _ = (-1 : R) • J l R ⬝ J l R := by simp only [Matrix.neg_mul, neg_smul, one_smul]
     _ = (-1 : R) • -1 := by rw [J_squared]
     _ = 1 := by simp only [neg_smul_neg, one_smul]
Diff
@@ -29,7 +29,7 @@ This file defines the symplectic group and proves elementary properties.
 -/
 
 
-open Matrix
+open scoped Matrix
 
 variable {l R : Type _}
 
Diff
@@ -46,12 +46,6 @@ def J : Matrix (Sum l l) (Sum l l) R :=
 #align matrix.J Matrix.J
 -/
 
-/- warning: matrix.J_transpose -> Matrix.J_transpose is a dubious translation:
-lean 3 declaration is
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))
-but is expected to have type
-  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : CommRing.{u1} R], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_2))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))
-Case conversion may be inaccurate. Consider using '#align matrix.J_transpose Matrix.J_transposeₓ'. -/
 @[simp]
 theorem J_transpose : (J l R)ᵀ = -J l R :=
   by
@@ -62,12 +56,6 @@ theorem J_transpose : (J l R)ᵀ = -J l R :=
 
 variable [Fintype l]
 
-/- warning: matrix.J_squared -> Matrix.J_squared is a dubious translation:
-lean 3 declaration is
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_2))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasOne.{u2, u1} (Sum.{u1, u1} l l) R (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2)))))) (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))))))
-but is expected to have type
-  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : CommRing.{u1} R] [_inst_3 : Fintype.{u2} l], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_3 _inst_3) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_2)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_2))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_2))) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.one.{u1, u2} (Sum.{u2, u2} l l) R (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)))))))
-Case conversion may be inaccurate. Consider using '#align matrix.J_squared Matrix.J_squaredₓ'. -/
 theorem J_squared : J l R ⬝ J l R = -1 :=
   by
   rw [J, from_blocks_multiply]
@@ -75,12 +63,6 @@ theorem J_squared : J l R ⬝ J l R = -1 :=
   rw [← neg_zero, ← Matrix.fromBlocks_neg, ← from_blocks_one]
 #align matrix.J_squared Matrix.J_squared
 
-/- warning: matrix.J_inv -> Matrix.J_inv is a dubious translation:
-lean 3 declaration is
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasInv.{u1, u2} (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_2) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))
-but is expected to have type
-  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : CommRing.{u1} R] [_inst_3 : Fintype.{u2} l], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.inv.{u2, u1} (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_3 _inst_3) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_2) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_2))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))
-Case conversion may be inaccurate. Consider using '#align matrix.J_inv Matrix.J_invₓ'. -/
 theorem J_inv : (J l R)⁻¹ = -J l R :=
   by
   refine' Matrix.inv_eq_right_inv _
@@ -88,12 +70,6 @@ theorem J_inv : (J l R)⁻¹ = -J l R :=
   exact neg_neg 1
 #align matrix.J_inv Matrix.J_inv
 
-/- warning: matrix.J_det_mul_J_det -> Matrix.J_det_mul_J_det is a dubious translation:
-lean 3 declaration is
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ u2} R (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_2)))) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))) (OfNat.ofNat.{u2} R 1 (OfNat.mk.{u2} R 1 (One.one.{u2} R (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))))
-but is expected to have type
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ u2} R (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocRing.toMul.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))))) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align matrix.J_det_mul_J_det Matrix.J_det_mul_J_detₓ'. -/
 theorem J_det_mul_J_det : det (J l R) * det (J l R) = 1 :=
   by
   rw [← det_mul, J_squared]
@@ -114,12 +90,6 @@ end JMatrixLemmas
 
 variable [Fintype l]
 
-/- warning: matrix.symplectic_group -> Matrix.symplecticGroup is a dubious translation:
-lean 3 declaration is
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))
-but is expected to have type
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))
-Case conversion may be inaccurate. Consider using '#align matrix.symplectic_group Matrix.symplecticGroupₓ'. -/
 /-- The group of symplectic matrices over a ring `R`. -/
 def symplecticGroup : Submonoid (Matrix (Sum l l) (Sum l l) R)
     where
@@ -140,19 +110,10 @@ variable {l} {R} [DecidableEq l] [Fintype l] [CommRing R]
 
 open Matrix
 
-/- warning: symplectic_group.mem_iff -> SymplecticGroup.mem_iff is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) A (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
-but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) A (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
-Case conversion may be inaccurate. Consider using '#align symplectic_group.mem_iff SymplecticGroup.mem_iffₓ'. -/
 theorem mem_iff {A : Matrix (Sum l l) (Sum l l) R} :
     A ∈ symplecticGroup l R ↔ A ⬝ J l R ⬝ Aᵀ = J l R := by simp [symplectic_group]
 #align symplectic_group.mem_iff SymplecticGroup.mem_iff
 
-/- warning: symplectic_group.coe_matrix -> SymplecticGroup.coeMatrix is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_matrix SymplecticGroup.coeMatrixₓ'. -/
 instance coeMatrix : Coe (symplecticGroup l R) (Matrix (Sum l l) (Sum l l) R) := by infer_instance
 #align symplectic_group.coe_matrix SymplecticGroup.coeMatrix
 
@@ -160,24 +121,12 @@ section SymplecticJ
 
 variable (l) (R)
 
-/- warning: symplectic_group.J_mem -> SymplecticGroup.J_mem is a dubious translation:
-lean 3 declaration is
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)
-but is expected to have type
-  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R], Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)
-Case conversion may be inaccurate. Consider using '#align symplectic_group.J_mem SymplecticGroup.J_memₓ'. -/
 theorem J_mem : J l R ∈ symplecticGroup l R :=
   by
   rw [mem_iff, J, from_blocks_multiply, from_blocks_transpose, from_blocks_multiply]
   simp
 #align symplectic_group.J_mem SymplecticGroup.J_mem
 
-/- warning: symplectic_group.sym_J -> SymplecticGroup.symJ is a dubious translation:
-lean 3 declaration is
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)
-but is expected to have type
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (fun (x : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
-Case conversion may be inaccurate. Consider using '#align symplectic_group.sym_J SymplecticGroup.symJₓ'. -/
 /-- The canonical skew-symmetric matrix as an element in the symplectic group. -/
 def symJ : symplecticGroup l R :=
   ⟨J l R, J_mem l R⟩
@@ -185,9 +134,6 @@ def symJ : symplecticGroup l R :=
 
 variable {l} {R}
 
-/- warning: symplectic_group.coe_J -> SymplecticGroup.coe_J is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_J SymplecticGroup.coe_Jₓ'. -/
 @[simp]
 theorem coe_J : ↑(symJ l R) = J l R :=
   rfl
@@ -197,21 +143,12 @@ end SymplecticJ
 
 variable {R} {A : Matrix (Sum l l) (Sum l l) R}
 
-/- warning: symplectic_group.neg_mem -> SymplecticGroup.neg_mem is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align symplectic_group.neg_mem SymplecticGroup.neg_memₓ'. -/
 theorem neg_mem (h : A ∈ symplecticGroup l R) : -A ∈ symplecticGroup l R :=
   by
   rw [mem_iff] at h⊢
   simp [h]
 #align symplectic_group.neg_mem SymplecticGroup.neg_mem
 
-/- warning: symplectic_group.symplectic_det -> SymplecticGroup.symplectic_det is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (IsUnit.{u2} R (Ring.toMonoid.{u2} R (CommRing.toRing.{u2} R _inst_3)) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) R _inst_3 A))
-but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (IsUnit.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Matrix.det.{u1, u2} (Sum.{u2, u2} l l) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) R _inst_3 A))
-Case conversion may be inaccurate. Consider using '#align symplectic_group.symplectic_det SymplecticGroup.symplectic_detₓ'. -/
 theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
   by
   rw [isUnit_iff_exists_inv]
@@ -225,12 +162,6 @@ theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
   exact hA
 #align symplectic_group.symplectic_det SymplecticGroup.symplectic_det
 
-/- warning: symplectic_group.transpose_mem -> SymplecticGroup.transpose_mem is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
-but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
-Case conversion may be inaccurate. Consider using '#align symplectic_group.transpose_mem SymplecticGroup.transpose_memₓ'. -/
 theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGroup l R :=
   by
   rw [mem_iff] at hA⊢
@@ -250,23 +181,11 @@ theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGrou
     
 #align symplectic_group.transpose_mem SymplecticGroup.transpose_mem
 
-/- warning: symplectic_group.transpose_mem_iff -> SymplecticGroup.transpose_mem_iff is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
-but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
-Case conversion may be inaccurate. Consider using '#align symplectic_group.transpose_mem_iff SymplecticGroup.transpose_mem_iffₓ'. -/
 @[simp]
 theorem transpose_mem_iff : Aᵀ ∈ symplecticGroup l R ↔ A ∈ symplecticGroup l R :=
   ⟨fun hA => by simpa using transpose_mem hA, transpose_mem⟩
 #align symplectic_group.transpose_mem_iff SymplecticGroup.transpose_mem_iff
 
-/- warning: symplectic_group.mem_iff' -> SymplecticGroup.mem_iff' is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
-but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
-Case conversion may be inaccurate. Consider using '#align symplectic_group.mem_iff' SymplecticGroup.mem_iff'ₓ'. -/
 theorem mem_iff' : A ∈ symplecticGroup l R ↔ Aᵀ ⬝ J l R ⬝ A = J l R := by
   rw [← transpose_mem_iff, mem_iff, transpose_transpose]
 #align symplectic_group.mem_iff' SymplecticGroup.mem_iff'
@@ -276,16 +195,10 @@ instance : Inv (symplecticGroup l R)
     ⟨(-J l R) ⬝ (A : Matrix (Sum l l) (Sum l l) R)ᵀ ⬝ J l R,
       mul_mem (mul_mem (neg_mem <| J_mem _ _) <| transpose_mem A.2) <| J_mem _ _⟩
 
-/- warning: symplectic_group.coe_inv -> SymplecticGroup.coe_inv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_inv SymplecticGroup.coe_invₓ'. -/
 theorem coe_inv (A : symplecticGroup l R) : (↑A⁻¹ : Matrix _ _ _) = (-J l R) ⬝ (↑A)ᵀ ⬝ J l R :=
   rfl
 #align symplectic_group.coe_inv SymplecticGroup.coe_inv
 
-/- warning: symplectic_group.inv_left_mul_aux -> SymplecticGroup.inv_left_mul_aux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align symplectic_group.inv_left_mul_aux SymplecticGroup.inv_left_mul_auxₓ'. -/
 theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = 1 :=
   calc
     -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = (-J l R) ⬝ (Aᵀ ⬝ J l R ⬝ A) := by
@@ -297,21 +210,12 @@ theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝
     
 #align symplectic_group.inv_left_mul_aux SymplecticGroup.inv_left_mul_aux
 
-/- warning: symplectic_group.coe_inv' -> SymplecticGroup.coe_inv' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_inv' SymplecticGroup.coe_inv'ₓ'. -/
 theorem coe_inv' (A : symplecticGroup l R) : (↑A⁻¹ : Matrix (Sum l l) (Sum l l) R) = A⁻¹ :=
   by
   refine' (coe_inv A).trans (inv_eq_left_inv _).symm
   simp [inv_left_mul_aux, coe_inv]
 #align symplectic_group.coe_inv' SymplecticGroup.coe_inv'
 
-/- warning: symplectic_group.inv_eq_symplectic_inv -> SymplecticGroup.inv_eq_symplectic_inv is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] (A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R), (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasInv.{u1, u2} (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) A) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)))
-but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R), (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.inv.{u2, u1} (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) A) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)))
-Case conversion may be inaccurate. Consider using '#align symplectic_group.inv_eq_symplectic_inv SymplecticGroup.inv_eq_symplectic_invₓ'. -/
 theorem inv_eq_symplectic_inv (A : Matrix (Sum l l) (Sum l l) R) (hA : A ∈ symplecticGroup l R) :
     A⁻¹ = (-J l R) ⬝ Aᵀ ⬝ J l R :=
   inv_eq_left_inv (by simp only [Matrix.neg_mul, inv_left_mul_aux hA])
Diff
@@ -240,9 +240,7 @@ theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGrou
     rw [Matrix.det_transpose]
     exact huA
   calc
-    Aᵀ ⬝ J l R ⬝ A = (-Aᵀ) ⬝ (J l R)⁻¹ ⬝ A := by
-      rw [J_inv]
-      simp
+    Aᵀ ⬝ J l R ⬝ A = (-Aᵀ) ⬝ (J l R)⁻¹ ⬝ A := by rw [J_inv]; simp
     _ = (-Aᵀ) ⬝ (A ⬝ J l R ⬝ Aᵀ)⁻¹ ⬝ A := by rw [hA]
     _ = (-Aᵀ ⬝ (Aᵀ⁻¹ ⬝ (J l R)⁻¹)) ⬝ A⁻¹ ⬝ A := by
       simp only [Matrix.mul_inv_rev, Matrix.mul_assoc, Matrix.neg_mul]
@@ -292,9 +290,7 @@ theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝
   calc
     -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = (-J l R) ⬝ (Aᵀ ⬝ J l R ⬝ A) := by
       simp only [Matrix.mul_assoc, Matrix.neg_mul]
-    _ = (-J l R) ⬝ J l R := by
-      rw [mem_iff'] at hA
-      rw [hA]
+    _ = (-J l R) ⬝ J l R := by rw [mem_iff'] at hA; rw [hA]
     _ = (-1 : R) • J l R ⬝ J l R := by simp only [Matrix.neg_mul, neg_smul, one_smul]
     _ = (-1 : R) • -1 := by rw [J_squared]
     _ = 1 := by simp only [neg_smul_neg, one_smul]
Diff
@@ -151,10 +151,7 @@ theorem mem_iff {A : Matrix (Sum l l) (Sum l l) R} :
 #align symplectic_group.mem_iff SymplecticGroup.mem_iff
 
 /- warning: symplectic_group.coe_matrix -> SymplecticGroup.coeMatrix is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R)
-but is expected to have type
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (fun (x : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R)
+<too large>
 Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_matrix SymplecticGroup.coeMatrixₓ'. -/
 instance coeMatrix : Coe (symplecticGroup l R) (Matrix (Sum l l) (Sum l l) R) := by infer_instance
 #align symplectic_group.coe_matrix SymplecticGroup.coeMatrix
@@ -189,10 +186,7 @@ def symJ : symplecticGroup l R :=
 variable {l} {R}
 
 /- warning: symplectic_group.coe_J -> SymplecticGroup.coe_J is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) (SymplecticGroup.symJ.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)
-but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.symJ.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)
+<too large>
 Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_J SymplecticGroup.coe_Jₓ'. -/
 @[simp]
 theorem coe_J : ↑(symJ l R) = J l R :=
@@ -204,10 +198,7 @@ end SymplecticJ
 variable {R} {A : Matrix (Sum l l) (Sum l l) R}
 
 /- warning: symplectic_group.neg_mem -> SymplecticGroup.neg_mem is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) A) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
-but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+<too large>
 Case conversion may be inaccurate. Consider using '#align symplectic_group.neg_mem SymplecticGroup.neg_memₓ'. -/
 theorem neg_mem (h : A ∈ symplecticGroup l R) : -A ∈ symplecticGroup l R :=
   by
@@ -288,20 +279,14 @@ instance : Inv (symplecticGroup l R)
       mul_mem (mul_mem (neg_mem <| J_mem _ _) <| transpose_mem A.2) <| J_mem _ _⟩
 
 /- warning: symplectic_group.coe_inv -> SymplecticGroup.coe_inv is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) (Inv.inv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (SymplecticGroup.Matrix.SymplecticGroup.hasInv.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) A))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
-but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))), Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Inv.inv.{max u2 u1} (Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.hasInv.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) A))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
+<too large>
 Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_inv SymplecticGroup.coe_invₓ'. -/
 theorem coe_inv (A : symplecticGroup l R) : (↑A⁻¹ : Matrix _ _ _) = (-J l R) ⬝ (↑A)ᵀ ⬝ J l R :=
   rfl
 #align symplectic_group.coe_inv SymplecticGroup.coe_inv
 
 /- warning: symplectic_group.inv_left_mul_aux -> SymplecticGroup.inv_left_mul_aux is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasOne.{u2, u1} (Sum.{u1, u1} l l) R (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))))))
-but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A)) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.one.{u1, u2} (Sum.{u2, u2} l l) R (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align symplectic_group.inv_left_mul_aux SymplecticGroup.inv_left_mul_auxₓ'. -/
 theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = 1 :=
   calc
@@ -317,10 +302,7 @@ theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝
 #align symplectic_group.inv_left_mul_aux SymplecticGroup.inv_left_mul_aux
 
 /- warning: symplectic_group.coe_inv' -> SymplecticGroup.coe_inv' is a dubious translation:
-lean 3 declaration is
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) (Inv.inv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (SymplecticGroup.Matrix.SymplecticGroup.hasInv.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasInv.{u1, u2} (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) A))
-but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))), Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Inv.inv.{max u2 u1} (Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.hasInv.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.inv.{u2, u1} (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) A))
+<too large>
 Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_inv' SymplecticGroup.coe_inv'ₓ'. -/
 theorem coe_inv' (A : symplecticGroup l R) : (↑A⁻¹ : Matrix (Sum l l) (Sum l l) R) = A⁻¹ :=
   by
Diff
@@ -66,7 +66,7 @@ variable [Fintype l]
 lean 3 declaration is
   forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_2))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasOne.{u2, u1} (Sum.{u1, u1} l l) R (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2)))))) (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))))))
 but is expected to have type
-  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : CommRing.{u1} R] [_inst_3 : Fintype.{u2} l], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_3 _inst_3) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_2)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_2))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_2))) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.one.{u1, u2} (Sum.{u2, u2} l l) R (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_2)))))))
+  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : CommRing.{u1} R] [_inst_3 : Fintype.{u2} l], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_3 _inst_3) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_2)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_2))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_2))) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.one.{u1, u2} (Sum.{u2, u2} l l) R (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)))))))
 Case conversion may be inaccurate. Consider using '#align matrix.J_squared Matrix.J_squaredₓ'. -/
 theorem J_squared : J l R ⬝ J l R = -1 :=
   by
@@ -92,7 +92,7 @@ theorem J_inv : (J l R)⁻¹ = -J l R :=
 lean 3 declaration is
   forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ u2} R (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_2)))) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))) (OfNat.ofNat.{u2} R 1 (OfNat.mk.{u2} R 1 (One.one.{u2} R (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))))
 but is expected to have type
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ u2} R (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocRing.toMul.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))))) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (NonAssocRing.toOne.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2)))))
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ u2} R (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocRing.toMul.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))))) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align matrix.J_det_mul_J_det Matrix.J_det_mul_J_detₓ'. -/
 theorem J_det_mul_J_det : det (J l R) * det (J l R) = 1 :=
   by
@@ -118,7 +118,7 @@ variable [Fintype l]
 lean 3 declaration is
   forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))
 but is expected to have type
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))
 Case conversion may be inaccurate. Consider using '#align matrix.symplectic_group Matrix.symplecticGroupₓ'. -/
 /-- The group of symplectic matrices over a ring `R`. -/
 def symplecticGroup : Submonoid (Matrix (Sum l l) (Sum l l) R)
@@ -144,7 +144,7 @@ open Matrix
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) A (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
 but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) A (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) A (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
 Case conversion may be inaccurate. Consider using '#align symplectic_group.mem_iff SymplecticGroup.mem_iffₓ'. -/
 theorem mem_iff {A : Matrix (Sum l l) (Sum l l) R} :
     A ∈ symplecticGroup l R ↔ A ⬝ J l R ⬝ Aᵀ = J l R := by simp [symplectic_group]
@@ -154,7 +154,7 @@ theorem mem_iff {A : Matrix (Sum l l) (Sum l l) R} :
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R)
 but is expected to have type
-  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (fun (x : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R)
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (fun (x : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R)
 Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_matrix SymplecticGroup.coeMatrixₓ'. -/
 instance coeMatrix : Coe (symplecticGroup l R) (Matrix (Sum l l) (Sum l l) R) := by infer_instance
 #align symplectic_group.coe_matrix SymplecticGroup.coeMatrix
@@ -167,7 +167,7 @@ variable (l) (R)
 lean 3 declaration is
   forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)
 but is expected to have type
-  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R], Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)
+  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R], Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)
 Case conversion may be inaccurate. Consider using '#align symplectic_group.J_mem SymplecticGroup.J_memₓ'. -/
 theorem J_mem : J l R ∈ symplecticGroup l R :=
   by
@@ -179,7 +179,7 @@ theorem J_mem : J l R ∈ symplecticGroup l R :=
 lean 3 declaration is
   forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)
 but is expected to have type
-  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (fun (x : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (fun (x : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
 Case conversion may be inaccurate. Consider using '#align symplectic_group.sym_J SymplecticGroup.symJₓ'. -/
 /-- The canonical skew-symmetric matrix as an element in the symplectic group. -/
 def symJ : symplecticGroup l R :=
@@ -192,7 +192,7 @@ variable {l} {R}
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) (SymplecticGroup.symJ.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)
 but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.symJ.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.symJ.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)
 Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_J SymplecticGroup.coe_Jₓ'. -/
 @[simp]
 theorem coe_J : ↑(symJ l R) = J l R :=
@@ -207,7 +207,7 @@ variable {R} {A : Matrix (Sum l l) (Sum l l) R}
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) A) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
 but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
 Case conversion may be inaccurate. Consider using '#align symplectic_group.neg_mem SymplecticGroup.neg_memₓ'. -/
 theorem neg_mem (h : A ∈ symplecticGroup l R) : -A ∈ symplecticGroup l R :=
   by
@@ -219,7 +219,7 @@ theorem neg_mem (h : A ∈ symplecticGroup l R) : -A ∈ symplecticGroup l R :=
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (IsUnit.{u2} R (Ring.toMonoid.{u2} R (CommRing.toRing.{u2} R _inst_3)) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) R _inst_3 A))
 but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (IsUnit.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (Matrix.det.{u1, u2} (Sum.{u2, u2} l l) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) R _inst_3 A))
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (IsUnit.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Matrix.det.{u1, u2} (Sum.{u2, u2} l l) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) R _inst_3 A))
 Case conversion may be inaccurate. Consider using '#align symplectic_group.symplectic_det SymplecticGroup.symplectic_detₓ'. -/
 theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
   by
@@ -238,7 +238,7 @@ theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
 but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
 Case conversion may be inaccurate. Consider using '#align symplectic_group.transpose_mem SymplecticGroup.transpose_memₓ'. -/
 theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGroup l R :=
   by
@@ -265,7 +265,7 @@ theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGrou
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
 but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
 Case conversion may be inaccurate. Consider using '#align symplectic_group.transpose_mem_iff SymplecticGroup.transpose_mem_iffₓ'. -/
 @[simp]
 theorem transpose_mem_iff : Aᵀ ∈ symplecticGroup l R ↔ A ∈ symplecticGroup l R :=
@@ -276,7 +276,7 @@ theorem transpose_mem_iff : Aᵀ ∈ symplecticGroup l R ↔ A ∈ symplecticGro
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
 but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
 Case conversion may be inaccurate. Consider using '#align symplectic_group.mem_iff' SymplecticGroup.mem_iff'ₓ'. -/
 theorem mem_iff' : A ∈ symplecticGroup l R ↔ Aᵀ ⬝ J l R ⬝ A = J l R := by
   rw [← transpose_mem_iff, mem_iff, transpose_transpose]
@@ -291,7 +291,7 @@ instance : Inv (symplecticGroup l R)
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) (Inv.inv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (SymplecticGroup.Matrix.SymplecticGroup.hasInv.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) A))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
 but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))), Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Inv.inv.{max u2 u1} (Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.hasInv.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) A))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))), Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Inv.inv.{max u2 u1} (Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.hasInv.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) A))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
 Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_inv SymplecticGroup.coe_invₓ'. -/
 theorem coe_inv (A : symplecticGroup l R) : (↑A⁻¹ : Matrix _ _ _) = (-J l R) ⬝ (↑A)ᵀ ⬝ J l R :=
   rfl
@@ -301,7 +301,7 @@ theorem coe_inv (A : symplecticGroup l R) : (↑A⁻¹ : Matrix _ _ _) = (-J l R
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasOne.{u2, u1} (Sum.{u1, u1} l l) R (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))))))
 but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A)) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.one.{u1, u2} (Sum.{u2, u2} l l) R (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A)) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.one.{u1, u2} (Sum.{u2, u2} l l) R (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))))
 Case conversion may be inaccurate. Consider using '#align symplectic_group.inv_left_mul_aux SymplecticGroup.inv_left_mul_auxₓ'. -/
 theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = 1 :=
   calc
@@ -320,7 +320,7 @@ theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) (Inv.inv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (SymplecticGroup.Matrix.SymplecticGroup.hasInv.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasInv.{u1, u2} (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) A))
 but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))), Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Inv.inv.{max u2 u1} (Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.hasInv.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.inv.{u2, u1} (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) A))
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))), Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Inv.inv.{max u2 u1} (Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.hasInv.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.inv.{u2, u1} (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) A))
 Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_inv' SymplecticGroup.coe_inv'ₓ'. -/
 theorem coe_inv' (A : symplecticGroup l R) : (↑A⁻¹ : Matrix (Sum l l) (Sum l l) R) = A⁻¹ :=
   by
@@ -332,7 +332,7 @@ theorem coe_inv' (A : symplecticGroup l R) : (↑A⁻¹ : Matrix (Sum l l) (Sum
 lean 3 declaration is
   forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] (A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R), (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasInv.{u1, u2} (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) A) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)))
 but is expected to have type
-  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R), (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.inv.{u2, u1} (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) A) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)))
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R), (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.inv.{u2, u1} (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) A) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)))
 Case conversion may be inaccurate. Consider using '#align symplectic_group.inv_eq_symplectic_inv SymplecticGroup.inv_eq_symplectic_invₓ'. -/
 theorem inv_eq_symplectic_inv (A : Matrix (Sum l l) (Sum l l) R) (hA : A ∈ symplecticGroup l R) :
     A⁻¹ = (-J l R) ⬝ Aᵀ ⬝ J l R :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Matej Penciak, Moritz Doll, Fabien Clery
 
 ! This file was ported from Lean 3 source module linear_algebra.symplectic_group
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit ef55335933293309ff8c0b1d20ffffeecbe5c39f
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.LinearAlgebra.Matrix.NonsingularInverse
 /-!
 # The Symplectic Group
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines the symplectic group and proves elementary properties.
 
 ## Main Definitions
Diff
@@ -36,36 +36,62 @@ variable (l) [DecidableEq l] (R) [CommRing R]
 
 section JMatrixLemmas
 
+#print Matrix.J /-
 /-- The matrix defining the canonical skew-symmetric bilinear form. -/
-def j : Matrix (Sum l l) (Sum l l) R :=
+def J : Matrix (Sum l l) (Sum l l) R :=
   Matrix.fromBlocks 0 (-1) 1 0
-#align matrix.J Matrix.j
+#align matrix.J Matrix.J
+-/
 
+/- warning: matrix.J_transpose -> Matrix.J_transpose is a dubious translation:
+lean 3 declaration is
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))
+but is expected to have type
+  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : CommRing.{u1} R], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_2))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))
+Case conversion may be inaccurate. Consider using '#align matrix.J_transpose Matrix.J_transposeₓ'. -/
 @[simp]
-theorem j_transpose : (j l R)ᵀ = -j l R :=
+theorem J_transpose : (J l R)ᵀ = -J l R :=
   by
   rw [J, from_blocks_transpose, ← neg_one_smul R (from_blocks _ _ _ _), from_blocks_smul,
     Matrix.transpose_zero, Matrix.transpose_one, transpose_neg]
   simp [from_blocks]
-#align matrix.J_transpose Matrix.j_transpose
+#align matrix.J_transpose Matrix.J_transpose
 
 variable [Fintype l]
 
-theorem j_squared : j l R ⬝ j l R = -1 :=
+/- warning: matrix.J_squared -> Matrix.J_squared is a dubious translation:
+lean 3 declaration is
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_2))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasOne.{u2, u1} (Sum.{u1, u1} l l) R (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2)))))) (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))))))
+but is expected to have type
+  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : CommRing.{u1} R] [_inst_3 : Fintype.{u2} l], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_3 _inst_3) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_2)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_2))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_2))) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.one.{u1, u2} (Sum.{u2, u2} l l) R (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_2)))))))
+Case conversion may be inaccurate. Consider using '#align matrix.J_squared Matrix.J_squaredₓ'. -/
+theorem J_squared : J l R ⬝ J l R = -1 :=
   by
   rw [J, from_blocks_multiply]
   simp only [Matrix.zero_mul, Matrix.neg_mul, zero_add, neg_zero, Matrix.one_mul, add_zero]
   rw [← neg_zero, ← Matrix.fromBlocks_neg, ← from_blocks_one]
-#align matrix.J_squared Matrix.j_squared
-
-theorem j_inv : (j l R)⁻¹ = -j l R :=
+#align matrix.J_squared Matrix.J_squared
+
+/- warning: matrix.J_inv -> Matrix.J_inv is a dubious translation:
+lean 3 declaration is
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasInv.{u1, u2} (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_2) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))
+but is expected to have type
+  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : CommRing.{u1} R] [_inst_3 : Fintype.{u2} l], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.inv.{u2, u1} (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_3 _inst_3) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_2) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_2))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))
+Case conversion may be inaccurate. Consider using '#align matrix.J_inv Matrix.J_invₓ'. -/
+theorem J_inv : (J l R)⁻¹ = -J l R :=
   by
   refine' Matrix.inv_eq_right_inv _
   rw [Matrix.mul_neg, J_squared]
   exact neg_neg 1
-#align matrix.J_inv Matrix.j_inv
-
-theorem j_det_mul_j_det : det (j l R) * det (j l R) = 1 :=
+#align matrix.J_inv Matrix.J_inv
+
+/- warning: matrix.J_det_mul_J_det -> Matrix.J_det_mul_J_det is a dubious translation:
+lean 3 declaration is
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ u2} R (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_2)))) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))) (OfNat.ofNat.{u2} R 1 (OfNat.mk.{u2} R 1 (One.one.{u2} R (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_2))))))))
+but is expected to have type
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Eq.{succ u2} R (HMul.hMul.{u2, u2, u2} R R R (instHMul.{u2} R (NonUnitalNonAssocRing.toMul.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))))) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2)) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) R _inst_2 (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2))) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (NonAssocRing.toOne.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align matrix.J_det_mul_J_det Matrix.J_det_mul_J_detₓ'. -/
+theorem J_det_mul_J_det : det (J l R) * det (J l R) = 1 :=
   by
   rw [← det_mul, J_squared]
   rw [← one_smul R (-1 : Matrix _ _ R)]
@@ -73,20 +99,28 @@ theorem j_det_mul_j_det : det (j l R) * det (j l R) = 1 :=
   simp only [Fintype.card_sum, det_one, mul_one]
   apply Even.neg_one_pow
   exact even_add_self _
-#align matrix.J_det_mul_J_det Matrix.j_det_mul_j_det
+#align matrix.J_det_mul_J_det Matrix.J_det_mul_J_det
 
-theorem isUnit_det_j : IsUnit (det (j l R)) :=
-  isUnit_iff_exists_inv.mpr ⟨det (j l R), j_det_mul_j_det _ _⟩
-#align matrix.is_unit_det_J Matrix.isUnit_det_j
+#print Matrix.isUnit_det_J /-
+theorem isUnit_det_J : IsUnit (det (J l R)) :=
+  isUnit_iff_exists_inv.mpr ⟨det (J l R), J_det_mul_J_det _ _⟩
+#align matrix.is_unit_det_J Matrix.isUnit_det_J
+-/
 
 end JMatrixLemmas
 
 variable [Fintype l]
 
+/- warning: matrix.symplectic_group -> Matrix.symplecticGroup is a dubious translation:
+lean 3 declaration is
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Sum.fintype.{u1, u1} l l _inst_3 _inst_3) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))
+but is expected to have type
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : CommRing.{u2} R] [_inst_3 : Fintype.{u1} l], Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_2))) (instFintypeSum.{u1, u1} l l _inst_3 _inst_3) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))
+Case conversion may be inaccurate. Consider using '#align matrix.symplectic_group Matrix.symplecticGroupₓ'. -/
 /-- The group of symplectic matrices over a ring `R`. -/
 def symplecticGroup : Submonoid (Matrix (Sum l l) (Sum l l) R)
     where
-  carrier := { A | A ⬝ j l R ⬝ Aᵀ = j l R }
+  carrier := { A | A ⬝ J l R ⬝ Aᵀ = J l R }
   mul_mem' := by
     intro a b ha hb
     simp only [mul_eq_mul, Set.mem_setOf_eq, transpose_mul] at *
@@ -103,10 +137,22 @@ variable {l} {R} [DecidableEq l] [Fintype l] [CommRing R]
 
 open Matrix
 
+/- warning: symplectic_group.mem_iff -> SymplecticGroup.mem_iff is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) A (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
+but is expected to have type
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) A (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
+Case conversion may be inaccurate. Consider using '#align symplectic_group.mem_iff SymplecticGroup.mem_iffₓ'. -/
 theorem mem_iff {A : Matrix (Sum l l) (Sum l l) R} :
-    A ∈ symplecticGroup l R ↔ A ⬝ j l R ⬝ Aᵀ = j l R := by simp [symplectic_group]
+    A ∈ symplecticGroup l R ↔ A ⬝ J l R ⬝ Aᵀ = J l R := by simp [symplectic_group]
 #align symplectic_group.mem_iff SymplecticGroup.mem_iff
 
+/- warning: symplectic_group.coe_matrix -> SymplecticGroup.coeMatrix is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R)
+but is expected to have type
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Coe.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (fun (x : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R)
+Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_matrix SymplecticGroup.coeMatrixₓ'. -/
 instance coeMatrix : Coe (symplecticGroup l R) (Matrix (Sum l l) (Sum l l) R) := by infer_instance
 #align symplectic_group.coe_matrix SymplecticGroup.coeMatrix
 
@@ -114,34 +160,64 @@ section SymplecticJ
 
 variable (l) (R)
 
-theorem j_mem : j l R ∈ symplecticGroup l R :=
+/- warning: symplectic_group.J_mem -> SymplecticGroup.J_mem is a dubious translation:
+lean 3 declaration is
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)
+but is expected to have type
+  forall (l : Type.{u2}) (R : Type.{u1}) [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R], Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)
+Case conversion may be inaccurate. Consider using '#align symplectic_group.J_mem SymplecticGroup.J_memₓ'. -/
+theorem J_mem : J l R ∈ symplecticGroup l R :=
   by
   rw [mem_iff, J, from_blocks_multiply, from_blocks_transpose, from_blocks_multiply]
   simp
-#align symplectic_group.J_mem SymplecticGroup.j_mem
-
+#align symplectic_group.J_mem SymplecticGroup.J_mem
+
+/- warning: symplectic_group.sym_J -> SymplecticGroup.symJ is a dubious translation:
+lean 3 declaration is
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)
+but is expected to have type
+  forall (l : Type.{u1}) (R : Type.{u2}) [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Subtype.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (fun (x : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) => Membership.mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u1 u2, max u1 u2} (Submonoid.{max u2 u1} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.instSetLikeSubmonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (instFintypeSum.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.instDecidableEqSum.{u1, u1} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+Case conversion may be inaccurate. Consider using '#align symplectic_group.sym_J SymplecticGroup.symJₓ'. -/
 /-- The canonical skew-symmetric matrix as an element in the symplectic group. -/
 def symJ : symplecticGroup l R :=
-  ⟨j l R, j_mem l R⟩
+  ⟨J l R, J_mem l R⟩
 #align symplectic_group.sym_J SymplecticGroup.symJ
 
 variable {l} {R}
 
+/- warning: symplectic_group.coe_J -> SymplecticGroup.coe_J is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R], Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) (SymplecticGroup.symJ.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)
+but is expected to have type
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R], Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.symJ.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)
+Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_J SymplecticGroup.coe_Jₓ'. -/
 @[simp]
-theorem coe_j : ↑(symJ l R) = j l R :=
+theorem coe_J : ↑(symJ l R) = J l R :=
   rfl
-#align symplectic_group.coe_J SymplecticGroup.coe_j
+#align symplectic_group.coe_J SymplecticGroup.coe_J
 
 end SymplecticJ
 
 variable {R} {A : Matrix (Sum l l) (Sum l l) R}
 
+/- warning: symplectic_group.neg_mem -> SymplecticGroup.neg_mem is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) A) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+but is expected to have type
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+Case conversion may be inaccurate. Consider using '#align symplectic_group.neg_mem SymplecticGroup.neg_memₓ'. -/
 theorem neg_mem (h : A ∈ symplecticGroup l R) : -A ∈ symplecticGroup l R :=
   by
   rw [mem_iff] at h⊢
   simp [h]
 #align symplectic_group.neg_mem SymplecticGroup.neg_mem
 
+/- warning: symplectic_group.symplectic_det -> SymplecticGroup.symplectic_det is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (IsUnit.{u2} R (Ring.toMonoid.{u2} R (CommRing.toRing.{u2} R _inst_3)) (Matrix.det.{u2, u1} (Sum.{u1, u1} l l) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) R _inst_3 A))
+but is expected to have type
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (IsUnit.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (Matrix.det.{u1, u2} (Sum.{u2, u2} l l) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) R _inst_3 A))
+Case conversion may be inaccurate. Consider using '#align symplectic_group.symplectic_det SymplecticGroup.symplectic_detₓ'. -/
 theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
   by
   rw [isUnit_iff_exists_inv]
@@ -155,6 +231,12 @@ theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A :=
   exact hA
 #align symplectic_group.symplectic_det SymplecticGroup.symplectic_det
 
+/- warning: symplectic_group.transpose_mem -> SymplecticGroup.transpose_mem is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+but is expected to have type
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+Case conversion may be inaccurate. Consider using '#align symplectic_group.transpose_mem SymplecticGroup.transpose_memₓ'. -/
 theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGroup l R :=
   by
   rw [mem_iff] at hA⊢
@@ -176,45 +258,81 @@ theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGrou
     
 #align symplectic_group.transpose_mem SymplecticGroup.transpose_mem
 
+/- warning: symplectic_group.transpose_mem_iff -> SymplecticGroup.transpose_mem_iff is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+but is expected to have type
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))
+Case conversion may be inaccurate. Consider using '#align symplectic_group.transpose_mem_iff SymplecticGroup.transpose_mem_iffₓ'. -/
 @[simp]
 theorem transpose_mem_iff : Aᵀ ∈ symplecticGroup l R ↔ A ∈ symplecticGroup l R :=
   ⟨fun hA => by simpa using transpose_mem hA, transpose_mem⟩
 #align symplectic_group.transpose_mem_iff SymplecticGroup.transpose_mem_iff
 
-theorem mem_iff' : A ∈ symplecticGroup l R ↔ Aᵀ ⬝ j l R ⬝ A = j l R := by
+/- warning: symplectic_group.mem_iff' -> SymplecticGroup.mem_iff' is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, Iff (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
+but is expected to have type
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, Iff (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
+Case conversion may be inaccurate. Consider using '#align symplectic_group.mem_iff' SymplecticGroup.mem_iff'ₓ'. -/
+theorem mem_iff' : A ∈ symplecticGroup l R ↔ Aᵀ ⬝ J l R ⬝ A = J l R := by
   rw [← transpose_mem_iff, mem_iff, transpose_transpose]
 #align symplectic_group.mem_iff' SymplecticGroup.mem_iff'
 
 instance : Inv (symplecticGroup l R)
     where inv A :=
-    ⟨(-j l R) ⬝ (A : Matrix (Sum l l) (Sum l l) R)ᵀ ⬝ j l R,
-      mul_mem (mul_mem (neg_mem <| j_mem _ _) <| transpose_mem A.2) <| j_mem _ _⟩
-
-theorem coe_inv (A : symplecticGroup l R) : (↑A⁻¹ : Matrix _ _ _) = (-j l R) ⬝ (↑A)ᵀ ⬝ j l R :=
+    ⟨(-J l R) ⬝ (A : Matrix (Sum l l) (Sum l l) R)ᵀ ⬝ J l R,
+      mul_mem (mul_mem (neg_mem <| J_mem _ _) <| transpose_mem A.2) <| J_mem _ _⟩
+
+/- warning: symplectic_group.coe_inv -> SymplecticGroup.coe_inv is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) (Inv.inv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (SymplecticGroup.Matrix.SymplecticGroup.hasInv.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) A))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
+but is expected to have type
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))), Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Inv.inv.{max u2 u1} (Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.hasInv.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) A))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3))
+Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_inv SymplecticGroup.coe_invₓ'. -/
+theorem coe_inv (A : symplecticGroup l R) : (↑A⁻¹ : Matrix _ _ _) = (-J l R) ⬝ (↑A)ᵀ ⬝ J l R :=
   rfl
 #align symplectic_group.coe_inv SymplecticGroup.coe_inv
 
-theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -j l R ⬝ Aᵀ ⬝ j l R ⬝ A = 1 :=
+/- warning: symplectic_group.inv_left_mul_aux -> SymplecticGroup.inv_left_mul_aux is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] {A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R}, (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A)) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasOne.{u2, u1} (Sum.{u1, u1} l l) R (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) (MulZeroClass.toHasZero.{u2} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (AddMonoidWithOne.toOne.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))))))
+but is expected to have type
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] {A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R}, (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) A)) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.one.{u1, u2} (Sum.{u2, u2} l l) R (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (NonAssocRing.toOne.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))
+Case conversion may be inaccurate. Consider using '#align symplectic_group.inv_left_mul_aux SymplecticGroup.inv_left_mul_auxₓ'. -/
+theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = 1 :=
   calc
-    -j l R ⬝ Aᵀ ⬝ j l R ⬝ A = (-j l R) ⬝ (Aᵀ ⬝ j l R ⬝ A) := by
+    -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = (-J l R) ⬝ (Aᵀ ⬝ J l R ⬝ A) := by
       simp only [Matrix.mul_assoc, Matrix.neg_mul]
-    _ = (-j l R) ⬝ j l R := by
+    _ = (-J l R) ⬝ J l R := by
       rw [mem_iff'] at hA
       rw [hA]
-    _ = (-1 : R) • j l R ⬝ j l R := by simp only [Matrix.neg_mul, neg_smul, one_smul]
+    _ = (-1 : R) • J l R ⬝ J l R := by simp only [Matrix.neg_mul, neg_smul, one_smul]
     _ = (-1 : R) • -1 := by rw [J_squared]
     _ = 1 := by simp only [neg_smul_neg, one_smul]
     
 #align symplectic_group.inv_left_mul_aux SymplecticGroup.inv_left_mul_aux
 
+/- warning: symplectic_group.coe_inv' -> SymplecticGroup.coe_inv' is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] (A : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)), Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) (Inv.inv.{max u1 u2} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (SymplecticGroup.Matrix.SymplecticGroup.hasInv.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasInv.{u1, u2} (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) ((fun (a : Type.{max u1 u2}) (b : Type.{max u1 u2}) [self : HasLiftT.{succ (max u1 u2), succ (max u1 u2)} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (HasLiftT.mk.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (CoeTCₓ.coe.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (coeBase.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) Type.{max u1 u2} (SetLike.hasCoeToSort.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) l (fun (a : l) (b : l) => (fun (a : l) (b : l) => _inst_1 a b) a b) a b)))))) (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (SymplecticGroup.coeMatrix.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3)))) A))
+but is expected to have type
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))), Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (Inv.inv.{max u2 u1} (Subtype.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) x (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) (SymplecticGroup.hasInv.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_2 _inst_3) A)) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.inv.{u2, u1} (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) (Subtype.val.{succ (max u2 u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (fun (x : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) => Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Set.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) (Set.instMembershipSet.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R)) x (SetLike.coe.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2))) A))
+Case conversion may be inaccurate. Consider using '#align symplectic_group.coe_inv' SymplecticGroup.coe_inv'ₓ'. -/
 theorem coe_inv' (A : symplecticGroup l R) : (↑A⁻¹ : Matrix (Sum l l) (Sum l l) R) = A⁻¹ :=
   by
   refine' (coe_inv A).trans (inv_eq_left_inv _).symm
   simp [inv_left_mul_aux, coe_inv]
 #align symplectic_group.coe_inv' SymplecticGroup.coe_inv'
 
+/- warning: symplectic_group.inv_eq_symplectic_inv -> SymplecticGroup.inv_eq_symplectic_inv is a dubious translation:
+lean 3 declaration is
+  forall {l : Type.{u1}} {R : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} l] [_inst_2 : Fintype.{u1} l] [_inst_3 : CommRing.{u2} R] (A : Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R), (Membership.Mem.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.hasMem.{max u1 u2, max u1 u2} (Submonoid.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Submonoid.setLike.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (MulZeroOneClass.toMulOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.nonAssocSemiring.{u2, u1} (Sum.{u1, u1} l l) R (NonAssocRing.toNonAssocSemiring.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{succ (max u1 u2)} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Inv.inv.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasInv.{u1, u2} (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (fun (a : Sum.{u1, u1} l l) (b : Sum.{u1, u1} l l) => Sum.decidableEq.{u1, u1} l (fun (a : l) (b : l) => _inst_1 a b) l (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) A) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Matrix.mul.{u2, u1, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (Sum.fintype.{u1, u1} l l _inst_2 _inst_2) (Distrib.toHasMul.{u2} R (Ring.toDistrib.{u2} R (CommRing.toRing.{u2} R _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} R (NonUnitalNonAssocRing.toAddCommGroup.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Neg.neg.{max u1 u2} (Matrix.{u1, u1, u2} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R) (Matrix.hasNeg.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R (SubNegMonoid.toHasNeg.{u2} R (AddGroup.toSubNegMonoid.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u2, u1, u1} (Sum.{u1, u1} l l) (Sum.{u1, u1} l l) R A)) (Matrix.J.{u1, u2} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)))
+but is expected to have type
+  forall {l : Type.{u2}} {R : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} l] [_inst_2 : Fintype.{u2} l] [_inst_3 : CommRing.{u1} R] (A : Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R), (Membership.mem.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (SetLike.instMembership.{max u2 u1, max u2 u1} (Submonoid.{max u1 u2} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b))))) (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Submonoid.instSetLikeSubmonoid.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (MulZeroOneClass.toMulOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (NonAssocSemiring.toMulZeroOneClass.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.nonAssocSemiring.{u1, u2} (Sum.{u2, u2} l l) R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))) (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b)))))) A (Matrix.symplecticGroup.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3 _inst_2)) -> (Eq.{max (succ u2) (succ u1)} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Inv.inv.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.inv.{u2, u1} (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (fun (a : Sum.{u2, u2} l l) (b : Sum.{u2, u2} l l) => Sum.instDecidableEqSum.{u2, u2} l l (fun (a : l) (b : l) => _inst_1 a b) (fun (a : l) (b : l) => _inst_1 a b) a b) _inst_3) A) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Matrix.mul.{u1, u2, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (instFintypeSum.{u2, u2} l l _inst_2 _inst_2) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Neg.neg.{max u2 u1} (Matrix.{u2, u2, u1} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R) (Matrix.neg.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)) (Matrix.transpose.{u1, u2, u2} (Sum.{u2, u2} l l) (Sum.{u2, u2} l l) R A)) (Matrix.J.{u2, u1} l R (fun (a : l) (b : l) => _inst_1 a b) _inst_3)))
+Case conversion may be inaccurate. Consider using '#align symplectic_group.inv_eq_symplectic_inv SymplecticGroup.inv_eq_symplectic_invₓ'. -/
 theorem inv_eq_symplectic_inv (A : Matrix (Sum l l) (Sum l l) R) (hA : A ∈ symplecticGroup l R) :
-    A⁻¹ = (-j l R) ⬝ Aᵀ ⬝ j l R :=
+    A⁻¹ = (-J l R) ⬝ Aᵀ ⬝ J l R :=
   inv_eq_left_inv (by simp only [Matrix.neg_mul, inv_left_mul_aux hA])
 #align symplectic_group.inv_eq_symplectic_inv SymplecticGroup.inv_eq_symplectic_inv
 

Changes in mathlib4

mathlib3
mathlib4
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
@@ -49,7 +49,7 @@ set_option linter.uppercaseLean3 false in
 
 variable [Fintype l]
 
-theorem J_squared : J l R ⬝ J l R = -1 := by
+theorem J_squared : J l R * J l R = -1 := by
   rw [J, fromBlocks_multiply]
   simp only [Matrix.zero_mul, Matrix.neg_mul, zero_add, neg_zero, Matrix.one_mul, add_zero]
   rw [← neg_zero, ← Matrix.fromBlocks_neg, ← fromBlocks_one]
@@ -82,9 +82,9 @@ variable [Fintype l]
 
 /-- The group of symplectic matrices over a ring `R`. -/
 def symplecticGroup : Submonoid (Matrix (Sum l l) (Sum l l) R) where
-  carrier := { A | A ⬝ J l R ⬝ Aᵀ = J l R }
+  carrier := { A | A * J l R * Aᵀ = J l R }
   mul_mem' {a b} ha hb := by
-    simp only [mul_eq_mul, Set.mem_setOf_eq, transpose_mul] at *
+    simp only [Set.mem_setOf_eq, transpose_mul] at *
     rw [← Matrix.mul_assoc, a.mul_assoc, a.mul_assoc, hb]
     exact ha
   one_mem' := by simp
@@ -99,7 +99,7 @@ variable [DecidableEq l] [Fintype l] [CommRing R]
 open Matrix
 
 theorem mem_iff {A : Matrix (Sum l l) (Sum l l) R} :
-    A ∈ symplecticGroup l R ↔ A ⬝ J l R ⬝ Aᵀ = J l R := by simp [symplecticGroup]
+    A ∈ symplecticGroup l R ↔ A * J l R * Aᵀ = J l R := by simp [symplecticGroup]
 #align symplectic_group.mem_iff SymplecticGroup.mem_iff
 
 -- Porting note: Previous proof was `by infer_instance`
@@ -159,11 +159,11 @@ theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGrou
     rw [Matrix.det_transpose]
     exact huA
   calc
-    Aᵀ ⬝ J l R ⬝ A = (-Aᵀ) ⬝ (J l R)⁻¹ ⬝ A := by
+    Aᵀ * J l R * A = (-Aᵀ) * (J l R)⁻¹ * A := by
       rw [J_inv]
       simp
-    _ = (-Aᵀ) ⬝ (A ⬝ J l R ⬝ Aᵀ)⁻¹ ⬝ A := by rw [hA]
-    _ = (-Aᵀ ⬝ (Aᵀ⁻¹ ⬝ (J l R)⁻¹)) ⬝ A⁻¹ ⬝ A := by
+    _ = (-Aᵀ) * (A * J l R * Aᵀ)⁻¹ * A := by rw [hA]
+    _ = -(Aᵀ * (Aᵀ⁻¹ * (J l R)⁻¹)) * A⁻¹ * A := by
       simp only [Matrix.mul_inv_rev, Matrix.mul_assoc, Matrix.neg_mul]
     _ = -(J l R)⁻¹ := by
       rw [mul_nonsing_inv_cancel_left _ _ huAT, nonsing_inv_mul_cancel_right _ _ huA]
@@ -175,25 +175,25 @@ theorem transpose_mem_iff : Aᵀ ∈ symplecticGroup l R ↔ A ∈ symplecticGro
   ⟨fun hA => by simpa using transpose_mem hA, transpose_mem⟩
 #align symplectic_group.transpose_mem_iff SymplecticGroup.transpose_mem_iff
 
-theorem mem_iff' : A ∈ symplecticGroup l R ↔ Aᵀ ⬝ J l R ⬝ A = J l R := by
+theorem mem_iff' : A ∈ symplecticGroup l R ↔ Aᵀ * J l R * A = J l R := by
   rw [← transpose_mem_iff, mem_iff, transpose_transpose]
 #align symplectic_group.mem_iff' SymplecticGroup.mem_iff'
 
 instance hasInv : Inv (symplecticGroup l R) where
-  inv A := ⟨(-J l R) ⬝ (A : Matrix (Sum l l) (Sum l l) R)ᵀ ⬝ J l R,
+  inv A := ⟨(-J l R) * (A : Matrix (Sum l l) (Sum l l) R)ᵀ * J l R,
       mul_mem (mul_mem (neg_mem <| J_mem _ _) <| transpose_mem A.2) <| J_mem _ _⟩
 
-theorem coe_inv (A : symplecticGroup l R) : (↑A⁻¹ : Matrix _ _ _) = (-J l R) ⬝ (↑A)ᵀ ⬝ J l R := rfl
+theorem coe_inv (A : symplecticGroup l R) : (↑A⁻¹ : Matrix _ _ _) = (-J l R) * (↑A)ᵀ * J l R := rfl
 #align symplectic_group.coe_inv SymplecticGroup.coe_inv
 
-theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = 1 :=
+theorem inv_left_mul_aux (hA : A ∈ symplecticGroup l R) : -(J l R * Aᵀ * J l R * A) = 1 :=
   calc
-    -J l R ⬝ Aᵀ ⬝ J l R ⬝ A = (-J l R) ⬝ (Aᵀ ⬝ J l R ⬝ A) := by
+    -(J l R * Aᵀ * J l R * A) = (-J l R) * (Aᵀ * J l R * A) := by
       simp only [Matrix.mul_assoc, Matrix.neg_mul]
-    _ = (-J l R) ⬝ J l R := by
+    _ = (-J l R) * J l R := by
       rw [mem_iff'] at hA
       rw [hA]
-    _ = (-1 : R) • J l R ⬝ J l R := by simp only [Matrix.neg_mul, neg_smul, one_smul]
+    _ = (-1 : R) • (J l R * J l R) := by simp only [Matrix.neg_mul, neg_smul, one_smul]
     _ = (-1 : R) • (-1 : Matrix _ _ _) := by rw [J_squared]
     _ = 1 := by simp only [neg_smul_neg, one_smul]
 #align symplectic_group.inv_left_mul_aux SymplecticGroup.inv_left_mul_aux
@@ -204,7 +204,7 @@ theorem coe_inv' (A : symplecticGroup l R) : (↑A⁻¹ : Matrix (Sum l l) (Sum
 #align symplectic_group.coe_inv' SymplecticGroup.coe_inv'
 
 theorem inv_eq_symplectic_inv (A : Matrix (Sum l l) (Sum l l) R) (hA : A ∈ symplecticGroup l R) :
-    A⁻¹ = (-J l R) ⬝ Aᵀ ⬝ J l R :=
+    A⁻¹ = (-J l R) * Aᵀ * J l R :=
   inv_eq_left_inv (by simp only [Matrix.neg_mul, inv_left_mul_aux hA])
 #align symplectic_group.inv_eq_symplectic_inv SymplecticGroup.inv_eq_symplectic_inv
 
@@ -213,7 +213,6 @@ instance : Group (symplecticGroup l R) :=
     mul_left_inv := fun A => by
       apply Subtype.ext
       simp only [Submonoid.coe_one, Submonoid.coe_mul, Matrix.neg_mul, coe_inv]
-      rw [Matrix.mul_eq_mul, Matrix.neg_mul]
       exact inv_left_mul_aux A.2 }
 
 end SymplecticGroup
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
@@ -25,7 +25,7 @@ This file defines the symplectic group and proves elementary properties.
 
 open Matrix
 
-variable {l R : Type _}
+variable {l R : Type*}
 
 namespace Matrix
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Matej Penciak. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Matej Penciak, Moritz Doll, Fabien Clery
-
-! This file was ported from Lean 3 source module linear_algebra.symplectic_group
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.LinearAlgebra.Matrix.NonsingularInverse
 
+#align_import linear_algebra.symplectic_group from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
 /-!
 # The Symplectic Group
 
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -138,7 +138,7 @@ end SymplecticJ
 variable {A : Matrix (Sum l l) (Sum l l) R}
 
 theorem neg_mem (h : A ∈ symplecticGroup l R) : -A ∈ symplecticGroup l R := by
-  rw [mem_iff] at h⊢
+  rw [mem_iff] at h ⊢
   simp [h]
 #align symplectic_group.neg_mem SymplecticGroup.neg_mem
 
@@ -155,7 +155,7 @@ theorem symplectic_det (hA : A ∈ symplecticGroup l R) : IsUnit <| det A := by
 #align symplectic_group.symplectic_det SymplecticGroup.symplectic_det
 
 theorem transpose_mem (hA : A ∈ symplecticGroup l R) : Aᵀ ∈ symplecticGroup l R := by
-  rw [mem_iff] at hA⊢
+  rw [mem_iff] at hA ⊢
   rw [transpose_transpose]
   have huA := symplectic_det hA
   have huAT : IsUnit Aᵀ.det := by
chore: reenable eta, bump to nightly 2023-05-16 (#3414)

Now that leanprover/lean4#2210 has been merged, this PR:

  • removes all the set_option synthInstance.etaExperiment true commands (and some etaExperiment% term elaborators)
  • removes many but not quite all set_option maxHeartbeats commands
  • makes various other changes required to cope with leanprover/lean4#2210.

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>

Diff
@@ -44,8 +44,8 @@ set_option linter.uppercaseLean3 false in
 
 @[simp]
 theorem J_transpose : (J l R)ᵀ = -J l R := by
-  rw [J, fromBlocks_transpose, ← neg_one_smul R (fromBlocks _ _ _ _), fromBlocks_smul,
-    Matrix.transpose_zero, Matrix.transpose_one, transpose_neg]
+  rw [J, fromBlocks_transpose, ← neg_one_smul R (fromBlocks _ _ _ _ : Matrix (l ⊕ l) (l ⊕ l) R),
+    fromBlocks_smul, Matrix.transpose_zero, Matrix.transpose_one, transpose_neg]
   simp [fromBlocks]
 set_option linter.uppercaseLean3 false in
 #align matrix.J_transpose Matrix.J_transpose
feat: port LinearAlgebra.SymplecticGroup (#3696)

Dependencies 8 + 573

574 files ported (98.6%)
240848 lines ported (98.7%)
Show graph

The unported dependencies are