analysis.normed_space.M_structure
⟷
Mathlib.Analysis.NormedSpace.MStructure
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
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.
@@ -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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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] }
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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,
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -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) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -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) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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 }) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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ᶜ)), ←
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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:
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -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ₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -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] :
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce86f4e05e9a9b8da5e316b22c76ce76440c56a1
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce86f4e05e9a9b8da5e316b22c76ce76440c56a1
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce86f4e05e9a9b8da5e316b22c76ce76440c56a1
@@ -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ₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/d11893b411025250c8e61ff2f12ccbd7ee35ab15
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/b19481deb571022990f1baa9cbf9172e6757a479
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/57e09a1296bfb4330ddf6624f1028ba186117d82
@@ -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ᶜ)), ←
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -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) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -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, ←
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -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]
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -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]
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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 | |
@@ -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] }
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)
@@ -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
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -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
@@ -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"
@@ -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
@@ -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
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).
@@ -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
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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
@@ -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
@@ -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₂]
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
@@ -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)
noncomm_ring
tactic (#4804)
This aims to be a faithful implementation of mathlib3's noncomm_ring
tactic.
@@ -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
I ran codespell Mathlib
and got tired halfway through the suggestions.
@@ -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]
by
s! (#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 by
s".
@@ -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]
This PR fixes two things:
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.#align
statements. (This was needed for a script I wrote for #3630.)@@ -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) :
I forgot to add the SHAs in #3121 when forward-porting leanprover-community/mathlib#18644
@@ -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.
-/
@@ -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
@@ -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
The unported dependencies are
algebra.order.module
init.core
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file