analysis.normed_space.M_structureMathlib.Analysis.NormedSpace.MStructure

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)

(last sync)

fix(*): missing universe polymorphism (#18644)

These are all just typo fixes, no proof adaptations.

This deliberately leaves alone things related to category theory and algebraic geometry, as there the lack of polymorphism is likely deliberate.

Diff
@@ -62,7 +62,7 @@ M-summand, M-projection, L-summand, L-projection, M-ideal, M-structure
 -/
 
 variables (X : Type*) [normed_add_comm_group X]
-variables {M : Type} [ring M] [module M X]
+variables {M : Type*} [ring M] [module M X]
 /--
 A projection on a normed space `X` is said to be an L-projection if, for all `x` in `X`,
 $\|x\| = \|P x\| + \|(1 - P) x\|$.

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -165,7 +165,7 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
   refine' le_antisymm _ _
   ·
     calc
-      ‖x‖ = ‖(P * Q) • x + (x - (P * Q) • x)‖ := by rw [add_sub_cancel'_right ((P * Q) • x) x]
+      ‖x‖ = ‖(P * Q) • x + (x - (P * Q) • x)‖ := by rw [add_sub_cancel ((P * Q) • x) x]
       _ ≤ ‖(P * Q) • x‖ + ‖x - (P * Q) • x‖ := by apply norm_add_le
       _ = ‖(P * Q) • x‖ + ‖(1 - P * Q) • x‖ := by rw [sub_smul, one_smul]
   ·
@@ -322,7 +322,7 @@ instance [FaithfulSMul M X] : DistribLattice { P : M // IsLprojection X P } :=
         sub_self, add_zero]
     le_sup_right := fun P Q => by
       rw [le_def, coe_inf, coe_sup, ← add_sub, mul_add, mul_sub, Commute.eq (Commute P.prop Q.prop),
-        ← mul_assoc, Q.prop.proj.eq, add_sub_cancel'_right]
+        ← mul_assoc, Q.prop.proj.eq, add_sub_cancel]
     sup_le := fun P Q R =>
       by
       rw [le_def, le_def, le_def, coe_inf, coe_inf, coe_sup, coe_inf, coe_sup, ← add_sub, add_mul,
@@ -361,7 +361,7 @@ instance [FaithfulSMul M X] : BooleanAlgebra { P : M // IsLprojection X P } :=
     top_le_sup_compl := fun P =>
       (Subtype.ext
           (by
-            rw [coe_top, coe_sup, coe_compl, add_sub_cancel'_right, ← coe_compl, mul_compl_self,
+            rw [coe_top, coe_sup, coe_compl, add_sub_cancel, ← coe_compl, mul_compl_self,
               sub_zero])).le
     sdiff_eq := fun P Q => Subtype.ext <| by rw [coe_sdiff, ← coe_compl, coe_inf] }
 
Diff
@@ -139,19 +139,19 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
           have :=
             add_le_add_right (norm_le_insert' (R • x) (R • P • R • x)) (2 • ‖(1 - R) • P • R • x‖)
           simpa only [mul_smul, sub_smul, one_smul] using this
-    rw [GE.ge] at e1 
-    nth_rw_rhs 1 [← add_zero ‖R • x‖] at e1 
-    rw [add_le_add_iff_left, two_smul, ← two_mul] at e1 
+    rw [GE.ge] at e1
+    nth_rw_rhs 1 [← add_zero ‖R • x‖] at e1
+    rw [add_le_add_iff_left, two_smul, ← two_mul] at e1
     rw [le_antisymm_iff]
     refine' ⟨_, norm_nonneg _⟩
-    rwa [← MulZeroClass.mul_zero (2 : ℝ), mul_le_mul_left (show (0 : ℝ) < 2 by norm_num)] at e1 
+    rwa [← MulZeroClass.mul_zero (2 : ℝ), mul_le_mul_left (show (0 : ℝ) < 2 by norm_num)] at e1
   have QP_eq_QPQ : Q * P = Q * P * Q :=
     by
     have e1 : P * (1 - Q) = P * (1 - Q) - (Q * P - Q * P * Q) :=
       calc
         P * (1 - Q) = (1 - Q) * P * (1 - Q) := by rw [PR_eq_RPR (1 - Q) h₂.Lcomplement]
         _ = P * (1 - Q) - (Q * P - Q * P * Q) := by noncomm_ring
-    rwa [eq_sub_iff_add_eq, add_right_eq_self, sub_eq_zero] at e1 
+    rwa [eq_sub_iff_add_eq, add_right_eq_self, sub_eq_zero] at e1
   show P * Q = Q * P; · rw [QP_eq_QPQ, PR_eq_RPR Q h₂]
 #align is_Lprojection.commute IsLprojection.commute
 -/
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2022 Christopher Hoskin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Christopher Hoskin
 -/
-import Mathbin.Algebra.Ring.Idempotents
-import Mathbin.Tactic.NoncommRing
-import Mathbin.Analysis.Normed.Group.Basic
+import Algebra.Ring.Idempotents
+import Tactic.NoncommRing
+import Analysis.Normed.Group.Basic
 
 #align_import analysis.normed_space.M_structure from "leanprover-community/mathlib"@"d11893b411025250c8e61ff2f12ccbd7ee35ab15"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2022 Christopher Hoskin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Christopher Hoskin
-
-! This file was ported from Lean 3 source module analysis.normed_space.M_structure
-! leanprover-community/mathlib commit d11893b411025250c8e61ff2f12ccbd7ee35ab15
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Ring.Idempotents
 import Mathbin.Tactic.NoncommRing
 import Mathbin.Analysis.Normed.Group.Basic
 
+#align_import analysis.normed_space.M_structure from "leanprover-community/mathlib"@"d11893b411025250c8e61ff2f12ccbd7ee35ab15"
+
 /-!
 # M-structure
 
Diff
@@ -99,14 +99,19 @@ variable {X}
 
 namespace IsLprojection
 
+#print IsLprojection.Lcomplement /-
 theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
   ⟨h.proj.one_sub, fun x => by rw [add_comm, sub_sub_cancel]; exact h.Lnorm x⟩
 #align is_Lprojection.Lcomplement IsLprojection.Lcomplement
+-/
 
+#print IsLprojection.Lcomplement_iff /-
 theorem Lcomplement_iff (P : M) : IsLprojection X P ↔ IsLprojection X (1 - P) :=
   ⟨Lcomplement, fun h => sub_sub_cancel 1 P ▸ h.Lcomplement⟩
 #align is_Lprojection.Lcomplement_iff IsLprojection.Lcomplement_iff
+-/
 
+#print IsLprojection.commute /-
 theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     Commute P Q :=
   by
@@ -152,7 +157,9 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
     rwa [eq_sub_iff_add_eq, add_right_eq_self, sub_eq_zero] at e1 
   show P * Q = Q * P; · rw [QP_eq_QPQ, PR_eq_RPR Q h₂]
 #align is_Lprojection.commute IsLprojection.commute
+-/
 
+#print IsLprojection.mul /-
 theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P * Q) :=
   by
@@ -173,48 +180,59 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
       _ = ‖(P * Q) • x‖ + ‖(1 - P * Q) • x‖ := by
         rw [sub_add_sub_cancel', sub_smul, one_smul, mul_smul]
 #align is_Lprojection.mul IsLprojection.mul
+-/
 
+#print IsLprojection.join /-
 theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P + Q - P * Q) :=
   by
   convert (Lcomplement_iff _).mp (h₁.Lcomplement.mul h₂.Lcomplement) using 1
   noncomm_ring
 #align is_Lprojection.join IsLprojection.join
+-/
 
 instance : HasCompl { f : M // IsLprojection X f } :=
   ⟨fun P => ⟨1 - P, P.Prop.Lcomplement⟩⟩
 
+#print IsLprojection.coe_compl /-
 @[simp]
 theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - ↑P :=
   rfl
 #align is_Lprojection.coe_compl IsLprojection.coe_compl
+-/
 
 instance [FaithfulSMul M X] : Inf { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P * Q, P.Prop.mul Q.Prop⟩⟩
 
+#print IsLprojection.coe_inf /-
 @[simp]
 theorem coe_inf [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     ↑(P ⊓ Q) = (↑P : M) * ↑Q :=
   rfl
 #align is_Lprojection.coe_inf IsLprojection.coe_inf
+-/
 
 instance [FaithfulSMul M X] : Sup { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P + Q - P * Q, P.Prop.join Q.Prop⟩⟩
 
+#print IsLprojection.coe_sup /-
 @[simp]
 theorem coe_sup [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     ↑(P ⊔ Q) = (↑P : M) + ↑Q - ↑P * ↑Q :=
   rfl
 #align is_Lprojection.coe_sup IsLprojection.coe_sup
+-/
 
 instance [FaithfulSMul M X] : SDiff { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P * (1 - Q), P.prop.mul Q.prop.Lcomplement⟩⟩
 
+#print IsLprojection.coe_sdiff /-
 @[simp]
 theorem coe_sdiff [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     ↑(P \ Q) = (↑P : M) * (1 - ↑Q) :=
   rfl
 #align is_Lprojection.coe_sdiff IsLprojection.coe_sdiff
+-/
 
 instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
     where
@@ -223,28 +241,34 @@ instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
   le_trans P Q R h₁ h₂ := by simp only [coe_inf] at h₁ h₂ ⊢; rw [h₁, mul_assoc, ← h₂]
   le_antisymm P Q h₁ h₂ := Subtype.eq (by convert (P.prop.commute Q.prop).Eq)
 
+#print IsLprojection.le_def /-
 theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     P ≤ Q ↔ (P : M) = ↑(P ⊓ Q) :=
   Iff.rfl
 #align is_Lprojection.le_def IsLprojection.le_def
+-/
 
 instance : Zero { P : M // IsLprojection X P } :=
   ⟨⟨0,
       ⟨by rw [IsIdempotentElem, MulZeroClass.zero_mul], fun x => by
         simp only [zero_smul, norm_zero, sub_zero, one_smul, zero_add]⟩⟩⟩
 
+#print IsLprojection.coe_zero /-
 @[simp]
 theorem coe_zero : ↑(0 : { P : M // IsLprojection X P }) = (0 : M) :=
   rfl
 #align is_Lprojection.coe_zero IsLprojection.coe_zero
+-/
 
 instance : One { P : M // IsLprojection X P } :=
   ⟨⟨1, sub_zero (1 : M) ▸ (0 : { P : M // IsLprojection X P }).Prop.Lcomplement⟩⟩
 
+#print IsLprojection.coe_one /-
 @[simp]
 theorem coe_one : ↑(1 : { P : M // IsLprojection X P }) = (1 : M) :=
   rfl
 #align is_Lprojection.coe_one IsLprojection.coe_one
+-/
 
 instance [FaithfulSMul M X] : BoundedOrder { P : M // IsLprojection X P }
     where
@@ -253,26 +277,35 @@ instance [FaithfulSMul M X] : BoundedOrder { P : M // IsLprojection X P }
   bot := 0
   bot_le P := (MulZeroClass.zero_mul (P : M)).symm
 
+#print IsLprojection.coe_bot /-
 @[simp]
 theorem coe_bot [FaithfulSMul M X] :
     ↑(BoundedOrder.bot : { P : M // IsLprojection X P }) = (0 : M) :=
   rfl
 #align is_Lprojection.coe_bot IsLprojection.coe_bot
+-/
 
+#print IsLprojection.coe_top /-
 @[simp]
 theorem coe_top [FaithfulSMul M X] :
     ↑(BoundedOrder.top : { P : M // IsLprojection X P }) = (1 : M) :=
   rfl
 #align is_Lprojection.coe_top IsLprojection.coe_top
+-/
 
+#print IsLprojection.compl_mul /-
 theorem compl_mul {P : { P : M // IsLprojection X P }} {Q : M} : ↑(Pᶜ) * Q = Q - ↑P * Q := by
   rw [coe_compl, sub_mul, one_mul]
 #align is_Lprojection.compl_mul IsLprojection.compl_mul
+-/
 
+#print IsLprojection.mul_compl_self /-
 theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑(Pᶜ) = 0 := by
   rw [coe_compl, mul_sub, mul_one, P.prop.proj.eq, sub_self]
 #align is_Lprojection.mul_compl_self IsLprojection.mul_compl_self
+-/
 
+#print IsLprojection.distrib_lattice_lemma /-
 theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojection X P }} :
     ((↑P : M) + ↑(Pᶜ) * R) * (↑P + ↑Q * ↑R * ↑(Pᶜ)) = ↑P + ↑Q * ↑R * ↑(Pᶜ) := by
   rw [add_mul, mul_add, mul_add, mul_assoc (↑(Pᶜ)) (↑R) (↑Q * ↑R * ↑(Pᶜ)), ←
@@ -282,6 +315,7 @@ theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojecti
     MulZeroClass.mul_zero, zero_add, add_zero, ← mul_assoc, P.prop.proj.eq, R.prop.proj.eq, ←
     coe_inf Q, mul_assoc, ((Q ⊓ R).Prop.Commute Pᶜ.Prop).Eq, ← mul_assoc, Pᶜ.Prop.proj.Eq]
 #align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemma
+-/
 
 instance [FaithfulSMul M X] : DistribLattice { P : M // IsLprojection X P } :=
   { IsLprojection.Subtype.hasInf, IsLprojection.Subtype.hasSup,
Diff
@@ -137,7 +137,6 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
           have :=
             add_le_add_right (norm_le_insert' (R • x) (R • P • R • x)) (2 • ‖(1 - R) • P • R • x‖)
           simpa only [mul_smul, sub_smul, one_smul] using this
-        
     rw [GE.ge] at e1 
     nth_rw_rhs 1 [← add_zero ‖R • x‖] at e1 
     rw [add_le_add_iff_left, two_smul, ← two_mul] at e1 
@@ -150,7 +149,6 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
       calc
         P * (1 - Q) = (1 - Q) * P * (1 - Q) := by rw [PR_eq_RPR (1 - Q) h₂.Lcomplement]
         _ = P * (1 - Q) - (Q * P - Q * P * Q) := by noncomm_ring
-        
     rwa [eq_sub_iff_add_eq, add_right_eq_self, sub_eq_zero] at e1 
   show P * Q = Q * P; · rw [QP_eq_QPQ, PR_eq_RPR Q h₂]
 #align is_Lprojection.commute IsLprojection.commute
@@ -166,7 +164,6 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
       ‖x‖ = ‖(P * Q) • x + (x - (P * Q) • x)‖ := by rw [add_sub_cancel'_right ((P * Q) • x) x]
       _ ≤ ‖(P * Q) • x‖ + ‖x - (P * Q) • x‖ := by apply norm_add_le
       _ = ‖(P * Q) • x‖ + ‖(1 - P * Q) • x‖ := by rw [sub_smul, one_smul]
-      
   ·
     calc
       ‖x‖ = ‖P • Q • x‖ + (‖Q • x - P • Q • x‖ + ‖x - Q • x‖) := by
@@ -175,7 +172,6 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
         ((add_le_add_iff_left ‖P • Q • x‖).mpr (norm_add_le (Q • x - P • Q • x) (x - Q • x)))
       _ = ‖(P * Q) • x‖ + ‖(1 - P * Q) • x‖ := by
         rw [sub_add_sub_cancel', sub_smul, one_smul, mul_smul]
-      
 #align is_Lprojection.mul IsLprojection.mul
 
 theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
Diff
@@ -139,7 +139,7 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
           simpa only [mul_smul, sub_smul, one_smul] using this
         
     rw [GE.ge] at e1 
-    nth_rw_rhs 1 [← add_zero ‖R • x‖]  at e1 
+    nth_rw_rhs 1 [← add_zero ‖R • x‖] at e1 
     rw [add_le_add_iff_left, two_smul, ← two_mul] at e1 
     rw [le_antisymm_iff]
     refine' ⟨_, norm_nonneg _⟩
@@ -181,7 +181,7 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
 theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P + Q - P * Q) :=
   by
-  convert(Lcomplement_iff _).mp (h₁.Lcomplement.mul h₂.Lcomplement) using 1
+  convert (Lcomplement_iff _).mp (h₁.Lcomplement.mul h₂.Lcomplement) using 1
   noncomm_ring
 #align is_Lprojection.join IsLprojection.join
 
@@ -225,7 +225,7 @@ instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
   le P Q := (↑P : M) = ↑(P ⊓ Q)
   le_refl P := by simpa only [coe_inf, ← sq] using P.prop.proj.eq.symm
   le_trans P Q R h₁ h₂ := by simp only [coe_inf] at h₁ h₂ ⊢; rw [h₁, mul_assoc, ← h₂]
-  le_antisymm P Q h₁ h₂ := Subtype.eq (by convert(P.prop.commute Q.prop).Eq)
+  le_antisymm P Q h₁ h₂ := Subtype.eq (by convert (P.prop.commute Q.prop).Eq)
 
 theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     P ≤ Q ↔ (P : M) = ↑(P ⊓ Q) :=
Diff
@@ -138,12 +138,12 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
             add_le_add_right (norm_le_insert' (R • x) (R • P • R • x)) (2 • ‖(1 - R) • P • R • x‖)
           simpa only [mul_smul, sub_smul, one_smul] using this
         
-    rw [GE.ge] at e1
-    nth_rw_rhs 1 [← add_zero ‖R • x‖]  at e1
-    rw [add_le_add_iff_left, two_smul, ← two_mul] at e1
+    rw [GE.ge] at e1 
+    nth_rw_rhs 1 [← add_zero ‖R • x‖]  at e1 
+    rw [add_le_add_iff_left, two_smul, ← two_mul] at e1 
     rw [le_antisymm_iff]
     refine' ⟨_, norm_nonneg _⟩
-    rwa [← MulZeroClass.mul_zero (2 : ℝ), mul_le_mul_left (show (0 : ℝ) < 2 by norm_num)] at e1
+    rwa [← MulZeroClass.mul_zero (2 : ℝ), mul_le_mul_left (show (0 : ℝ) < 2 by norm_num)] at e1 
   have QP_eq_QPQ : Q * P = Q * P * Q :=
     by
     have e1 : P * (1 - Q) = P * (1 - Q) - (Q * P - Q * P * Q) :=
@@ -151,7 +151,7 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
         P * (1 - Q) = (1 - Q) * P * (1 - Q) := by rw [PR_eq_RPR (1 - Q) h₂.Lcomplement]
         _ = P * (1 - Q) - (Q * P - Q * P * Q) := by noncomm_ring
         
-    rwa [eq_sub_iff_add_eq, add_right_eq_self, sub_eq_zero] at e1
+    rwa [eq_sub_iff_add_eq, add_right_eq_self, sub_eq_zero] at e1 
   show P * Q = Q * P; · rw [QP_eq_QPQ, PR_eq_RPR Q h₂]
 #align is_Lprojection.commute IsLprojection.commute
 
@@ -224,7 +224,7 @@ instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
     where
   le P Q := (↑P : M) = ↑(P ⊓ Q)
   le_refl P := by simpa only [coe_inf, ← sq] using P.prop.proj.eq.symm
-  le_trans P Q R h₁ h₂ := by simp only [coe_inf] at h₁ h₂⊢; rw [h₁, mul_assoc, ← h₂]
+  le_trans P Q R h₁ h₂ := by simp only [coe_inf] at h₁ h₂ ⊢; rw [h₁, mul_assoc, ← h₂]
   le_antisymm P Q h₁ h₂ := Subtype.eq (by convert(P.prop.commute Q.prop).Eq)
 
 theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
Diff
@@ -99,32 +99,14 @@ variable {X}
 
 namespace IsLprojection
 
-/- warning: is_Lprojection.Lcomplement -> IsLprojection.Lcomplement is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) P))
-but is expected to have type
-  forall {X : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} X] {M : Type.{u1}} [_inst_2 : Ring.{u1} M] [_inst_3 : Module.{u1, u2} M X (Ring.toSemiring.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} X (NormedAddCommGroup.toAddCommGroup.{u2} X _inst_1))] {P : M}, (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u1, u1, u1} M M M (instHSub.{u1} M (Ring.toSub.{u1} M _inst_2)) (OfNat.ofNat.{u1} M 1 (One.toOfNat1.{u1} M (Semiring.toOne.{u1} M (Ring.toSemiring.{u1} M _inst_2)))) P))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement IsLprojection.Lcomplementₓ'. -/
 theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
   ⟨h.proj.one_sub, fun x => by rw [add_comm, sub_sub_cancel]; exact h.Lnorm x⟩
 #align is_Lprojection.Lcomplement IsLprojection.Lcomplement
 
-/- warning: is_Lprojection.Lcomplement_iff -> IsLprojection.Lcomplement_iff is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : M), Iff (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) P))
-but is expected to have type
-  forall {X : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} X] {M : Type.{u1}} [_inst_2 : Ring.{u1} M] [_inst_3 : Module.{u1, u2} M X (Ring.toSemiring.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} X (NormedAddCommGroup.toAddCommGroup.{u2} X _inst_1))] (P : M), Iff (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u1, u1, u1} M M M (instHSub.{u1} M (Ring.toSub.{u1} M _inst_2)) (OfNat.ofNat.{u1} M 1 (One.toOfNat1.{u1} M (Semiring.toOne.{u1} M (Ring.toSemiring.{u1} M _inst_2)))) P))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement_iff IsLprojection.Lcomplement_iffₓ'. -/
 theorem Lcomplement_iff (P : M) : IsLprojection X P ↔ IsLprojection X (1 - P) :=
   ⟨Lcomplement, fun h => sub_sub_cancel 1 P ▸ h.Lcomplement⟩
 #align is_Lprojection.Lcomplement_iff IsLprojection.Lcomplement_iff
 
-/- warning: is_Lprojection.commute -> IsLprojection.commute is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2)) P Q)
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))) P Q)
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.commute IsLprojection.commuteₓ'. -/
 theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     Commute P Q :=
   by
@@ -173,12 +155,6 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
   show P * Q = Q * P; · rw [QP_eq_QPQ, PR_eq_RPR Q h₂]
 #align is_Lprojection.commute IsLprojection.commute
 
-/- warning: is_Lprojection.mul -> IsLprojection.mul is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) P Q))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) P Q))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.mul IsLprojection.mulₓ'. -/
 theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P * Q) :=
   by
@@ -202,12 +178,6 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
       
 #align is_Lprojection.mul IsLprojection.mul
 
-/- warning: is_Lprojection.join -> IsLprojection.join is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toHasAdd.{u2} M (Ring.toDistrib.{u2} M _inst_2))) P Q) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) P Q)))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toAdd.{u2} M (NonUnitalNonAssocSemiring.toDistrib.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))))) P Q) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) P Q)))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.join IsLprojection.joinₓ'. -/
 theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P + Q - P * Q) :=
   by
@@ -218,12 +188,6 @@ theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsL
 instance : HasCompl { f : M // IsLprojection X f } :=
   ⟨fun P => ⟨1 - P, P.Prop.Lcomplement⟩⟩
 
-/- warning: is_Lprojection.coe_compl -> IsLprojection.coe_compl is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (Semiring.toOne.{u2} M (Ring.toSemiring.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_compl IsLprojection.coe_complₓ'. -/
 @[simp]
 theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - ↑P :=
   rfl
@@ -232,12 +196,6 @@ theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - 
 instance [FaithfulSMul M X] : Inf { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P * Q, P.Prop.mul Q.Prop⟩⟩
 
-/- warning: is_Lprojection.coe_inf -> IsLprojection.coe_inf is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasInf.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.inf.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_inf IsLprojection.coe_infₓ'. -/
 @[simp]
 theorem coe_inf [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     ↑(P ⊓ Q) = (↑P : M) * ↑Q :=
@@ -247,12 +205,6 @@ theorem coe_inf [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
 instance [FaithfulSMul M X] : Sup { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P + Q - P * Q, P.Prop.join Q.Prop⟩⟩
 
-/- warning: is_Lprojection.coe_sup -> IsLprojection.coe_sup is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (Sup.sup.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasSup.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toHasAdd.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Sup.sup.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.sup.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toAdd.{u2} M (NonUnitalNonAssocSemiring.toDistrib.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q)))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sup IsLprojection.coe_supₓ'. -/
 @[simp]
 theorem coe_sup [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     ↑(P ⊔ Q) = (↑P : M) + ↑Q - ↑P * ↑Q :=
@@ -262,12 +214,6 @@ theorem coe_sup [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
 instance [FaithfulSMul M X] : SDiff { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P * (1 - Q), P.prop.mul Q.prop.Lcomplement⟩⟩
 
-/- warning: is_Lprojection.coe_sdiff -> IsLprojection.coe_sdiff is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (SDiff.sdiff.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasSdiff.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (SDiff.sdiff.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.sdiff.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (Semiring.toOne.{u2} M (Ring.toSemiring.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q)))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sdiff IsLprojection.coe_sdiffₓ'. -/
 @[simp]
 theorem coe_sdiff [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     ↑(P \ Q) = (↑P : M) * (1 - ↑Q) :=
@@ -281,12 +227,6 @@ instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
   le_trans P Q R h₁ h₂ := by simp only [coe_inf] at h₁ h₂⊢; rw [h₁, mul_assoc, ← h₂]
   le_antisymm P Q h₁ h₂ := Subtype.eq (by convert(P.prop.commute Q.prop).Eq)
 
-/- warning: is_Lprojection.le_def -> IsLprojection.le_def is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toHasLe.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasInf.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.inf.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.le_def IsLprojection.le_defₓ'. -/
 theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     P ≤ Q ↔ (P : M) = ↑(P ⊓ Q) :=
   Iff.rfl
@@ -297,12 +237,6 @@ instance : Zero { P : M // IsLprojection X P } :=
       ⟨by rw [IsIdempotentElem, MulZeroClass.zero_mul], fun x => by
         simp only [zero_smul, norm_zero, sub_zero, one_smul, zero_add]⟩⟩⟩
 
-/- warning: is_Lprojection.coe_zero -> IsLprojection.coe_zero is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 0 (OfNat.mk.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.zero.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasZero.{u1, u2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))))))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.toOfNat0.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.zero.{u1, u2} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_zero IsLprojection.coe_zeroₓ'. -/
 @[simp]
 theorem coe_zero : ↑(0 : { P : M // IsLprojection X P }) = (0 : M) :=
   rfl
@@ -311,12 +245,6 @@ theorem coe_zero : ↑(0 : { P : M // IsLprojection X P }) = (0 : M) :=
 instance : One { P : M // IsLprojection X P } :=
   ⟨⟨1, sub_zero (1 : M) ▸ (0 : { P : M // IsLprojection X P }).Prop.Lcomplement⟩⟩
 
-/- warning: is_Lprojection.coe_one -> IsLprojection.coe_one is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 1 (OfNat.mk.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.one.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasOne.{u1, u2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.toOfNat1.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.one.{u1, u2} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (Semiring.toOne.{u2} M (Ring.toSemiring.{u2} M _inst_2))))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_one IsLprojection.coe_oneₓ'. -/
 @[simp]
 theorem coe_one : ↑(1 : { P : M // IsLprojection X P }) = (1 : M) :=
   rfl
@@ -329,53 +257,26 @@ instance [FaithfulSMul M X] : BoundedOrder { P : M // IsLprojection X P }
   bot := 0
   bot_le P := (MulZeroClass.zero_mul (P : M)).symm
 
-/- warning: is_Lprojection.coe_bot -> IsLprojection.coe_bot is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.bot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toHasLe.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))))))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Bot.bot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (OrderBot.toBot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderBot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_bot IsLprojection.coe_botₓ'. -/
 @[simp]
 theorem coe_bot [FaithfulSMul M X] :
     ↑(BoundedOrder.bot : { P : M // IsLprojection X P }) = (0 : M) :=
   rfl
 #align is_Lprojection.coe_bot IsLprojection.coe_bot
 
-/- warning: is_Lprojection.coe_top -> IsLprojection.coe_top is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toHasLe.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (Semiring.toOne.{u2} M (Ring.toSemiring.{u2} M _inst_2))))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_top IsLprojection.coe_topₓ'. -/
 @[simp]
 theorem coe_top [FaithfulSMul M X] :
     ↑(BoundedOrder.top : { P : M // IsLprojection X P }) = (1 : M) :=
   rfl
 #align is_Lprojection.coe_top IsLprojection.coe_top
 
-/- warning: is_Lprojection.compl_mul -> IsLprojection.compl_mul is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) Q (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) Q))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) Q (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) Q))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.compl_mul IsLprojection.compl_mulₓ'. -/
 theorem compl_mul {P : { P : M // IsLprojection X P }} {Q : M} : ↑(Pᶜ) * Q = Q - ↑P * Q := by
   rw [coe_compl, sub_mul, one_mul]
 #align is_Lprojection.compl_mul IsLprojection.compl_mul
 
-/- warning: is_Lprojection.mul_compl_self -> IsLprojection.mul_compl_self is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))))))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.mul_compl_self IsLprojection.mul_compl_selfₓ'. -/
 theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑(Pᶜ) = 0 := by
   rw [coe_compl, mul_sub, mul_one, P.prop.proj.eq, sub_self]
 #align is_Lprojection.mul_compl_self IsLprojection.mul_compl_self
 
-/- warning: is_Lprojection.distrib_lattice_lemma -> IsLprojection.distrib_lattice_lemma is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemmaₓ'. -/
 theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojection X P }} :
     ((↑P : M) + ↑(Pᶜ) * R) * (↑P + ↑Q * ↑R * ↑(Pᶜ)) = ↑P + ↑Q * ↑R * ↑(Pᶜ) := by
   rw [add_mul, mul_add, mul_add, mul_assoc (↑(Pᶜ)) (↑R) (↑Q * ↑R * ↑(Pᶜ)), ←
Diff
@@ -106,9 +106,7 @@ but is expected to have type
   forall {X : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} X] {M : Type.{u1}} [_inst_2 : Ring.{u1} M] [_inst_3 : Module.{u1, u2} M X (Ring.toSemiring.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} X (NormedAddCommGroup.toAddCommGroup.{u2} X _inst_1))] {P : M}, (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u1, u1, u1} M M M (instHSub.{u1} M (Ring.toSub.{u1} M _inst_2)) (OfNat.ofNat.{u1} M 1 (One.toOfNat1.{u1} M (Semiring.toOne.{u1} M (Ring.toSemiring.{u1} M _inst_2)))) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement IsLprojection.Lcomplementₓ'. -/
 theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
-  ⟨h.proj.one_sub, fun x => by
-    rw [add_comm, sub_sub_cancel]
-    exact h.Lnorm x⟩
+  ⟨h.proj.one_sub, fun x => by rw [add_comm, sub_sub_cancel]; exact h.Lnorm x⟩
 #align is_Lprojection.Lcomplement IsLprojection.Lcomplement
 
 /- warning: is_Lprojection.Lcomplement_iff -> IsLprojection.Lcomplement_iff is a dubious translation:
@@ -172,8 +170,7 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
         _ = P * (1 - Q) - (Q * P - Q * P * Q) := by noncomm_ring
         
     rwa [eq_sub_iff_add_eq, add_right_eq_self, sub_eq_zero] at e1
-  show P * Q = Q * P
-  · rw [QP_eq_QPQ, PR_eq_RPR Q h₂]
+  show P * Q = Q * P; · rw [QP_eq_QPQ, PR_eq_RPR Q h₂]
 #align is_Lprojection.commute IsLprojection.commute
 
 /- warning: is_Lprojection.mul -> IsLprojection.mul is a dubious translation:
@@ -281,9 +278,7 @@ instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
     where
   le P Q := (↑P : M) = ↑(P ⊓ Q)
   le_refl P := by simpa only [coe_inf, ← sq] using P.prop.proj.eq.symm
-  le_trans P Q R h₁ h₂ := by
-    simp only [coe_inf] at h₁ h₂⊢
-    rw [h₁, mul_assoc, ← h₂]
+  le_trans P Q R h₁ h₂ := by simp only [coe_inf] at h₁ h₂⊢; rw [h₁, mul_assoc, ← h₂]
   le_antisymm P Q h₁ h₂ := Subtype.eq (by convert(P.prop.commute Q.prop).Eq)
 
 /- warning: is_Lprojection.le_def -> IsLprojection.le_def is a dubious translation:
Diff
@@ -379,10 +379,7 @@ theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑(P
 #align is_Lprojection.mul_compl_self IsLprojection.mul_compl_self
 
 /- warning: is_Lprojection.distrib_lattice_lemma -> IsLprojection.distrib_lattice_lemma is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toHasAdd.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) R))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toHasAdd.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toHasAdd.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))))
-but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toAdd.{u2} M (NonUnitalNonAssocSemiring.toDistrib.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) R))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toAdd.{u2} M (NonUnitalNonAssocSemiring.toDistrib.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toAdd.{u2} M (NonUnitalNonAssocSemiring.toDistrib.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemmaₓ'. -/
 theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojection X P }} :
     ((↑P : M) + ↑(Pᶜ) * R) * (↑P + ↑Q * ↑R * ↑(Pᶜ)) = ↑P + ↑Q * ↑R * ↑(Pᶜ) := by
Diff
@@ -288,7 +288,7 @@ instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
 
 /- warning: is_Lprojection.le_def -> IsLprojection.le_def is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasInf.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toHasLe.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasInf.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
 but is expected to have type
   forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.inf.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.le_def IsLprojection.le_defₓ'. -/
@@ -336,7 +336,7 @@ instance [FaithfulSMul M X] : BoundedOrder { P : M // IsLprojection X P }
 
 /- warning: is_Lprojection.coe_bot -> IsLprojection.coe_bot is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.bot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.bot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toHasLe.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))))))
 but is expected to have type
   forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Bot.bot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (OrderBot.toBot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderBot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_bot IsLprojection.coe_botₓ'. -/
@@ -348,7 +348,7 @@ theorem coe_bot [FaithfulSMul M X] :
 
 /- warning: is_Lprojection.coe_top -> IsLprojection.coe_top is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toHasLe.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))))
 but is expected to have type
   forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (Semiring.toOne.{u2} M (Ring.toSemiring.{u2} M _inst_2))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_top IsLprojection.coe_topₓ'. -/
Diff
@@ -103,7 +103,7 @@ namespace IsLprojection
 lean 3 declaration is
   forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) P))
 but is expected to have type
-  forall {X : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} X] {M : Type.{u1}} [_inst_2 : Ring.{u1} M] [_inst_3 : Module.{u1, u2} M X (Ring.toSemiring.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} X (NormedAddCommGroup.toAddCommGroup.{u2} X _inst_1))] {P : M}, (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u1, u1, u1} M M M (instHSub.{u1} M (Ring.toSub.{u1} M _inst_2)) (OfNat.ofNat.{u1} M 1 (One.toOfNat1.{u1} M (NonAssocRing.toOne.{u1} M (Ring.toNonAssocRing.{u1} M _inst_2)))) P))
+  forall {X : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} X] {M : Type.{u1}} [_inst_2 : Ring.{u1} M] [_inst_3 : Module.{u1, u2} M X (Ring.toSemiring.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} X (NormedAddCommGroup.toAddCommGroup.{u2} X _inst_1))] {P : M}, (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u1, u1, u1} M M M (instHSub.{u1} M (Ring.toSub.{u1} M _inst_2)) (OfNat.ofNat.{u1} M 1 (One.toOfNat1.{u1} M (Semiring.toOne.{u1} M (Ring.toSemiring.{u1} M _inst_2)))) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement IsLprojection.Lcomplementₓ'. -/
 theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
   ⟨h.proj.one_sub, fun x => by
@@ -115,7 +115,7 @@ theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
 lean 3 declaration is
   forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : M), Iff (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) P))
 but is expected to have type
-  forall {X : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} X] {M : Type.{u1}} [_inst_2 : Ring.{u1} M] [_inst_3 : Module.{u1, u2} M X (Ring.toSemiring.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} X (NormedAddCommGroup.toAddCommGroup.{u2} X _inst_1))] (P : M), Iff (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u1, u1, u1} M M M (instHSub.{u1} M (Ring.toSub.{u1} M _inst_2)) (OfNat.ofNat.{u1} M 1 (One.toOfNat1.{u1} M (NonAssocRing.toOne.{u1} M (Ring.toNonAssocRing.{u1} M _inst_2)))) P))
+  forall {X : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} X] {M : Type.{u1}} [_inst_2 : Ring.{u1} M] [_inst_3 : Module.{u1, u2} M X (Ring.toSemiring.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} X (NormedAddCommGroup.toAddCommGroup.{u2} X _inst_1))] (P : M), Iff (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u1, u1, u1} M M M (instHSub.{u1} M (Ring.toSub.{u1} M _inst_2)) (OfNat.ofNat.{u1} M 1 (One.toOfNat1.{u1} M (Semiring.toOne.{u1} M (Ring.toSemiring.{u1} M _inst_2)))) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement_iff IsLprojection.Lcomplement_iffₓ'. -/
 theorem Lcomplement_iff (P : M) : IsLprojection X P ↔ IsLprojection X (1 - P) :=
   ⟨Lcomplement, fun h => sub_sub_cancel 1 P ▸ h.Lcomplement⟩
@@ -225,7 +225,7 @@ instance : HasCompl { f : M // IsLprojection X f } :=
 lean 3 declaration is
   forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (NonAssocRing.toOne.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (Semiring.toOne.{u2} M (Ring.toSemiring.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_compl IsLprojection.coe_complₓ'. -/
 @[simp]
 theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - ↑P :=
@@ -269,7 +269,7 @@ instance [FaithfulSMul M X] : SDiff { P : M // IsLprojection X P } :=
 lean 3 declaration is
   forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (SDiff.sdiff.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasSdiff.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (SDiff.sdiff.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.sdiff.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (NonAssocRing.toOne.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q)))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (SDiff.sdiff.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.sdiff.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (Semiring.toOne.{u2} M (Ring.toSemiring.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sdiff IsLprojection.coe_sdiffₓ'. -/
 @[simp]
 theorem coe_sdiff [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
@@ -320,7 +320,7 @@ instance : One { P : M // IsLprojection X P } :=
 lean 3 declaration is
   forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 1 (OfNat.mk.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.one.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasOne.{u1, u2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.toOfNat1.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.one.{u1, u2} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (NonAssocRing.toOne.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.toOfNat1.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.one.{u1, u2} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (Semiring.toOne.{u2} M (Ring.toSemiring.{u2} M _inst_2))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_one IsLprojection.coe_oneₓ'. -/
 @[simp]
 theorem coe_one : ↑(1 : { P : M // IsLprojection X P }) = (1 : M) :=
@@ -350,7 +350,7 @@ theorem coe_bot [FaithfulSMul M X] :
 lean 3 declaration is
   forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (NonAssocRing.toOne.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (Semiring.toOne.{u2} M (Ring.toSemiring.{u2} M _inst_2))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_top IsLprojection.coe_topₓ'. -/
 @[simp]
 theorem coe_top [FaithfulSMul M X] :
Diff
@@ -71,6 +71,7 @@ variable (X : Type _) [NormedAddCommGroup X]
 
 variable {M : Type _} [Ring M] [Module M X]
 
+#print IsLprojection /-
 /-- A projection on a normed space `X` is said to be an L-projection if, for all `x` in `X`,
 $\|x\| = \|P x\| + \|(1 - P) x\|$.
 
@@ -79,8 +80,10 @@ Note that we write `P • x` instead of `P x` for reasons described in the modul
 structure IsLprojection (P : M) : Prop where
   proj : IsIdempotentElem P
   Lnorm : ∀ x : X, ‖x‖ = ‖P • x‖ + ‖(1 - P) • x‖
-#align is_Lprojection IsLprojectionₓ
+#align is_Lprojection IsLprojection
+-/
 
+#print IsMprojection /-
 /-- A projection on a normed space `X` is said to be an M-projection if, for all `x` in `X`,
 $\|x\| = max(\|P x\|,\|(1 - P) x\|)$.
 
@@ -89,7 +92,8 @@ Note that we write `P • x` instead of `P x` for reasons described in the modul
 structure IsMprojection (P : M) : Prop where
   proj : IsIdempotentElem P
   Mnorm : ∀ x : X, ‖x‖ = max ‖P • x‖ ‖(1 - P) • x‖
-#align is_Mprojection IsMprojectionₓ
+#align is_Mprojection IsMprojection
+-/
 
 variable {X}
 
@@ -97,9 +101,9 @@ namespace IsLprojection
 
 /- warning: is_Lprojection.Lcomplement -> IsLprojection.Lcomplement is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2))))))) P))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) P))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : M}, (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P))
+  forall {X : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} X] {M : Type.{u1}} [_inst_2 : Ring.{u1} M] [_inst_3 : Module.{u1, u2} M X (Ring.toSemiring.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} X (NormedAddCommGroup.toAddCommGroup.{u2} X _inst_1))] {P : M}, (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u1, u1, u1} M M M (instHSub.{u1} M (Ring.toSub.{u1} M _inst_2)) (OfNat.ofNat.{u1} M 1 (One.toOfNat1.{u1} M (NonAssocRing.toOne.{u1} M (Ring.toNonAssocRing.{u1} M _inst_2)))) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement IsLprojection.Lcomplementₓ'. -/
 theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
   ⟨h.proj.one_sub, fun x => by
@@ -109,9 +113,9 @@ theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
 
 /- warning: is_Lprojection.Lcomplement_iff -> IsLprojection.Lcomplement_iff is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : M), Iff (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2))))))) P))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : M), Iff (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) P))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : M), Iff (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P))
+  forall {X : Type.{u2}} [_inst_1 : NormedAddCommGroup.{u2} X] {M : Type.{u1}} [_inst_2 : Ring.{u1} M] [_inst_3 : Module.{u1, u2} M X (Ring.toSemiring.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} X (NormedAddCommGroup.toAddCommGroup.{u2} X _inst_1))] (P : M), Iff (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u2, u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u1, u1, u1} M M M (instHSub.{u1} M (Ring.toSub.{u1} M _inst_2)) (OfNat.ofNat.{u1} M 1 (One.toOfNat1.{u1} M (NonAssocRing.toOne.{u1} M (Ring.toNonAssocRing.{u1} M _inst_2)))) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement_iff IsLprojection.Lcomplement_iffₓ'. -/
 theorem Lcomplement_iff (P : M) : IsLprojection X P ↔ IsLprojection X (1 - P) :=
   ⟨Lcomplement, fun h => sub_sub_cancel 1 P ▸ h.Lcomplement⟩
@@ -119,9 +123,9 @@ theorem Lcomplement_iff (P : M) : IsLprojection X P ↔ IsLprojection X (1 - P)
 
 /- warning: is_Lprojection.commute -> IsLprojection.commute is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2)) P Q)
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2)) P Q)
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2))) P Q)
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))) P Q)
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.commute IsLprojection.commuteₓ'. -/
 theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     Commute P Q :=
@@ -174,9 +178,9 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
 
 /- warning: is_Lprojection.mul -> IsLprojection.mul is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) P Q))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) P Q))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P Q))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) P Q))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.mul IsLprojection.mulₓ'. -/
 theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P * Q) :=
@@ -203,9 +207,9 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
 
 /- warning: is_Lprojection.join -> IsLprojection.join is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) P Q) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) P Q)))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toHasAdd.{u2} M (Ring.toDistrib.{u2} M _inst_2))) P Q) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) P Q)))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) P Q) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P Q)))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toAdd.{u2} M (NonUnitalNonAssocSemiring.toDistrib.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))))) P Q) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) P Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.join IsLprojection.joinₓ'. -/
 theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P + Q - P * Q) :=
@@ -219,9 +223,9 @@ instance : HasCompl { f : M // IsLprojection X f } :=
 
 /- warning: is_Lprojection.coe_compl -> IsLprojection.coe_compl is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2))))))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (NonAssocRing.toOne.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_compl IsLprojection.coe_complₓ'. -/
 @[simp]
 theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - ↑P :=
@@ -233,9 +237,9 @@ instance [FaithfulSMul M X] : Inf { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_inf -> IsLprojection.coe_inf is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasInf.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasInf.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.inf.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.inf.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_inf IsLprojection.coe_infₓ'. -/
 @[simp]
 theorem coe_inf [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
@@ -248,9 +252,9 @@ instance [FaithfulSMul M X] : Sup { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_sup -> IsLprojection.coe_sup is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (Sup.sup.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasSup.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (Sup.sup.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasSup.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toHasAdd.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Sup.sup.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.sup.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Sup.sup.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.sup.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toAdd.{u2} M (NonUnitalNonAssocSemiring.toDistrib.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sup IsLprojection.coe_supₓ'. -/
 @[simp]
 theorem coe_sup [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
@@ -263,9 +267,9 @@ instance [FaithfulSMul M X] : SDiff { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_sdiff -> IsLprojection.coe_sdiff is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (SDiff.sdiff.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasSdiff.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2))))))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (SDiff.sdiff.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasSdiff.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2))))))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (SDiff.sdiff.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.sdiff.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (SDiff.sdiff.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.sdiff.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (NonAssocRing.toOne.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sdiff IsLprojection.coe_sdiffₓ'. -/
 @[simp]
 theorem coe_sdiff [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
@@ -284,9 +288,9 @@ instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
 
 /- warning: is_Lprojection.le_def -> IsLprojection.le_def is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.partialOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasInf.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasInf.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.inf.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.inf.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.le_def IsLprojection.le_defₓ'. -/
 theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     P ≤ Q ↔ (P : M) = ↑(P ⊓ Q) :=
@@ -300,9 +304,9 @@ instance : Zero { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_zero -> IsLprojection.coe_zero is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 0 (OfNat.mk.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.zero.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasZero.{u_1, u_2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u_2} M 0 (OfNat.mk.{u_2} M 0 (Zero.zero.{u_2} M (MulZeroClass.toHasZero.{u_2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_2} M (NonAssocRing.toNonUnitalNonAssocRing.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 0 (OfNat.mk.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.zero.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasZero.{u1, u2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.toOfNat0.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.zero.{u_1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.toOfNat0.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.zero.{u1, u2} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_zero IsLprojection.coe_zeroₓ'. -/
 @[simp]
 theorem coe_zero : ↑(0 : { P : M // IsLprojection X P }) = (0 : M) :=
@@ -314,9 +318,9 @@ instance : One { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_one -> IsLprojection.coe_one is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 1 (OfNat.mk.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.one.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasOne.{u_1, u_2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 1 (OfNat.mk.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.one.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasOne.{u1, u2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.toOfNat1.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.one.{u_1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.toOfNat1.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.one.{u1, u2} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (NonAssocRing.toOne.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_one IsLprojection.coe_oneₓ'. -/
 @[simp]
 theorem coe_one : ↑(1 : { P : M // IsLprojection X P }) = (1 : M) :=
@@ -332,9 +336,9 @@ instance [FaithfulSMul M X] : BoundedOrder { P : M // IsLprojection X P }
 
 /- warning: is_Lprojection.coe_bot -> IsLprojection.coe_bot is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.bot.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.partialOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojectionₓ.Subtype.boundedOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u_2} M 0 (OfNat.mk.{u_2} M 0 (Zero.zero.{u_2} M (MulZeroClass.toHasZero.{u_2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_2} M (NonAssocRing.toNonUnitalNonAssocRing.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.bot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Bot.bot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (OrderBot.toBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Bot.bot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (OrderBot.toBot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderBot.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_bot IsLprojection.coe_botₓ'. -/
 @[simp]
 theorem coe_bot [FaithfulSMul M X] :
@@ -344,9 +348,9 @@ theorem coe_bot [FaithfulSMul M X] :
 
 /- warning: is_Lprojection.coe_top -> IsLprojection.coe_top is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.partialOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojectionₓ.Subtype.boundedOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u2} M 1 (OfNat.mk.{u2} M 1 (One.one.{u2} M (AddMonoidWithOne.toOne.{u2} M (AddGroupWithOne.toAddMonoidWithOne.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{succ u2} M (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1, u2} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{u2} M 1 (One.toOfNat1.{u2} M (NonAssocRing.toOne.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_top IsLprojection.coe_topₓ'. -/
 @[simp]
 theorem coe_top [FaithfulSMul M X] :
@@ -356,9 +360,9 @@ theorem coe_top [FaithfulSMul M X] :
 
 /- warning: is_Lprojection.compl_mul -> IsLprojection.compl_mul is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{succ u_2} M (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) Q (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) Q))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddGroupWithOne.toAddGroup.{u2} M (AddCommGroupWithOne.toAddGroupWithOne.{u2} M (Ring.toAddCommGroupWithOne.{u2} M _inst_2)))))) Q (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) Q))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) Q (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) Q))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (Ring.toSub.{u2} M _inst_2)) Q (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) Q))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.compl_mul IsLprojection.compl_mulₓ'. -/
 theorem compl_mul {P : { P : M // IsLprojection X P }} {Q : M} : ↑(Pᶜ) * Q = Q - ↑P * Q := by
   rw [coe_compl, sub_mul, one_mul]
@@ -366,9 +370,9 @@ theorem compl_mul {P : { P : M // IsLprojection X P }} {Q : M} : ↑(Pᶜ) * Q =
 
 /- warning: is_Lprojection.mul_compl_self -> IsLprojection.mul_compl_self is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u_2} M (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{u_2} M 0 (OfNat.mk.{u_2} M 0 (Zero.zero.{u_2} M (MulZeroClass.toHasZero.{u_2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_2} M (NonAssocRing.toNonUnitalNonAssocRing.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2))))))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.mul_compl_self IsLprojection.mul_compl_selfₓ'. -/
 theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑(Pᶜ) = 0 := by
   rw [coe_compl, mul_sub, mul_one, P.prop.proj.eq, sub_self]
@@ -376,9 +380,9 @@ theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑(P
 
 /- warning: is_Lprojection.distrib_lattice_lemma -> IsLprojection.distrib_lattice_lemma is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u_2} M (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) R))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toHasSmul.{u2, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u2, u1} M X (MulZeroClass.toHasZero.{u2} M (MulZeroOneClass.toMulZeroClass.{u2} M (MonoidWithZero.toMulZeroOneClass.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toHasAdd.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) R))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toHasAdd.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toHasAdd.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (Distrib.toHasMul.{u2} M (Ring.toDistrib.{u2} M _inst_2))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u2, succ u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))))
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type.{u2}} [_inst_2 : Ring.{u2} M] [_inst_3 : Module.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{u2, u1} M X (SMulZeroClass.toSMul.{u2, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} M X (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} M X (Semiring.toMonoidWithZero.{u2} M (Ring.toSemiring.{u2} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{u2, u1} M X (Ring.toSemiring.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u2} M (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toAdd.{u2} M (NonUnitalNonAssocSemiring.toDistrib.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P)) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) R))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toAdd.{u2} M (NonUnitalNonAssocSemiring.toDistrib.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (Distrib.toAdd.{u2} M (NonUnitalNonAssocSemiring.toDistrib.{u2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (HMul.hMul.{u2, u2, u2} M M M (instHMul.{u2} M (NonUnitalNonAssocRing.toMul.{u2} M (NonAssocRing.toNonUnitalNonAssocRing.{u2} M (Ring.toNonAssocRing.{u2} M _inst_2)))) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{u2} (Subtype.{succ u2} M (fun (P : M) => IsLprojection.{u1, u2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1, u2} X _inst_1 M _inst_2 _inst_3) P))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemmaₓ'. -/
 theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojection X P }} :
     ((↑P : M) + ↑(Pᶜ) * R) * (↑P + ↑Q * ↑R * ↑(Pᶜ)) = ↑P + ↑Q * ↑R * ↑(Pᶜ) := by
Diff
@@ -221,7 +221,7 @@ instance : HasCompl { f : M // IsLprojection X f } :=
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2))))))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_compl IsLprojection.coe_complₓ'. -/
 @[simp]
 theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - ↑P :=
@@ -235,7 +235,7 @@ instance [FaithfulSMul M X] : Inf { P : M // IsLprojection X P } :=
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasInf.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Inf.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.inf.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_inf IsLprojection.coe_infₓ'. -/
 @[simp]
 theorem coe_inf [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
@@ -250,7 +250,7 @@ instance [FaithfulSMul M X] : Sup { P : M // IsLprojection X P } :=
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (Sup.sup.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasSup.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Sup.sup.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Sup.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Sup.sup.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.sup.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sup IsLprojection.coe_supₓ'. -/
 @[simp]
 theorem coe_sup [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
@@ -265,7 +265,7 @@ instance [FaithfulSMul M X] : SDiff { P : M // IsLprojection X P } :=
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (SDiff.sdiff.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasSdiff.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2))))))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (SDiff.sdiff.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.SDiff.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (SDiff.sdiff.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.sdiff.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sdiff IsLprojection.coe_sdiffₓ'. -/
 @[simp]
 theorem coe_sdiff [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
@@ -286,7 +286,7 @@ instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.partialOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasInf.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Inf.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.inf.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.le_def IsLprojection.le_defₓ'. -/
 theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     P ≤ Q ↔ (P : M) = ↑(P ⊓ Q) :=
@@ -302,7 +302,7 @@ instance : Zero { P : M // IsLprojection X P } :=
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 0 (OfNat.mk.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.zero.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasZero.{u_1, u_2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u_2} M 0 (OfNat.mk.{u_2} M 0 (Zero.zero.{u_2} M (MulZeroClass.toHasZero.{u_2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_2} M (NonAssocRing.toNonUnitalNonAssocRing.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.toOfNat0.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Zero.{u_1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.toOfNat0.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.zero.{u_1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_zero IsLprojection.coe_zeroₓ'. -/
 @[simp]
 theorem coe_zero : ↑(0 : { P : M // IsLprojection X P }) = (0 : M) :=
@@ -316,7 +316,7 @@ instance : One { P : M // IsLprojection X P } :=
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 1 (OfNat.mk.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.one.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasOne.{u_1, u_2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.toOfNat1.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.One.{u_1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.toOfNat1.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.one.{u_1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_one IsLprojection.coe_oneₓ'. -/
 @[simp]
 theorem coe_one : ↑(1 : { P : M // IsLprojection X P }) = (1 : M) :=
@@ -334,7 +334,7 @@ instance [FaithfulSMul M X] : BoundedOrder { P : M // IsLprojection X P }
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.bot.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.partialOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojectionₓ.Subtype.boundedOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u_2} M 0 (OfNat.mk.{u_2} M 0 (Zero.zero.{u_2} M (MulZeroClass.toHasZero.{u_2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_2} M (NonAssocRing.toNonUnitalNonAssocRing.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Bot.bot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (OrderBot.toBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.IsLprojection.Subtype.BoundedOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Bot.bot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (OrderBot.toBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_bot IsLprojection.coe_botₓ'. -/
 @[simp]
 theorem coe_bot [FaithfulSMul M X] :
@@ -346,7 +346,7 @@ theorem coe_bot [FaithfulSMul M X] :
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.partialOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojectionₓ.Subtype.boundedOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.IsLprojection.Subtype.BoundedOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_top IsLprojection.coe_topₓ'. -/
 @[simp]
 theorem coe_top [FaithfulSMul M X] :
@@ -358,7 +358,7 @@ theorem coe_top [FaithfulSMul M X] :
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{succ u_2} M (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) Q (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) Q))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) Q (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) Q))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) Q (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) Q))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.compl_mul IsLprojection.compl_mulₓ'. -/
 theorem compl_mul {P : { P : M // IsLprojection X P }} {Q : M} : ↑(Pᶜ) * Q = Q - ↑P * Q := by
   rw [coe_compl, sub_mul, one_mul]
@@ -368,7 +368,7 @@ theorem compl_mul {P : { P : M // IsLprojection X P }} {Q : M} : ↑(Pᶜ) * Q =
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u_2} M (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{u_2} M 0 (OfNat.mk.{u_2} M 0 (Zero.zero.{u_2} M (MulZeroClass.toHasZero.{u_2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_2} M (NonAssocRing.toNonUnitalNonAssocRing.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.mul_compl_self IsLprojection.mul_compl_selfₓ'. -/
 theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑(Pᶜ) = 0 := by
   rw [coe_compl, mul_sub, mul_one, P.prop.proj.eq, sub_self]
@@ -378,7 +378,7 @@ theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑(P
 lean 3 declaration is
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u_2} M (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) R))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P))))
 but is expected to have type
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemmaₓ'. -/
 theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojection X P }} :
     ((↑P : M) + ↑(Pᶜ) * R) * (↑P + ↑Q * ↑R * ↑(Pᶜ)) = ↑P + ↑Q * ↑R * ↑(Pᶜ) := by
Diff
@@ -97,7 +97,7 @@ namespace IsLprojection
 
 /- warning: is_Lprojection.Lcomplement -> IsLprojection.Lcomplement is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))) P))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2))))))) P))
 but is expected to have type
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : M}, (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement IsLprojection.Lcomplementₓ'. -/
@@ -109,7 +109,7 @@ theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
 
 /- warning: is_Lprojection.Lcomplement_iff -> IsLprojection.Lcomplement_iff is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : M), Iff (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))) P))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : M), Iff (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2))))))) P))
 but is expected to have type
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : M), Iff (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement_iff IsLprojection.Lcomplement_iffₓ'. -/
@@ -203,7 +203,7 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
 
 /- warning: is_Lprojection.join -> IsLprojection.join is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) P Q) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) P Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) P Q) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) P Q)))
 but is expected to have type
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) P Q) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.join IsLprojection.joinₓ'. -/
@@ -219,7 +219,7 @@ instance : HasCompl { f : M // IsLprojection X f } :=
 
 /- warning: is_Lprojection.coe_compl -> IsLprojection.coe_compl is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2))))))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P))
 but is expected to have type
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_compl IsLprojection.coe_complₓ'. -/
@@ -248,7 +248,7 @@ instance [FaithfulSMul M X] : Sup { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_sup -> IsLprojection.coe_sup is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (Sup.sup.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasSup.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (Sup.sup.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasSup.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
 but is expected to have type
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Sup.sup.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Sup.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sup IsLprojection.coe_supₓ'. -/
@@ -263,7 +263,7 @@ instance [FaithfulSMul M X] : SDiff { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_sdiff -> IsLprojection.coe_sdiff is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (SDiff.sdiff.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasSdiff.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (SDiff.sdiff.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasSdiff.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2))))))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
 but is expected to have type
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (SDiff.sdiff.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.SDiff.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sdiff IsLprojection.coe_sdiffₓ'. -/
@@ -314,7 +314,7 @@ instance : One { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_one -> IsLprojection.coe_one is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 1 (OfNat.mk.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.one.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasOne.{u_1, u_2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 1 (OfNat.mk.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.one.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasOne.{u_1, u_2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))))
 but is expected to have type
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.toOfNat1.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.One.{u_1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_one IsLprojection.coe_oneₓ'. -/
@@ -344,7 +344,7 @@ theorem coe_bot [FaithfulSMul M X] :
 
 /- warning: is_Lprojection.coe_top -> IsLprojection.coe_top is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.partialOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojectionₓ.Subtype.boundedOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.partialOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojectionₓ.Subtype.boundedOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))))
 but is expected to have type
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.IsLprojection.Subtype.BoundedOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_top IsLprojection.coe_topₓ'. -/
@@ -356,7 +356,7 @@ theorem coe_top [FaithfulSMul M X] :
 
 /- warning: is_Lprojection.compl_mul -> IsLprojection.compl_mul is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{succ u_2} M (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) Q (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) Q))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{succ u_2} M (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (AddCommGroupWithOne.toAddGroupWithOne.{u_2} M (Ring.toAddCommGroupWithOne.{u_2} M _inst_2)))))) Q (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) Q))
 but is expected to have type
   forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) Q (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) Q))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.compl_mul IsLprojection.compl_mulₓ'. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Christopher Hoskin
 
 ! This file was ported from Lean 3 source module analysis.normed_space.M_structure
-! leanprover-community/mathlib commit 17ef379e997badd73e5eabb4d38f11919ab3c4b3
+! leanprover-community/mathlib commit d11893b411025250c8e61ff2f12ccbd7ee35ab15
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.Analysis.Normed.Group.Basic
 /-!
 # M-structure
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 A projection P on a normed space X is said to be an L-projection (`is_Lprojection`) if, for all `x`
 in `X`,
 $\|x\| = \|P x\| + \|(1 - P) x\|$.
@@ -66,9 +69,8 @@ M-summand, M-projection, L-summand, L-projection, M-ideal, M-structure
 
 variable (X : Type _) [NormedAddCommGroup X]
 
-variable {M : Type} [Ring M] [Module M X]
+variable {M : Type _} [Ring M] [Module M X]
 
-#print IsLprojection /-
 /-- A projection on a normed space `X` is said to be an L-projection if, for all `x` in `X`,
 $\|x\| = \|P x\| + \|(1 - P) x\|$.
 
@@ -77,10 +79,8 @@ Note that we write `P • x` instead of `P x` for reasons described in the modul
 structure IsLprojection (P : M) : Prop where
   proj : IsIdempotentElem P
   Lnorm : ∀ x : X, ‖x‖ = ‖P • x‖ + ‖(1 - P) • x‖
-#align is_Lprojection IsLprojection
--/
+#align is_Lprojection IsLprojectionₓ
 
-#print IsMprojection /-
 /-- A projection on a normed space `X` is said to be an M-projection if, for all `x` in `X`,
 $\|x\| = max(\|P x\|,\|(1 - P) x\|)$.
 
@@ -89,8 +89,7 @@ Note that we write `P • x` instead of `P x` for reasons described in the modul
 structure IsMprojection (P : M) : Prop where
   proj : IsIdempotentElem P
   Mnorm : ∀ x : X, ‖x‖ = max ‖P • x‖ ‖(1 - P) • x‖
-#align is_Mprojection IsMprojection
--/
+#align is_Mprojection IsMprojectionₓ
 
 variable {X}
 
@@ -98,9 +97,9 @@ namespace IsLprojection
 
 /- warning: is_Lprojection.Lcomplement -> IsLprojection.Lcomplement is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))) P))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))) P))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : M}, (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement IsLprojection.Lcomplementₓ'. -/
 theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
   ⟨h.proj.one_sub, fun x => by
@@ -110,9 +109,9 @@ theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
 
 /- warning: is_Lprojection.Lcomplement_iff -> IsLprojection.Lcomplement_iff is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : M), Iff (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))) P))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : M), Iff (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))) P))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : M), Iff (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : M), Iff (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement_iff IsLprojection.Lcomplement_iffₓ'. -/
 theorem Lcomplement_iff (P : M) : IsLprojection X P ↔ IsLprojection X (1 - P) :=
   ⟨Lcomplement, fun h => sub_sub_cancel 1 P ▸ h.Lcomplement⟩
@@ -120,9 +119,9 @@ theorem Lcomplement_iff (P : M) : IsLprojection X P ↔ IsLprojection X (1 - P)
 
 /- warning: is_Lprojection.commute -> IsLprojection.commute is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2)) P Q)
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2)) P Q)
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2))) P Q)
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2))) P Q)
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.commute IsLprojection.commuteₓ'. -/
 theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     Commute P Q :=
@@ -175,9 +174,9 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
 
 /- warning: is_Lprojection.mul -> IsLprojection.mul is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) P Q))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) P Q))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P Q))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P Q))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.mul IsLprojection.mulₓ'. -/
 theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P * Q) :=
@@ -204,9 +203,9 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
 
 /- warning: is_Lprojection.join -> IsLprojection.join is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toHasAdd.{0} M (Ring.toDistrib.{0} M _inst_2))) P Q) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) P Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) P Q) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) P Q)))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) P Q) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) P Q) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.join IsLprojection.joinₓ'. -/
 theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P + Q - P * Q) :=
@@ -220,9 +219,9 @@ instance : HasCompl { f : M // IsLprojection X f } :=
 
 /- warning: is_Lprojection.coe_compl -> IsLprojection.coe_compl is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_compl IsLprojection.coe_complₓ'. -/
 @[simp]
 theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - ↑P :=
@@ -234,9 +233,9 @@ instance [FaithfulSMul M X] : Inf { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_inf -> IsLprojection.coe_inf is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasInf.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasInf.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Inf.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Inf.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_inf IsLprojection.coe_infₓ'. -/
 @[simp]
 theorem coe_inf [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
@@ -249,9 +248,9 @@ instance [FaithfulSMul M X] : Sup { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_sup -> IsLprojection.coe_sup is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (Sup.sup.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasSup.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toHasAdd.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (Sup.sup.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasSup.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (Sup.sup.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Sup.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Sup.sup.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Sup.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sup IsLprojection.coe_supₓ'. -/
 @[simp]
 theorem coe_sup [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
@@ -264,9 +263,9 @@ instance [FaithfulSMul M X] : SDiff { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_sdiff -> IsLprojection.coe_sdiff is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (SDiff.sdiff.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasSdiff.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Eq.{succ u_2} M ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (SDiff.sdiff.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasSdiff.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (SDiff.sdiff.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.SDiff.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (SDiff.sdiff.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.SDiff.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sdiff IsLprojection.coe_sdiffₓ'. -/
 @[simp]
 theorem coe_sdiff [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
@@ -285,9 +284,9 @@ instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
 
 /- warning: is_Lprojection.le_def -> IsLprojection.le_def is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasInf.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.partialOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasInf.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Inf.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Inf.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.le_def IsLprojection.le_defₓ'. -/
 theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     P ≤ Q ↔ (P : M) = ↑(P ⊓ Q) :=
@@ -301,9 +300,9 @@ instance : Zero { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_zero -> IsLprojection.coe_zero is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 0 (OfNat.mk.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.zero.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasZero.{u1} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{0} M 0 (OfNat.mk.{0} M 0 (Zero.zero.{0} M (MulZeroClass.toHasZero.{0} M (NonUnitalNonAssocSemiring.toMulZeroClass.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 0 (OfNat.mk.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.zero.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasZero.{u_1, u_2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u_2} M 0 (OfNat.mk.{u_2} M 0 (Zero.zero.{u_2} M (MulZeroClass.toHasZero.{u_2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_2} M (NonAssocRing.toNonUnitalNonAssocRing.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.toOfNat0.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Zero.{u1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.toOfNat0.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Zero.{u_1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_zero IsLprojection.coe_zeroₓ'. -/
 @[simp]
 theorem coe_zero : ↑(0 : { P : M // IsLprojection X P }) = (0 : M) :=
@@ -315,9 +314,9 @@ instance : One { P : M // IsLprojection X P } :=
 
 /- warning: is_Lprojection.coe_one -> IsLprojection.coe_one is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 1 (OfNat.mk.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.one.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasOne.{u1} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 1 (OfNat.mk.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.one.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasOne.{u_1, u_2} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.toOfNat1.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.One.{u1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.toOfNat1.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.One.{u_1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_one IsLprojection.coe_oneₓ'. -/
 @[simp]
 theorem coe_one : ↑(1 : { P : M // IsLprojection X P }) = (1 : M) :=
@@ -333,9 +332,9 @@ instance [FaithfulSMul M X] : BoundedOrder { P : M // IsLprojection X P }
 
 /- warning: is_Lprojection.coe_bot -> IsLprojection.coe_bot is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.bot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{0} M 0 (OfNat.mk.{0} M 0 (Zero.zero.{0} M (MulZeroClass.toHasZero.{0} M (NonUnitalNonAssocSemiring.toMulZeroClass.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.bot.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.partialOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojectionₓ.Subtype.boundedOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u_2} M 0 (OfNat.mk.{u_2} M 0 (Zero.zero.{u_2} M (MulZeroClass.toHasZero.{u_2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_2} M (NonAssocRing.toNonUnitalNonAssocRing.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (Bot.bot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (OrderBot.toBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.IsLprojection.Subtype.BoundedOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Bot.bot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (OrderBot.toBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.IsLprojection.Subtype.BoundedOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_bot IsLprojection.coe_botₓ'. -/
 @[simp]
 theorem coe_bot [FaithfulSMul M X] :
@@ -345,9 +344,9 @@ theorem coe_bot [FaithfulSMul M X] :
 
 /- warning: is_Lprojection.coe_top -> IsLprojection.coe_top is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{succ u_2} M ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.partialOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojectionₓ.Subtype.boundedOrder.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{u_2} M 1 (OfNat.mk.{u_2} M 1 (One.one.{u_2} M (AddMonoidWithOne.toOne.{u_2} M (AddGroupWithOne.toAddMonoidWithOne.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.IsLprojection.Subtype.BoundedOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.IsLprojection.Subtype.BoundedOrder.{u_1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_top IsLprojection.coe_topₓ'. -/
 @[simp]
 theorem coe_top [FaithfulSMul M X] :
@@ -357,9 +356,9 @@ theorem coe_top [FaithfulSMul M X] :
 
 /- warning: is_Lprojection.compl_mul -> IsLprojection.compl_mul is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) Q (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) Q))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{succ u_2} M (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{u_2, u_2, u_2} M M M (instHSub.{u_2} M (SubNegMonoid.toHasSub.{u_2} M (AddGroup.toSubNegMonoid.{u_2} M (AddGroupWithOne.toAddGroup.{u_2} M (NonAssocRing.toAddGroupWithOne.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2)))))) Q (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) Q))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) Q (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) Q))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) Q (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) Q))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.compl_mul IsLprojection.compl_mulₓ'. -/
 theorem compl_mul {P : { P : M // IsLprojection X P }} {Q : M} : ↑(Pᶜ) * Q = Q - ↑P * Q := by
   rw [coe_compl, sub_mul, one_mul]
@@ -367,9 +366,9 @@ theorem compl_mul {P : { P : M // IsLprojection X P }} {Q : M} : ↑(Pᶜ) * Q =
 
 /- warning: is_Lprojection.mul_compl_self -> IsLprojection.mul_compl_self is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{0} M 0 (OfNat.mk.{0} M 0 (Zero.zero.{0} M (MulZeroClass.toHasZero.{0} M (NonUnitalNonAssocSemiring.toMulZeroClass.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u_2} M (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{u_2} M 0 (OfNat.mk.{u_2} M 0 (Zero.zero.{u_2} M (MulZeroClass.toHasZero.{u_2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u_2} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_2} M (NonAssocRing.toNonUnitalNonAssocRing.{u_2} M (Ring.toNonAssocRing.{u_2} M _inst_2))))))))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.mul_compl_self IsLprojection.mul_compl_selfₓ'. -/
 theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑(Pᶜ) = 0 := by
   rw [coe_compl, mul_sub, mul_one, P.prop.proj.eq, sub_self]
@@ -377,9 +376,9 @@ theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑(P
 
 /- warning: is_Lprojection.distrib_lattice_lemma -> IsLprojection.distrib_lattice_lemma is a dubious translation:
 lean 3 declaration is
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toHasAdd.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) R))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toHasAdd.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toHasAdd.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type.{u_2}} [_inst_2 : Ring.{u_2} M] [_inst_3 : Module.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{u_2, u_1} M X (SMulZeroClass.toHasSmul.{u_2, u_1} M X (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{u_2, u_1} M X (MulZeroClass.toHasZero.{u_2} M (MulZeroOneClass.toMulZeroClass.{u_2} M (MonoidWithZero.toMulZeroOneClass.{u_2} M (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2))))) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{u_2, u_1} M X (Semiring.toMonoidWithZero.{u_2} M (Ring.toSemiring.{u_2} M _inst_2)) (AddZeroClass.toHasZero.{u_1} X (AddMonoid.toAddZeroClass.{u_1} X (AddCommMonoid.toAddMonoid.{u_1} X (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))))) (Module.toMulActionWithZero.{u_2, u_1} M X (Ring.toSemiring.{u_2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{succ u_2} M (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P)) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) R))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{u_2, u_2, u_2} M M M (instHAdd.{u_2} M (Distrib.toHasAdd.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) (HMul.hMul.{u_2, u_2, u_2} M M M (instHMul.{u_2} M (Distrib.toHasMul.{u_2} M (Ring.toDistrib.{u_2} M _inst_2))) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Sort.{max 1 (succ u_2)}) (b : Type.{u_2}) [self : HasLiftT.{max 1 (succ u_2), succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{max 1 (succ u_2), succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type.{u_2}) (b : Type.{u_2}) [self : HasLiftT.{succ u_2, succ u_2} a b] => self.0) (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{succ u_2, succ u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{u_2} (Subtype.{succ u_2} M (fun (P : M) => IsLprojectionₓ.{u_1, u_2} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojectionₓ.Subtype.hasCompl.{u_1, u_2} X _inst_1 M _inst_2 _inst_3) P))))
 but is expected to have type
-  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) R))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))))
+  forall {X : Type.{u_1}} [_inst_1 : NormedAddCommGroup.{u_1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u_1} M X (SMulZeroClass.toSMul.{0, u_1} M X (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u_1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u_1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u_1} X (SubNegZeroMonoid.toNegZeroClass.{u_1} X (SubtractionMonoid.toSubNegZeroMonoid.{u_1} X (SubtractionCommMonoid.toSubtractionMonoid.{u_1} X (AddCommGroup.toDivisionAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u_1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u_1} X (NormedAddCommGroup.toAddCommGroup.{u_1} X _inst_1)) _inst_3))))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u_1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u_1} X _inst_1 M _inst_2 _inst_3) P))))
 Case conversion may be inaccurate. Consider using '#align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemmaₓ'. -/
 theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojection X P }} :
     ((↑P : M) + ↑(Pᶜ) * R) * (↑P + ↑Q * ↑R * ↑(Pᶜ)) = ↑P + ↑Q * ↑R * ↑(Pᶜ) := by
Diff
@@ -313,12 +313,16 @@ theorem coe_zero : ↑(0 : { P : M // IsLprojection X P }) = (0 : M) :=
 instance : One { P : M // IsLprojection X P } :=
   ⟨⟨1, sub_zero (1 : M) ▸ (0 : { P : M // IsLprojection X P }).Prop.Lcomplement⟩⟩
 
-#print IsLprojection.coe_one /-
+/- warning: is_Lprojection.coe_one -> IsLprojection.coe_one is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 1 (OfNat.mk.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.one.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasOne.{u1} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 1 (One.toOfNat1.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.One.{u1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_one IsLprojection.coe_oneₓ'. -/
 @[simp]
 theorem coe_one : ↑(1 : { P : M // IsLprojection X P }) = (1 : M) :=
   rfl
 #align is_Lprojection.coe_one IsLprojection.coe_one
--/
 
 instance [FaithfulSMul M X] : BoundedOrder { P : M // IsLprojection X P }
     where
Diff
@@ -68,6 +68,7 @@ variable (X : Type _) [NormedAddCommGroup X]
 
 variable {M : Type} [Ring M] [Module M X]
 
+#print IsLprojection /-
 /-- A projection on a normed space `X` is said to be an L-projection if, for all `x` in `X`,
 $\|x\| = \|P x\| + \|(1 - P) x\|$.
 
@@ -77,7 +78,9 @@ structure IsLprojection (P : M) : Prop where
   proj : IsIdempotentElem P
   Lnorm : ∀ x : X, ‖x‖ = ‖P • x‖ + ‖(1 - P) • x‖
 #align is_Lprojection IsLprojection
+-/
 
+#print IsMprojection /-
 /-- A projection on a normed space `X` is said to be an M-projection if, for all `x` in `X`,
 $\|x\| = max(\|P x\|,\|(1 - P) x\|)$.
 
@@ -87,21 +90,40 @@ structure IsMprojection (P : M) : Prop where
   proj : IsIdempotentElem P
   Mnorm : ∀ x : X, ‖x‖ = max ‖P • x‖ ‖(1 - P) • x‖
 #align is_Mprojection IsMprojection
+-/
 
 variable {X}
 
 namespace IsLprojection
 
-theorem lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
+/- warning: is_Lprojection.Lcomplement -> IsLprojection.Lcomplement is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))) P))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement IsLprojection.Lcomplementₓ'. -/
+theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
   ⟨h.proj.one_sub, fun x => by
     rw [add_comm, sub_sub_cancel]
     exact h.Lnorm x⟩
-#align is_Lprojection.Lcomplement IsLprojection.lcomplement
-
+#align is_Lprojection.Lcomplement IsLprojection.Lcomplement
+
+/- warning: is_Lprojection.Lcomplement_iff -> IsLprojection.Lcomplement_iff is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : M), Iff (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))) P))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : M), Iff (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.Lcomplement_iff IsLprojection.Lcomplement_iffₓ'. -/
 theorem Lcomplement_iff (P : M) : IsLprojection X P ↔ IsLprojection X (1 - P) :=
-  ⟨lcomplement, fun h => sub_sub_cancel 1 P ▸ h.lcomplement⟩
+  ⟨Lcomplement, fun h => sub_sub_cancel 1 P ▸ h.Lcomplement⟩
 #align is_Lprojection.Lcomplement_iff IsLprojection.Lcomplement_iff
 
+/- warning: is_Lprojection.commute -> IsLprojection.commute is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2)) P Q)
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (Commute.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2))) P Q)
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.commute IsLprojection.commuteₓ'. -/
 theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     Commute P Q :=
   by
@@ -151,6 +173,12 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
   · rw [QP_eq_QPQ, PR_eq_RPR Q h₂]
 #align is_Lprojection.commute IsLprojection.commute
 
+/- warning: is_Lprojection.mul -> IsLprojection.mul is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) P Q))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P Q))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.mul IsLprojection.mulₓ'. -/
 theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P * Q) :=
   by
@@ -174,6 +202,12 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
       
 #align is_Lprojection.mul IsLprojection.mul
 
+/- warning: is_Lprojection.join -> IsLprojection.join is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toHasAdd.{0} M (Ring.toDistrib.{0} M _inst_2))) P Q) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) P Q)))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : M} {Q : M}, (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 Q) -> (IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) P Q) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) P Q)))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.join IsLprojection.joinₓ'. -/
 theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P + Q - P * Q) :=
   by
@@ -182,8 +216,14 @@ theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsL
 #align is_Lprojection.join IsLprojection.join
 
 instance : HasCompl { f : M // IsLprojection X f } :=
-  ⟨fun P => ⟨1 - P, P.Prop.lcomplement⟩⟩
-
+  ⟨fun P => ⟨1 - P, P.Prop.Lcomplement⟩⟩
+
+/- warning: is_Lprojection.coe_compl -> IsLprojection.coe_compl is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_compl IsLprojection.coe_complₓ'. -/
 @[simp]
 theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - ↑P :=
   rfl
@@ -192,6 +232,12 @@ theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - 
 instance [FaithfulSMul M X] : Inf { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P * Q, P.Prop.mul Q.Prop⟩⟩
 
+/- warning: is_Lprojection.coe_inf -> IsLprojection.coe_inf is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasInf.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Inf.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_inf IsLprojection.coe_infₓ'. -/
 @[simp]
 theorem coe_inf [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     ↑(P ⊓ Q) = (↑P : M) * ↑Q :=
@@ -201,6 +247,12 @@ theorem coe_inf [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
 instance [FaithfulSMul M X] : Sup { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P + Q - P * Q, P.Prop.join Q.Prop⟩⟩
 
+/- warning: is_Lprojection.coe_sup -> IsLprojection.coe_sup is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (Sup.sup.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasSup.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toHasAdd.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (Sup.sup.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Sup.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q)))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sup IsLprojection.coe_supₓ'. -/
 @[simp]
 theorem coe_sup [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     ↑(P ⊔ Q) = (↑P : M) + ↑Q - ↑P * ↑Q :=
@@ -210,6 +262,12 @@ theorem coe_sup [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
 instance [FaithfulSMul M X] : SDiff { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P * (1 - Q), P.prop.mul Q.prop.Lcomplement⟩⟩
 
+/- warning: is_Lprojection.coe_sdiff -> IsLprojection.coe_sdiff is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (SDiff.sdiff.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasSdiff.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q)))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (SDiff.sdiff.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.SDiff.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q)))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_sdiff IsLprojection.coe_sdiffₓ'. -/
 @[simp]
 theorem coe_sdiff [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     ↑(P \ Q) = (↑P : M) * (1 - ↑Q) :=
@@ -225,6 +283,12 @@ instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
     rw [h₁, mul_assoc, ← h₂]
   le_antisymm P Q h₁ h₂ := Subtype.eq (by convert(P.prop.commute Q.prop).Eq)
 
+/- warning: is_Lprojection.le_def -> IsLprojection.le_def is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasInf.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] (P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)), Iff (LE.le.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) P Q) (Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (Inf.inf.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Inf.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4) P Q)))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.le_def IsLprojection.le_defₓ'. -/
 theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     P ≤ Q ↔ (P : M) = ↑(P ⊓ Q) :=
   Iff.rfl
@@ -235,18 +299,26 @@ instance : Zero { P : M // IsLprojection X P } :=
       ⟨by rw [IsIdempotentElem, MulZeroClass.zero_mul], fun x => by
         simp only [zero_smul, norm_zero, sub_zero, one_smul, zero_add]⟩⟩⟩
 
+/- warning: is_Lprojection.coe_zero -> IsLprojection.coe_zero is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 0 (OfNat.mk.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.zero.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasZero.{u1} X _inst_1 M _inst_2 _inst_3))))) (OfNat.ofNat.{0} M 0 (OfNat.mk.{0} M 0 (Zero.zero.{0} M (MulZeroClass.toHasZero.{0} M (NonUnitalNonAssocSemiring.toMulZeroClass.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (OfNat.ofNat.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) 0 (Zero.toOfNat0.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.Zero.{u1} X _inst_1 M _inst_2 _inst_3)))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_zero IsLprojection.coe_zeroₓ'. -/
 @[simp]
 theorem coe_zero : ↑(0 : { P : M // IsLprojection X P }) = (0 : M) :=
   rfl
 #align is_Lprojection.coe_zero IsLprojection.coe_zero
 
 instance : One { P : M // IsLprojection X P } :=
-  ⟨⟨1, sub_zero (1 : M) ▸ (0 : { P : M // IsLprojection X P }).Prop.lcomplement⟩⟩
+  ⟨⟨1, sub_zero (1 : M) ▸ (0 : { P : M // IsLprojection X P }).Prop.Lcomplement⟩⟩
 
+#print IsLprojection.coe_one /-
 @[simp]
 theorem coe_one : ↑(1 : { P : M // IsLprojection X P }) = (1 : M) :=
   rfl
 #align is_Lprojection.coe_one IsLprojection.coe_one
+-/
 
 instance [FaithfulSMul M X] : BoundedOrder { P : M // IsLprojection X P }
     where
@@ -255,26 +327,56 @@ instance [FaithfulSMul M X] : BoundedOrder { P : M // IsLprojection X P }
   bot := 0
   bot_le P := (MulZeroClass.zero_mul (P : M)).symm
 
+/- warning: is_Lprojection.coe_bot -> IsLprojection.coe_bot is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.bot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{0} M 0 (OfNat.mk.{0} M 0 (Zero.zero.{0} M (MulZeroClass.toHasZero.{0} M (NonUnitalNonAssocSemiring.toMulZeroClass.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (Bot.bot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (OrderBot.toBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderBot.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.IsLprojection.Subtype.BoundedOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_bot IsLprojection.coe_botₓ'. -/
 @[simp]
 theorem coe_bot [FaithfulSMul M X] :
     ↑(BoundedOrder.bot : { P : M // IsLprojection X P }) = (0 : M) :=
   rfl
 #align is_Lprojection.coe_bot IsLprojection.coe_bot
 
+/- warning: is_Lprojection.coe_top -> IsLprojection.coe_top is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{1} M ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (BoundedOrder.top.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.partialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.Subtype.boundedOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (OfNat.ofNat.{0} M 1 (OfNat.mk.{0} M 1 (One.one.{0} M (AddMonoidWithOne.toOne.{0} M (AddGroupWithOne.toAddMonoidWithOne.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))], Eq.{1} M (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (Top.top.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (OrderTop.toTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (BoundedOrder.toOrderTop.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (Preorder.toLE.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (PartialOrder.toPreorder.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.PartialOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))) (IsLprojection.IsLprojection.Subtype.BoundedOrder.{u1} X _inst_1 M _inst_2 _inst_3 _inst_4))))) (OfNat.ofNat.{0} M 1 (One.toOfNat1.{0} M (NonAssocRing.toOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.coe_top IsLprojection.coe_topₓ'. -/
 @[simp]
 theorem coe_top [FaithfulSMul M X] :
     ↑(BoundedOrder.top : { P : M // IsLprojection X P }) = (1 : M) :=
   rfl
 #align is_Lprojection.coe_top IsLprojection.coe_top
 
+/- warning: is_Lprojection.compl_mul -> IsLprojection.compl_mul is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (SubNegMonoid.toHasSub.{0} M (AddGroup.toSubNegMonoid.{0} M (AddGroupWithOne.toAddGroup.{0} M (NonAssocRing.toAddGroupWithOne.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) Q (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) Q))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {Q : M}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) Q) (HSub.hSub.{0, 0, 0} M M M (instHSub.{0} M (Ring.toSub.{0} M _inst_2)) Q (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) Q))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.compl_mul IsLprojection.compl_mulₓ'. -/
 theorem compl_mul {P : { P : M // IsLprojection X P }} {Q : M} : ↑(Pᶜ) * Q = Q - ↑P * Q := by
   rw [coe_compl, sub_mul, one_mul]
 #align is_Lprojection.compl_mul IsLprojection.compl_mul
 
+/- warning: is_Lprojection.mul_compl_self -> IsLprojection.mul_compl_self is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{0} M 0 (OfNat.mk.{0} M 0 (Zero.zero.{0} M (MulZeroClass.toHasZero.{0} M (NonUnitalNonAssocSemiring.toMulZeroClass.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2))))))))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))) (OfNat.ofNat.{0} M 0 (Zero.toOfNat0.{0} M (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.mul_compl_self IsLprojection.mul_compl_selfₓ'. -/
 theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑(Pᶜ) = 0 := by
   rw [coe_compl, mul_sub, mul_one, P.prop.proj.eq, sub_self]
 #align is_Lprojection.mul_compl_self IsLprojection.mul_compl_self
 
+/- warning: is_Lprojection.distrib_lattice_lemma -> IsLprojection.distrib_lattice_lemma is a dubious translation:
+lean 3 declaration is
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toHasSmul.{0, u1} M X (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (SMulWithZero.toSmulZeroClass.{0, u1} M X (MulZeroClass.toHasZero.{0} M (MulZeroOneClass.toMulZeroClass.{0} M (MonoidWithZero.toMulZeroOneClass.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))))) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (AddZeroClass.toHasZero.{u1} X (AddMonoid.toAddZeroClass.{u1} X (AddCommMonoid.toAddMonoid.{u1} X (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toHasAdd.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) R))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toHasAdd.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toHasAdd.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (Distrib.toHasMul.{0} M (Ring.toDistrib.{0} M _inst_2))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) Q) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) R)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (HasLiftT.mk.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (CoeTCₓ.coe.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeBase.{1, 1} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) M (coeSubtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P))))) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.Subtype.hasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))))
+but is expected to have type
+  forall {X : Type.{u1}} [_inst_1 : NormedAddCommGroup.{u1} X] {M : Type} [_inst_2 : Ring.{0} M] [_inst_3 : Module.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1))] [_inst_4 : FaithfulSMul.{0, u1} M X (SMulZeroClass.toSMul.{0, u1} M X (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (SMulWithZero.toSMulZeroClass.{0, u1} M X (MonoidWithZero.toZero.{0} M (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2))) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (MulActionWithZero.toSMulWithZero.{0, u1} M X (Semiring.toMonoidWithZero.{0} M (Ring.toSemiring.{0} M _inst_2)) (NegZeroClass.toZero.{u1} X (SubNegZeroMonoid.toNegZeroClass.{u1} X (SubtractionMonoid.toSubNegZeroMonoid.{u1} X (SubtractionCommMonoid.toSubtractionMonoid.{u1} X (AddCommGroup.toDivisionAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)))))) (Module.toMulActionWithZero.{0, u1} M X (Ring.toSemiring.{0} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} X (NormedAddCommGroup.toAddCommGroup.{u1} X _inst_1)) _inst_3))))] {P : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {Q : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)} {R : Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)}, Eq.{1} M (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) R))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))))) (HAdd.hAdd.{0, 0, 0} M M M (instHAdd.{0} M (Distrib.toAdd.{0} M (NonUnitalNonAssocSemiring.toDistrib.{0} M (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) P) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (HMul.hMul.{0, 0, 0} M M M (instHMul.{0} M (NonUnitalNonAssocRing.toMul.{0} M (NonAssocRing.toNonUnitalNonAssocRing.{0} M (Ring.toNonAssocRing.{0} M _inst_2)))) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) Q) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) R)) (Subtype.val.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P) (HasCompl.compl.{0} (Subtype.{1} M (fun (P : M) => IsLprojection.{u1} X _inst_1 M _inst_2 _inst_3 P)) (IsLprojection.IsLprojection.Subtype.HasCompl.{u1} X _inst_1 M _inst_2 _inst_3) P))))
+Case conversion may be inaccurate. Consider using '#align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemmaₓ'. -/
 theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojection X P }} :
     ((↑P : M) + ↑(Pᶜ) * R) * (↑P + ↑Q * ↑R * ↑(Pᶜ)) = ↑P + ↑Q * ↑R * ↑(Pᶜ) := by
   rw [add_mul, mul_add, mul_add, mul_assoc (↑(Pᶜ)) (↑R) (↑Q * ↑R * ↑(Pᶜ)), ←
Diff
@@ -177,7 +177,7 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
 theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P + Q - P * Q) :=
   by
-  convert (Lcomplement_iff _).mp (h₁.Lcomplement.mul h₂.Lcomplement) using 1
+  convert(Lcomplement_iff _).mp (h₁.Lcomplement.mul h₂.Lcomplement) using 1
   noncomm_ring
 #align is_Lprojection.join IsLprojection.join
 
@@ -223,7 +223,7 @@ instance [FaithfulSMul M X] : PartialOrder { P : M // IsLprojection X P }
   le_trans P Q R h₁ h₂ := by
     simp only [coe_inf] at h₁ h₂⊢
     rw [h₁, mul_assoc, ← h₂]
-  le_antisymm P Q h₁ h₂ := Subtype.eq (by convert (P.prop.commute Q.prop).Eq)
+  le_antisymm P Q h₁ h₂ := Subtype.eq (by convert(P.prop.commute Q.prop).Eq)
 
 theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
     P ≤ Q ↔ (P : M) = ↑(P ⊓ Q) :=
Diff
@@ -138,7 +138,7 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
     rw [add_le_add_iff_left, two_smul, ← two_mul] at e1
     rw [le_antisymm_iff]
     refine' ⟨_, norm_nonneg _⟩
-    rwa [← mul_zero (2 : ℝ), mul_le_mul_left (show (0 : ℝ) < 2 by norm_num)] at e1
+    rwa [← MulZeroClass.mul_zero (2 : ℝ), mul_le_mul_left (show (0 : ℝ) < 2 by norm_num)] at e1
   have QP_eq_QPQ : Q * P = Q * P * Q :=
     by
     have e1 : P * (1 - Q) = P * (1 - Q) - (Q * P - Q * P * Q) :=
@@ -232,7 +232,7 @@ theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
 
 instance : Zero { P : M // IsLprojection X P } :=
   ⟨⟨0,
-      ⟨by rw [IsIdempotentElem, zero_mul], fun x => by
+      ⟨by rw [IsIdempotentElem, MulZeroClass.zero_mul], fun x => by
         simp only [zero_smul, norm_zero, sub_zero, one_smul, zero_add]⟩⟩⟩
 
 @[simp]
@@ -253,7 +253,7 @@ instance [FaithfulSMul M X] : BoundedOrder { P : M // IsLprojection X P }
   top := 1
   le_top P := (mul_one (P : M)).symm
   bot := 0
-  bot_le P := (zero_mul (P : M)).symm
+  bot_le P := (MulZeroClass.zero_mul (P : M)).symm
 
 @[simp]
 theorem coe_bot [FaithfulSMul M X] :
@@ -280,9 +280,9 @@ theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojecti
   rw [add_mul, mul_add, mul_add, mul_assoc (↑(Pᶜ)) (↑R) (↑Q * ↑R * ↑(Pᶜ)), ←
     mul_assoc (↑R) (↑Q * ↑R) ↑(Pᶜ), ← coe_inf Q, (Pᶜ.Prop.Commute R.prop).Eq,
     ((Q ⊓ R).Prop.Commute Pᶜ.Prop).Eq, (R.prop.commute (Q ⊓ R).Prop).Eq, coe_inf Q, mul_assoc ↑Q, ←
-    mul_assoc, mul_assoc ↑R, (Pᶜ.Prop.Commute P.prop).Eq, mul_compl_self, zero_mul, mul_zero,
-    zero_add, add_zero, ← mul_assoc, P.prop.proj.eq, R.prop.proj.eq, ← coe_inf Q, mul_assoc,
-    ((Q ⊓ R).Prop.Commute Pᶜ.Prop).Eq, ← mul_assoc, Pᶜ.Prop.proj.Eq]
+    mul_assoc, mul_assoc ↑R, (Pᶜ.Prop.Commute P.prop).Eq, mul_compl_self, MulZeroClass.zero_mul,
+    MulZeroClass.mul_zero, zero_add, add_zero, ← mul_assoc, P.prop.proj.eq, R.prop.proj.eq, ←
+    coe_inf Q, mul_assoc, ((Q ⊓ R).Prop.Commute Pᶜ.Prop).Eq, ← mul_assoc, Pᶜ.Prop.proj.Eq]
 #align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemma
 
 instance [FaithfulSMul M X] : DistribLattice { P : M // IsLprojection X P } :=
@@ -314,8 +314,8 @@ instance [FaithfulSMul M X] : DistribLattice { P : M // IsLprojection X P } :=
       have e₁ : ↑((P ⊔ Q) ⊓ (P ⊔ R)) = ↑P + ↑Q * ↑R * ↑(Pᶜ) := by
         rw [coe_inf, coe_sup, coe_sup, ← add_sub, ← add_sub, ← compl_mul, ← compl_mul, add_mul,
           mul_add, (Pᶜ.Prop.Commute Q.prop).Eq, mul_add, ← mul_assoc, mul_assoc ↑Q,
-          (Pᶜ.Prop.Commute P.prop).Eq, mul_compl_self, zero_mul, mul_zero, zero_add, add_zero, ←
-          mul_assoc, mul_assoc ↑Q, P.prop.proj.eq, Pᶜ.Prop.proj.Eq, mul_assoc,
+          (Pᶜ.Prop.Commute P.prop).Eq, mul_compl_self, MulZeroClass.zero_mul, MulZeroClass.mul_zero,
+          zero_add, add_zero, ← mul_assoc, mul_assoc ↑Q, P.prop.proj.eq, Pᶜ.Prop.proj.Eq, mul_assoc,
           (Pᶜ.Prop.Commute R.prop).Eq, ← mul_assoc]
       have e₂ : ↑((P ⊔ Q) ⊓ (P ⊔ R)) * ↑(P ⊔ Q ⊓ R) = ↑P + ↑Q * ↑R * ↑(Pᶜ) := by
         rw [coe_inf, coe_sup, coe_sup, coe_sup, ← add_sub, ← add_sub, ← add_sub, ← compl_mul, ←
Diff
@@ -168,7 +168,7 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
       ‖x‖ = ‖P • Q • x‖ + (‖Q • x - P • Q • x‖ + ‖x - Q • x‖) := by
         rw [h₂.Lnorm x, h₁.Lnorm (Q • x), sub_smul, one_smul, sub_smul, one_smul, add_assoc]
       _ ≥ ‖P • Q • x‖ + ‖Q • x - P • Q • x + (x - Q • x)‖ :=
-        (add_le_add_iff_left ‖P • Q • x‖).mpr (norm_add_le (Q • x - P • Q • x) (x - Q • x))
+        ((add_le_add_iff_left ‖P • Q • x‖).mpr (norm_add_le (Q • x - P • Q • x) (x - Q • x)))
       _ = ‖(P * Q) • x‖ + ‖(1 - P * Q) • x‖ := by
         rw [sub_add_sub_cancel', sub_smul, one_smul, mul_smul]
       
Diff
@@ -189,7 +189,7 @@ theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - 
   rfl
 #align is_Lprojection.coe_compl IsLprojection.coe_compl
 
-instance [FaithfulSMul M X] : HasInf { P : M // IsLprojection X P } :=
+instance [FaithfulSMul M X] : Inf { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P * Q, P.Prop.mul Q.Prop⟩⟩
 
 @[simp]
@@ -198,7 +198,7 @@ theorem coe_inf [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
   rfl
 #align is_Lprojection.coe_inf IsLprojection.coe_inf
 
-instance [FaithfulSMul M X] : HasSup { P : M // IsLprojection X P } :=
+instance [FaithfulSMul M X] : Sup { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P + Q - P * Q, P.Prop.join Q.Prop⟩⟩
 
 @[simp]

Changes in mathlib4

mathlib3
mathlib4
chore: Rename mul-div cancellation lemmas (#11530)

Lemma names around cancellation of multiplication and division are a mess.

This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero lemma name, the Group lemma, the AddGroup lemma name).

| Statement | New name | Old name | |

Diff
@@ -150,7 +150,7 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
   intro x
   refine' le_antisymm _ _
   · calc
-      ‖x‖ = ‖(P * Q) • x + (x - (P * Q) • x)‖ := by rw [add_sub_cancel'_right ((P * Q) • x) x]
+      ‖x‖ = ‖(P * Q) • x + (x - (P * Q) • x)‖ := by rw [add_sub_cancel ((P * Q) • x) x]
       _ ≤ ‖(P * Q) • x‖ + ‖x - (P * Q) • x‖ := by apply norm_add_le
       _ = ‖(P * Q) • x‖ + ‖(1 - P * Q) • x‖ := by rw [sub_smul, one_smul]
   · calc
@@ -286,7 +286,7 @@ instance [FaithfulSMul M X] : Lattice { P : M // IsLprojection X P } where
       sub_self, add_zero]
   le_sup_right P Q := by
     rw [le_def, coe_inf, coe_sup, ← add_sub, mul_add, mul_sub, (P.prop.commute Q.prop).eq,
-      ← mul_assoc, Q.prop.proj.eq, add_sub_cancel'_right]
+      ← mul_assoc, Q.prop.proj.eq, add_sub_cancel]
   sup_le P Q R := by
     rw [le_def, le_def, le_def, coe_inf, coe_inf, coe_sup, coe_inf, coe_sup, ← add_sub, add_mul,
       sub_mul, mul_assoc]
@@ -327,7 +327,7 @@ instance Subtype.BooleanAlgebra [FaithfulSMul M X] :
     top_le_sup_compl := fun P =>
       (Subtype.ext
         (by
-          rw [coe_top, coe_sup, coe_compl, add_sub_cancel'_right, ← coe_compl, mul_compl_self,
+          rw [coe_top, coe_sup, coe_compl, add_sub_cancel, ← coe_compl, mul_compl_self,
             sub_zero])).le
     sdiff_eq := fun P Q => Subtype.ext <| by rw [coe_sdiff, ← coe_compl, coe_inf] }
 
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -62,7 +62,6 @@ M-summand, M-projection, L-summand, L-projection, M-ideal, M-structure
 -/
 
 variable (X : Type*) [NormedAddCommGroup X]
-
 variable {M : Type*} [Ring M] [Module M X]
 
 -- Porting note: Mathlib3 uses names with uppercase 'L' for L-projections
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -65,7 +65,7 @@ variable (X : Type*) [NormedAddCommGroup X]
 
 variable {M : Type*} [Ring M] [Module M X]
 
---porting note: Mathlib3 uses names with uppercase 'L' for L-projections
+-- Porting note: Mathlib3 uses names with uppercase 'L' for L-projections
 set_option linter.uppercaseLean3 false
 
 /-- A projection on a normed space `X` is said to be an L-projection if, for all `x` in `X`,
@@ -92,7 +92,7 @@ variable {X}
 
 namespace IsLprojection
 
---porting note: The literature always uses uppercase 'L' for L-projections
+-- Porting note: The literature always uses uppercase 'L' for L-projections
 theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
   ⟨h.proj.one_sub, fun x => by
     rw [add_comm, sub_sub_cancel]
@@ -106,7 +106,7 @@ theorem Lcomplement_iff (P : M) : IsLprojection X P ↔ IsLprojection X (1 - P)
 theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     Commute P Q := by
   have PR_eq_RPR : ∀ R : M, IsLprojection X R → P * R = R * P * R := fun R h₃ => by
-    --porting note: Needed to fix function, which changes indent of following lines
+    -- Porting note: Needed to fix function, which changes indent of following lines
     refine @eq_of_smul_eq_smul _ X _ _ _ _ fun x => by
       rw [← norm_sub_eq_zero_iff]
       have e1 : ‖R • x‖ ≥ ‖R • x‖ + 2 • ‖(P * R) • x - (R * P * R) • x‖ :=
@@ -129,7 +129,7 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
             simpa only [mul_smul, sub_smul, one_smul] using this
 
       rw [GE.ge] at e1
-      --porting note: Bump index in nth_rewrite
+      -- Porting note: Bump index in nth_rewrite
       nth_rewrite 2 [← add_zero ‖R • x‖] at e1
       rw [add_le_add_iff_left, two_smul, ← two_mul] at e1
       rw [le_antisymm_iff]
@@ -169,7 +169,7 @@ theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsL
   noncomm_ring
 #align is_Lprojection.join IsLprojection.join
 
---porting note: Advice is to explicitly name instances
+-- Porting note: Advice is to explicitly name instances
 -- https://github.com/leanprover-community/mathlib4/wiki/Porting-wiki#some-common-fixes
 instance Subtype.hasCompl : HasCompl { f : M // IsLprojection X f } :=
   ⟨fun P => ⟨1 - P, P.prop.Lcomplement⟩⟩
@@ -246,14 +246,14 @@ instance Subtype.boundedOrder [FaithfulSMul M X] :
 
 @[simp]
 theorem coe_bot [FaithfulSMul M X] :
-    --porting note: Manual correction of name required here
+    -- Porting note: Manual correction of name required here
     ↑(BoundedOrder.toOrderBot.toBot.bot : { P : M // IsLprojection X P }) = (0 : M) :=
   rfl
 #align is_Lprojection.coe_bot IsLprojection.coe_bot
 
 @[simp]
 theorem coe_top [FaithfulSMul M X] :
-    --porting note: Manual correction of name required here
+    -- Porting note: Manual correction of name required here
     ↑(BoundedOrder.toOrderTop.toTop.top : { P : M // IsLprojection X P }) = (1 : M) :=
   rfl
 #align is_Lprojection.coe_top IsLprojection.coe_top
@@ -277,7 +277,7 @@ theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojecti
     Pᶜ.prop.proj.eq]
 #align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemma
 
---porting note: In mathlib3 we were able to directly show that `{ P : M // IsLprojection X P }` was
+-- Porting note: In mathlib3 we were able to directly show that `{ P : M // IsLprojection X P }` was
 --  an instance of a `DistribLattice`. Trying to do that in mathlib4 fails with "error:
 -- (deterministic) timeout at 'whnf', maximum number of heartbeats (800000) has been reached"
 -- My workaround is to show instance Lattice first
@@ -319,7 +319,7 @@ instance Subtype.distribLattice [FaithfulSMul M X] :
 
 instance Subtype.BooleanAlgebra [FaithfulSMul M X] :
     BooleanAlgebra { P : M // IsLprojection X P } :=
---porting note: use explicitly specified instance names
+-- Porting note: use explicitly specified instance names
   { IsLprojection.Subtype.hasCompl,
     IsLprojection.Subtype.sdiff,
     IsLprojection.Subtype.boundedOrder with
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -5,6 +5,7 @@ Authors: Christopher Hoskin
 -/
 import Mathlib.Algebra.Ring.Idempotents
 import Mathlib.Analysis.Normed.Group.Basic
+import Mathlib.Order.Basic
 import Mathlib.Tactic.NoncommRing
 
 #align_import analysis.normed_space.M_structure from "leanprover-community/mathlib"@"d11893b411025250c8e61ff2f12ccbd7ee35ab15"
chore: space after (#8178)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -270,9 +270,9 @@ theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojecti
   rw [add_mul, mul_add, mul_add, (mul_assoc _ (R : M) (↑Q * ↑R * ↑Pᶜ)),
     ← mul_assoc (R : M) (↑Q * ↑R) _, ← coe_inf Q, (Pᶜ.prop.commute R.prop).eq,
     ((Q ⊓ R).prop.commute Pᶜ.prop).eq, (R.prop.commute (Q ⊓ R).prop).eq, coe_inf Q,
-    mul_assoc (Q : M), ←mul_assoc, mul_assoc (R : M), (Pᶜ.prop.commute P.prop).eq, mul_compl_self,
+    mul_assoc (Q : M), ← mul_assoc, mul_assoc (R : M), (Pᶜ.prop.commute P.prop).eq, mul_compl_self,
     zero_mul, mul_zero, zero_add, add_zero, ← mul_assoc, P.prop.proj.eq,
-    R.prop.proj.eq, ←coe_inf Q, mul_assoc, ((Q ⊓ R).prop.commute Pᶜ.prop).eq, ← mul_assoc,
+    R.prop.proj.eq, ← coe_inf Q, mul_assoc, ((Q ⊓ R).prop.commute Pᶜ.prop).eq, ← mul_assoc,
     Pᶜ.prop.proj.eq]
 #align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemma
 
chore: only four spaces for subsequent lines (#7286)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -245,14 +245,14 @@ instance Subtype.boundedOrder [FaithfulSMul M X] :
 
 @[simp]
 theorem coe_bot [FaithfulSMul M X] :
-  --porting note: Manual correction of name required here
+    --porting note: Manual correction of name required here
     ↑(BoundedOrder.toOrderBot.toBot.bot : { P : M // IsLprojection X P }) = (0 : M) :=
   rfl
 #align is_Lprojection.coe_bot IsLprojection.coe_bot
 
 @[simp]
 theorem coe_top [FaithfulSMul M X] :
-  --porting note: Manual correction of name required here
+    --porting note: Manual correction of name required here
     ↑(BoundedOrder.toOrderTop.toTop.top : { P : M // IsLprojection X P }) = (1 : M) :=
   rfl
 #align is_Lprojection.coe_top IsLprojection.coe_top
chore: drop MulZeroClass. in mul_zero/zero_mul (#6682)

Search&replace MulZeroClass.mul_zero -> mul_zero, MulZeroClass.zero_mul -> zero_mul.

These were introduced by Mathport, as the full name of mul_zero is actually MulZeroClass.mul_zero (it's exported with the short name).

Diff
@@ -133,7 +133,7 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
       rw [add_le_add_iff_left, two_smul, ← two_mul] at e1
       rw [le_antisymm_iff]
       refine' ⟨_, norm_nonneg _⟩
-      rwa [← MulZeroClass.mul_zero (2 : ℝ), mul_le_mul_left (show (0 : ℝ) < 2 by norm_num)] at e1
+      rwa [← mul_zero (2 : ℝ), mul_le_mul_left (show (0 : ℝ) < 2 by norm_num)] at e1
   have QP_eq_QPQ : Q * P = Q * P * Q := by
     have e1 : P * (1 - Q) = P * (1 - Q) - (Q * P - Q * P * Q) :=
       calc
@@ -220,7 +220,7 @@ theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
 #align is_Lprojection.le_def IsLprojection.le_def
 
 instance Subtype.zero : Zero { P : M // IsLprojection X P } :=
-  ⟨⟨0, ⟨by rw [IsIdempotentElem, MulZeroClass.zero_mul], fun x => by
+  ⟨⟨0, ⟨by rw [IsIdempotentElem, zero_mul], fun x => by
         simp only [zero_smul, norm_zero, sub_zero, one_smul, zero_add]⟩⟩⟩
 
 @[simp]
@@ -241,7 +241,7 @@ instance Subtype.boundedOrder [FaithfulSMul M X] :
   top := 1
   le_top P := (mul_one (P : M)).symm
   bot := 0
-  bot_le P := (MulZeroClass.zero_mul (P : M)).symm
+  bot_le P := (zero_mul (P : M)).symm
 
 @[simp]
 theorem coe_bot [FaithfulSMul M X] :
@@ -271,7 +271,7 @@ theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojecti
     ← mul_assoc (R : M) (↑Q * ↑R) _, ← coe_inf Q, (Pᶜ.prop.commute R.prop).eq,
     ((Q ⊓ R).prop.commute Pᶜ.prop).eq, (R.prop.commute (Q ⊓ R).prop).eq, coe_inf Q,
     mul_assoc (Q : M), ←mul_assoc, mul_assoc (R : M), (Pᶜ.prop.commute P.prop).eq, mul_compl_self,
-    MulZeroClass.zero_mul, MulZeroClass.mul_zero, zero_add, add_zero, ← mul_assoc, P.prop.proj.eq,
+    zero_mul, mul_zero, zero_add, add_zero, ← mul_assoc, P.prop.proj.eq,
     R.prop.proj.eq, ←coe_inf Q, mul_assoc, ((Q ⊓ R).prop.commute Pᶜ.prop).eq, ← mul_assoc,
     Pᶜ.prop.proj.eq]
 #align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemma
@@ -307,7 +307,7 @@ instance Subtype.distribLattice [FaithfulSMul M X] :
     have e₁ : ↑((P ⊔ Q) ⊓ (P ⊔ R)) = ↑P + ↑Q * (R : M) * ↑Pᶜ := by
       rw [coe_inf, coe_sup, coe_sup, ← add_sub, ← add_sub, ← compl_mul, ← compl_mul, add_mul,
         mul_add, (Pᶜ.prop.commute Q.prop).eq, mul_add, ← mul_assoc, mul_assoc (Q: M),
-        (Pᶜ.prop.commute P.prop).eq, mul_compl_self, MulZeroClass.zero_mul, MulZeroClass.mul_zero,
+        (Pᶜ.prop.commute P.prop).eq, mul_compl_self, zero_mul, mul_zero,
         zero_add, add_zero, ← mul_assoc, mul_assoc (Q : M), P.prop.proj.eq, Pᶜ.prop.proj.eq,
         mul_assoc, (Pᶜ.prop.commute R.prop).eq, ← mul_assoc]
     have e₂ : ↑((P ⊔ Q) ⊓ (P ⊔ R)) * ↑(P ⊔ Q ⊓ R) = (P : M) + ↑Q * ↑R * ↑Pᶜ := by
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
@@ -60,9 +60,9 @@ M-summand, M-projection, L-summand, L-projection, M-ideal, M-structure
 
 -/
 
-variable (X : Type _) [NormedAddCommGroup X]
+variable (X : Type*) [NormedAddCommGroup X]
 
-variable {M : Type _} [Ring M] [Module M X]
+variable {M : Type*} [Ring M] [Module M X]
 
 --porting note: Mathlib3 uses names with uppercase 'L' for L-projections
 set_option linter.uppercaseLean3 false
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,16 +2,13 @@
 Copyright (c) 2022 Christopher Hoskin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Christopher Hoskin
-
-! This file was ported from Lean 3 source module analysis.normed_space.M_structure
-! leanprover-community/mathlib commit d11893b411025250c8e61ff2f12ccbd7ee35ab15
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Ring.Idempotents
 import Mathlib.Analysis.Normed.Group.Basic
 import Mathlib.Tactic.NoncommRing
 
+#align_import analysis.normed_space.M_structure from "leanprover-community/mathlib"@"d11893b411025250c8e61ff2f12ccbd7ee35ab15"
+
 /-!
 # M-structure
 
fix: change compl precedence (#5586)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -177,7 +177,7 @@ instance Subtype.hasCompl : HasCompl { f : M // IsLprojection X f } :=
   ⟨fun P => ⟨1 - P, P.prop.Lcomplement⟩⟩
 
 @[simp]
-theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - ↑P :=
+theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑Pᶜ = (1 : M) - ↑P :=
   rfl
 #align is_Lprojection.coe_compl IsLprojection.coe_compl
 
@@ -260,22 +260,22 @@ theorem coe_top [FaithfulSMul M X] :
   rfl
 #align is_Lprojection.coe_top IsLprojection.coe_top
 
-theorem compl_mul {P : { P : M // IsLprojection X P }} {Q : M} : ↑(Pᶜ) * Q = Q - ↑P * Q := by
+theorem compl_mul {P : { P : M // IsLprojection X P }} {Q : M} : ↑Pᶜ * Q = Q - ↑P * Q := by
   rw [coe_compl, sub_mul, one_mul]
 #align is_Lprojection.compl_mul IsLprojection.compl_mul
 
-theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑(Pᶜ) = 0 := by
+theorem mul_compl_self {P : { P : M // IsLprojection X P }} : (↑P : M) * ↑Pᶜ = 0 := by
   rw [coe_compl, mul_sub, mul_one, P.prop.proj.eq, sub_self]
 #align is_Lprojection.mul_compl_self IsLprojection.mul_compl_self
 
 theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojection X P }} :
-    ((↑P : M) + ↑(Pᶜ) * R) * (↑P + ↑Q * ↑R * ↑(Pᶜ)) = ↑P + ↑Q * ↑R * ↑(Pᶜ) := by
-  rw [add_mul, mul_add, mul_add, (mul_assoc _ (R : M) (↑Q * ↑R * ↑(Pᶜ))),
+    ((↑P : M) + ↑Pᶜ * R) * (↑P + ↑Q * ↑R * ↑Pᶜ) = ↑P + ↑Q * ↑R * ↑Pᶜ := by
+  rw [add_mul, mul_add, mul_add, (mul_assoc _ (R : M) (↑Q * ↑R * ↑Pᶜ)),
     ← mul_assoc (R : M) (↑Q * ↑R) _, ← coe_inf Q, (Pᶜ.prop.commute R.prop).eq,
-    ((Q ⊓ R).prop.commute (Pᶜ).prop).eq, (R.prop.commute (Q ⊓ R).prop).eq, coe_inf Q,
+    ((Q ⊓ R).prop.commute Pᶜ.prop).eq, (R.prop.commute (Q ⊓ R).prop).eq, coe_inf Q,
     mul_assoc (Q : M), ←mul_assoc, mul_assoc (R : M), (Pᶜ.prop.commute P.prop).eq, mul_compl_self,
     MulZeroClass.zero_mul, MulZeroClass.mul_zero, zero_add, add_zero, ← mul_assoc, P.prop.proj.eq,
-    R.prop.proj.eq, ←coe_inf Q, mul_assoc, ((Q ⊓ R).prop.commute (Pᶜ).prop).eq, ← mul_assoc,
+    R.prop.proj.eq, ←coe_inf Q, mul_assoc, ((Q ⊓ R).prop.commute Pᶜ.prop).eq, ← mul_assoc,
     Pᶜ.prop.proj.eq]
 #align is_Lprojection.distrib_lattice_lemma IsLprojection.distrib_lattice_lemma
 
@@ -307,15 +307,15 @@ instance [FaithfulSMul M X] : Lattice { P : M // IsLprojection X P } where
 instance Subtype.distribLattice [FaithfulSMul M X] :
     DistribLattice { P : M // IsLprojection X P } where
   le_sup_inf P Q R := by
-    have e₁ : ↑((P ⊔ Q) ⊓ (P ⊔ R)) = ↑P + ↑Q * (R : M) * ↑(Pᶜ) := by
+    have e₁ : ↑((P ⊔ Q) ⊓ (P ⊔ R)) = ↑P + ↑Q * (R : M) * ↑Pᶜ := by
       rw [coe_inf, coe_sup, coe_sup, ← add_sub, ← add_sub, ← compl_mul, ← compl_mul, add_mul,
-        mul_add, ((Pᶜ).prop.commute Q.prop).eq, mul_add, ← mul_assoc, mul_assoc (Q: M),
-        ((Pᶜ).prop.commute P.prop).eq, mul_compl_self, MulZeroClass.zero_mul, MulZeroClass.mul_zero,
-        zero_add, add_zero, ← mul_assoc, mul_assoc (Q : M), P.prop.proj.eq, (Pᶜ).prop.proj.eq,
-        mul_assoc, ((Pᶜ).prop.commute R.prop).eq, ← mul_assoc]
-    have e₂ : ↑((P ⊔ Q) ⊓ (P ⊔ R)) * ↑(P ⊔ Q ⊓ R) = (P : M) + ↑Q * ↑R * ↑(Pᶜ) := by
+        mul_add, (Pᶜ.prop.commute Q.prop).eq, mul_add, ← mul_assoc, mul_assoc (Q: M),
+        (Pᶜ.prop.commute P.prop).eq, mul_compl_self, MulZeroClass.zero_mul, MulZeroClass.mul_zero,
+        zero_add, add_zero, ← mul_assoc, mul_assoc (Q : M), P.prop.proj.eq, Pᶜ.prop.proj.eq,
+        mul_assoc, (Pᶜ.prop.commute R.prop).eq, ← mul_assoc]
+    have e₂ : ↑((P ⊔ Q) ⊓ (P ⊔ R)) * ↑(P ⊔ Q ⊓ R) = (P : M) + ↑Q * ↑R * ↑Pᶜ := by
       rw [coe_inf, coe_sup, coe_sup, coe_sup, ← add_sub, ← add_sub, ← add_sub, ← compl_mul, ←
-        compl_mul, ← compl_mul, ((Pᶜ).prop.commute (Q ⊓ R).prop).eq, coe_inf, mul_assoc,
+        compl_mul, ← compl_mul, (Pᶜ.prop.commute (Q ⊓ R).prop).eq, coe_inf, mul_assoc,
         distrib_lattice_lemma, (Q.prop.commute R.prop).eq, distrib_lattice_lemma]
     rw [le_def, e₁, coe_inf, e₂]
 
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
@@ -132,7 +132,7 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
 
       rw [GE.ge] at e1
       --porting note: Bump index in nth_rewrite
-      nth_rewrite 2 [← add_zero ‖R • x‖]  at e1
+      nth_rewrite 2 [← add_zero ‖R • x‖] at e1
       rw [add_le_add_iff_left, two_smul, ← two_mul] at e1
       rw [le_antisymm_iff]
       refine' ⟨_, norm_nonneg _⟩
@@ -213,7 +213,7 @@ instance Subtype.partialOrder [FaithfulSMul M X] :
   le P Q := (↑P : M) = ↑(P ⊓ Q)
   le_refl P := by simpa only [coe_inf, ← sq] using P.prop.proj.eq.symm
   le_trans P Q R h₁ h₂ := by
-    simp only [coe_inf] at h₁ h₂⊢
+    simp only [coe_inf] at h₁ h₂ ⊢
     rw [h₁, mul_assoc, ← h₂]
   le_antisymm P Q h₁ h₂ := Subtype.eq (by convert (P.prop.commute Q.prop).eq)
 
feat: port noncomm_ring tactic (#4804)

This aims to be a faithful implementation of mathlib3's noncomm_ring tactic.

Diff
@@ -10,6 +10,7 @@ Authors: Christopher Hoskin
 -/
 import Mathlib.Algebra.Ring.Idempotents
 import Mathlib.Analysis.Normed.Group.Basic
+import Mathlib.Tactic.NoncommRing
 
 /-!
 # M-structure
@@ -140,11 +141,7 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
     have e1 : P * (1 - Q) = P * (1 - Q) - (Q * P - Q * P * Q) :=
       calc
         P * (1 - Q) = (1 - Q) * P * (1 - Q) := by rw [PR_eq_RPR (1 - Q) h₂.Lcomplement]
-        --porting note: noncomm_ring tactic not yet ported, so complete proof with rewrites for now
-        _ = 1 * (P * (1 - Q)) - Q * (P * (1 - Q)) := by rw [mul_assoc, sub_mul]
-        _ = P * (1 - Q) - Q * (P * (1 - Q)) := by rw [one_mul]
-        _ = P * (1 - Q) - Q * (P - P * Q) := by rw [mul_sub, mul_one]
-        _ = P * (1 - Q) - (Q * P - Q * P * Q) := by rw [mul_sub Q, mul_assoc]
+        _ = P * (1 - Q) - (Q * P - Q * P * Q) := by noncomm_ring
     rwa [eq_sub_iff_add_eq, add_right_eq_self, sub_eq_zero] at e1
   show P * Q = Q * P
   · rw [QP_eq_QPQ, PR_eq_RPR Q h₂]
@@ -171,8 +168,7 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
 theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
     IsLprojection X (P + Q - P * Q) := by
   convert (Lcomplement_iff _).mp (h₁.Lcomplement.mul h₂.Lcomplement) using 1
-  --porting note: noncomm_ring tactic not yet ported, so complete proof with rewrites for now
-  rw [sub_mul, one_mul, sub_sub, sub_sub_self, mul_sub, mul_one, add_sub, add_comm]
+  noncomm_ring
 #align is_Lprojection.join IsLprojection.join
 
 --porting note: Advice is to explicitly name instances
chore: fix typos (#4518)

I ran codespell Mathlib and got tired halfway through the suggestions.

Diff
@@ -93,7 +93,7 @@ variable {X}
 
 namespace IsLprojection
 
---porting note: The liturature always uses uppercase 'L' for L-projections
+--porting note: The literature always uses uppercase 'L' for L-projections
 theorem Lcomplement {P : M} (h : IsLprojection X P) : IsLprojection X (1 - P) :=
   ⟨h.proj.one_sub, fun x => by
     rw [add_comm, sub_sub_cancel]
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -112,23 +112,18 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
       rw [← norm_sub_eq_zero_iff]
       have e1 : ‖R • x‖ ≥ ‖R • x‖ + 2 • ‖(P * R) • x - (R * P * R) • x‖ :=
         calc
-          ‖R • x‖ =
-              ‖R • P • R • x‖ + ‖(1 - R) • P • R • x‖ +
-                (‖(R * R) • x - R • P • R • x‖ + ‖(1 - R) • (1 - P) • R • x‖) :=
-            by
+          ‖R • x‖ = ‖R • P • R • x‖ + ‖(1 - R) • P • R • x‖ +
+              (‖(R * R) • x - R • P • R • x‖ + ‖(1 - R) • (1 - P) • R • x‖) := by
             rw [h₁.Lnorm, h₃.Lnorm, h₃.Lnorm ((1 - P) • R • x), sub_smul 1 P, one_smul, smul_sub,
               mul_smul]
-          _ =
-              ‖R • P • R • x‖ + ‖(1 - R) • P • R • x‖ +
-                (‖R • x - R • P • R • x‖ + ‖((1 - R) * R) • x - (1 - R) • P • R • x‖) :=
-            by rw [h₃.proj.eq, sub_smul 1 P, one_smul, smul_sub, mul_smul]
-          _ =
-              ‖R • P • R • x‖ + ‖(1 - R) • P • R • x‖ +
-                (‖R • x - R • P • R • x‖ + ‖(1 - R) • P • R • x‖) :=
-            by rw [sub_mul, h₃.proj.eq, one_mul, sub_self, zero_smul, zero_sub, norm_neg]
+          _ = ‖R • P • R • x‖ + ‖(1 - R) • P • R • x‖ +
+              (‖R • x - R • P • R • x‖ + ‖((1 - R) * R) • x - (1 - R) • P • R • x‖) := by
+            rw [h₃.proj.eq, sub_smul 1 P, one_smul, smul_sub, mul_smul]
+          _ = ‖R • P • R • x‖ + ‖(1 - R) • P • R • x‖ +
+              (‖R • x - R • P • R • x‖ + ‖(1 - R) • P • R • x‖) := by
+            rw [sub_mul, h₃.proj.eq, one_mul, sub_self, zero_smul, zero_sub, norm_neg]
           _ = ‖R • P • R • x‖ + ‖R • x - R • P • R • x‖ + 2 • ‖(1 - R) • P • R • x‖ := by abel
-          _ ≥ ‖R • x‖ + 2 • ‖(P * R) • x - (R * P * R) • x‖ :=
-            by
+          _ ≥ ‖R • x‖ + 2 • ‖(P * R) • x - (R * P * R) • x‖ := by
             rw [GE.ge]
             have :=
               add_le_add_right (norm_le_insert' (R • x) (R • P • R • x)) (2 • ‖(1 - R) • P • R • x‖)
@@ -141,12 +136,10 @@ theorem commute [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ :
       rw [le_antisymm_iff]
       refine' ⟨_, norm_nonneg _⟩
       rwa [← MulZeroClass.mul_zero (2 : ℝ), mul_le_mul_left (show (0 : ℝ) < 2 by norm_num)] at e1
-  have QP_eq_QPQ : Q * P = Q * P * Q :=
-    by
+  have QP_eq_QPQ : Q * P = Q * P * Q := by
     have e1 : P * (1 - Q) = P * (1 - Q) - (Q * P - Q * P * Q) :=
       calc
         P * (1 - Q) = (1 - Q) * P * (1 - Q) := by rw [PR_eq_RPR (1 - Q) h₂.Lcomplement]
-
         --porting note: noncomm_ring tactic not yet ported, so complete proof with rewrites for now
         _ = 1 * (P * (1 - Q)) - Q * (P * (1 - Q)) := by rw [mul_assoc, sub_mul]
         _ = P * (1 - Q) - Q * (P * (1 - Q)) := by rw [one_mul]
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -166,7 +166,6 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
       ‖x‖ = ‖(P * Q) • x + (x - (P * Q) • x)‖ := by rw [add_sub_cancel'_right ((P * Q) • x) x]
       _ ≤ ‖(P * Q) • x‖ + ‖x - (P * Q) • x‖ := by apply norm_add_le
       _ = ‖(P * Q) • x‖ + ‖(1 - P * Q) • x‖ := by rw [sub_smul, one_smul]
-
   · calc
       ‖x‖ = ‖P • Q • x‖ + (‖Q • x - P • Q • x‖ + ‖x - Q • x‖) := by
         rw [h₂.Lnorm x, h₁.Lnorm (Q • x), sub_smul, one_smul, sub_smul, one_smul, add_assoc]
@@ -174,7 +173,6 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
         ((add_le_add_iff_left ‖P • Q • x‖).mpr (norm_add_le (Q • x - P • Q • x) (x - Q • x)))
       _ = ‖(P * Q) • x‖ + ‖(1 - P * Q) • x‖ := by
         rw [sub_add_sub_cancel', sub_smul, one_smul, mul_smul]
-
 #align is_Lprojection.mul IsLprojection.mul
 
 theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLprojection X Q) :
chore: update SHAs (#3128)

I forgot to add the SHAs in #3121 when forward-porting leanprover-community/mathlib#18644

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Christopher Hoskin
 
 ! This file was ported from Lean 3 source module analysis.normed_space.M_structure
-! leanprover-community/mathlib commit 17ef379e997badd73e5eabb4d38f11919ab3c4b3
+! leanprover-community/mathlib commit d11893b411025250c8e61ff2f12ccbd7ee35ab15
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
Diff
@@ -64,7 +64,7 @@ M-summand, M-projection, L-summand, L-projection, M-ideal, M-structure
 
 variable (X : Type _) [NormedAddCommGroup X]
 
-variable {M : Type} [Ring M] [Module M X]
+variable {M : Type _} [Ring M] [Module M X]
 
 --porting note: Mathlib3 uses names with uppercase 'L' for L-projections
 set_option linter.uppercaseLean3 false
chore: tidy various files (#3110)
Diff
@@ -48,7 +48,7 @@ The approach to showing that the L-projections form a Boolean algebra is inspire
 `MeasureTheory.MeasurableSpace`.
 
 Instead of using `P : X →L[𝕜] X` to represent projections, we use an arbitrary ring `M` with a
-faithful action on `X`. `continuous_linear_map.apply_module` can be used to recover the `X →L[𝕜] X`
+faithful action on `X`. `ContinuousLinearMap.apply_module` can be used to recover the `X →L[𝕜] X`
 special case.
 
 ## References
@@ -162,14 +162,12 @@ theorem mul [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsLp
   refine' ⟨IsIdempotentElem.mul_of_commute (h₁.commute h₂) h₁.proj h₂.proj, _⟩
   intro x
   refine' le_antisymm _ _
-  ·
-    calc
+  · calc
       ‖x‖ = ‖(P * Q) • x + (x - (P * Q) • x)‖ := by rw [add_sub_cancel'_right ((P * Q) • x) x]
       _ ≤ ‖(P * Q) • x‖ + ‖x - (P * Q) • x‖ := by apply norm_add_le
       _ = ‖(P * Q) • x‖ + ‖(1 - P * Q) • x‖ := by rw [sub_smul, one_smul]
 
-  ·
-    calc
+  · calc
       ‖x‖ = ‖P • Q • x‖ + (‖Q • x - P • Q • x‖ + ‖x - Q • x‖) := by
         rw [h₂.Lnorm x, h₁.Lnorm (Q • x), sub_smul, one_smul, sub_smul, one_smul, add_assoc]
       _ ≥ ‖P • Q • x‖ + ‖Q • x - P • Q • x + (x - Q • x)‖ :=
@@ -188,7 +186,7 @@ theorem join [FaithfulSMul M X] {P Q : M} (h₁ : IsLprojection X P) (h₂ : IsL
 
 --porting note: Advice is to explicitly name instances
 -- https://github.com/leanprover-community/mathlib4/wiki/Porting-wiki#some-common-fixes
-instance IsLprojection.Subtype.HasCompl : HasCompl { f : M // IsLprojection X f } :=
+instance Subtype.hasCompl : HasCompl { f : M // IsLprojection X f } :=
   ⟨fun P => ⟨1 - P, P.prop.Lcomplement⟩⟩
 
 @[simp]
@@ -196,7 +194,7 @@ theorem coe_compl (P : { P : M // IsLprojection X P }) : ↑(Pᶜ) = (1 : M) - 
   rfl
 #align is_Lprojection.coe_compl IsLprojection.coe_compl
 
-instance IsLprojection.Subtype.Inf [FaithfulSMul M X] : Inf { P : M // IsLprojection X P } :=
+instance Subtype.inf [FaithfulSMul M X] : Inf { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P * Q, P.prop.mul Q.prop⟩⟩
 
 @[simp]
@@ -205,7 +203,7 @@ theorem coe_inf [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
   rfl
 #align is_Lprojection.coe_inf IsLprojection.coe_inf
 
-instance IsLprojection.Subtype.Sup [FaithfulSMul M X] : Sup { P : M // IsLprojection X P } :=
+instance Subtype.sup [FaithfulSMul M X] : Sup { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P + Q - P * Q, P.prop.join Q.prop⟩⟩
 
 @[simp]
@@ -214,7 +212,7 @@ theorem coe_sup [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
   rfl
 #align is_Lprojection.coe_sup IsLprojection.coe_sup
 
-instance IsLprojection.Subtype.SDiff [FaithfulSMul M X] : SDiff { P : M // IsLprojection X P } :=
+instance Subtype.sdiff [FaithfulSMul M X] : SDiff { P : M // IsLprojection X P } :=
   ⟨fun P Q => ⟨P * (1 - Q), P.prop.mul Q.prop.Lcomplement⟩⟩
 
 @[simp]
@@ -223,7 +221,7 @@ theorem coe_sdiff [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
   rfl
 #align is_Lprojection.coe_sdiff IsLprojection.coe_sdiff
 
-instance IsLprojection.Subtype.PartialOrder [FaithfulSMul M X] :
+instance Subtype.partialOrder [FaithfulSMul M X] :
     PartialOrder { P : M // IsLprojection X P } where
   le P Q := (↑P : M) = ↑(P ⊓ Q)
   le_refl P := by simpa only [coe_inf, ← sq] using P.prop.proj.eq.symm
@@ -237,7 +235,7 @@ theorem le_def [FaithfulSMul M X] (P Q : { P : M // IsLprojection X P }) :
   Iff.rfl
 #align is_Lprojection.le_def IsLprojection.le_def
 
-instance IsLprojection.Subtype.Zero : Zero { P : M // IsLprojection X P } :=
+instance Subtype.zero : Zero { P : M // IsLprojection X P } :=
   ⟨⟨0, ⟨by rw [IsIdempotentElem, MulZeroClass.zero_mul], fun x => by
         simp only [zero_smul, norm_zero, sub_zero, one_smul, zero_add]⟩⟩⟩
 
@@ -246,7 +244,7 @@ theorem coe_zero : ↑(0 : { P : M // IsLprojection X P }) = (0 : M) :=
   rfl
 #align is_Lprojection.coe_zero IsLprojection.coe_zero
 
-instance IsLprojection.Subtype.One : One { P : M // IsLprojection X P } :=
+instance Subtype.one : One { P : M // IsLprojection X P } :=
   ⟨⟨1, sub_zero (1 : M) ▸ (0 : { P : M // IsLprojection X P }).prop.Lcomplement⟩⟩
 
 @[simp]
@@ -254,7 +252,7 @@ theorem coe_one : ↑(1 : { P : M // IsLprojection X P }) = (1 : M) :=
   rfl
 #align is_Lprojection.coe_one IsLprojection.coe_one
 
-instance IsLprojection.Subtype.BoundedOrder [FaithfulSMul M X] :
+instance Subtype.boundedOrder [FaithfulSMul M X] :
     BoundedOrder { P : M // IsLprojection X P } where
   top := 1
   le_top P := (mul_one (P : M)).symm
@@ -299,32 +297,29 @@ theorem distrib_lattice_lemma [FaithfulSMul M X] {P Q R : { P : M // IsLprojecti
 -- (deterministic) timeout at 'whnf', maximum number of heartbeats (800000) has been reached"
 -- My workaround is to show instance Lattice first
 instance [FaithfulSMul M X] : Lattice { P : M // IsLprojection X P } where
-  le_sup_left := fun P Q => by
+  le_sup_left P Q := by
     rw [le_def, coe_inf, coe_sup, ← add_sub, mul_add, mul_sub, ← mul_assoc, P.prop.proj.eq,
       sub_self, add_zero]
-  le_sup_right := fun P Q => by
+  le_sup_right P Q := by
     rw [le_def, coe_inf, coe_sup, ← add_sub, mul_add, mul_sub, (P.prop.commute Q.prop).eq,
       ← mul_assoc, Q.prop.proj.eq, add_sub_cancel'_right]
-  sup_le := fun P Q R =>
-    by
+  sup_le P Q R := by
     rw [le_def, le_def, le_def, coe_inf, coe_inf, coe_sup, coe_inf, coe_sup, ← add_sub, add_mul,
       sub_mul, mul_assoc]
     intro h₁ h₂
     rw [← h₂, ← h₁]
-  inf_le_left := fun P Q => by
+  inf_le_left P Q := by
     rw [le_def, coe_inf, coe_inf, coe_inf, mul_assoc, (Q.prop.commute P.prop).eq, ← mul_assoc,
       P.prop.proj.eq]
-  inf_le_right := fun P Q => by rw [le_def, coe_inf, coe_inf, coe_inf, mul_assoc, Q.prop.proj.eq]
-  le_inf := fun P Q R =>
-    by
+  inf_le_right P Q := by rw [le_def, coe_inf, coe_inf, coe_inf, mul_assoc, Q.prop.proj.eq]
+  le_inf P Q R := by
     rw [le_def, le_def, le_def, coe_inf, coe_inf, coe_inf, coe_inf, ← mul_assoc]
     intro h₁ h₂
     rw [← h₁, ← h₂]
 
-instance IsLprojection.Subtype.DistribLattice [FaithfulSMul M X] :
+instance Subtype.distribLattice [FaithfulSMul M X] :
     DistribLattice { P : M // IsLprojection X P } where
-  le_sup_inf := fun P Q R =>
-    by
+  le_sup_inf P Q R := by
     have e₁ : ↑((P ⊔ Q) ⊓ (P ⊔ R)) = ↑P + ↑Q * (R : M) * ↑(Pᶜ) := by
       rw [coe_inf, coe_sup, coe_sup, ← add_sub, ← add_sub, ← compl_mul, ← compl_mul, add_mul,
         mul_add, ((Pᶜ).prop.commute Q.prop).eq, mul_add, ← mul_assoc, mul_assoc (Q: M),
@@ -337,19 +332,19 @@ instance IsLprojection.Subtype.DistribLattice [FaithfulSMul M X] :
         distrib_lattice_lemma, (Q.prop.commute R.prop).eq, distrib_lattice_lemma]
     rw [le_def, e₁, coe_inf, e₂]
 
-instance IsLprojection.Subtype.BooleanAlgebra [FaithfulSMul M X] :
+instance Subtype.BooleanAlgebra [FaithfulSMul M X] :
     BooleanAlgebra { P : M // IsLprojection X P } :=
 --porting note: use explicitly specified instance names
-  { IsLprojection.Subtype.HasCompl,
-    IsLprojection.Subtype.SDiff,
-    IsLprojection.Subtype.BoundedOrder with
+  { IsLprojection.Subtype.hasCompl,
+    IsLprojection.Subtype.sdiff,
+    IsLprojection.Subtype.boundedOrder with
     inf_compl_le_bot := fun P =>
       (Subtype.ext (by rw [coe_inf, coe_compl, coe_bot, ← coe_compl, mul_compl_self])).le
     top_le_sup_compl := fun P =>
       (Subtype.ext
-          (by
-            rw [coe_top, coe_sup, coe_compl, add_sub_cancel'_right, ← coe_compl, mul_compl_self,
-              sub_zero])).le
+        (by
+          rw [coe_top, coe_sup, coe_compl, add_sub_cancel'_right, ← coe_compl, mul_compl_self,
+            sub_zero])).le
     sdiff_eq := fun P Q => Subtype.ext <| by rw [coe_sdiff, ← coe_compl, coe_inf] }
 
 end IsLprojection
feat: port Analysis.NormedSpace.MStructure (#2915)

port Analysis.NormedSpace.MStructure

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

Dependencies 10 + 525

526 files ported (98.1%)
229349 lines ported (97.7%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file