category_theory.preadditive.hom_orthogonal
⟷
Mathlib.CategoryTheory.Preadditive.HomOrthogonal
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -127,7 +127,7 @@ theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f
o.matrixDecomposition (𝟙 (⨁ fun a => s (f a))) i = 1 :=
by
ext ⟨b, ⟨⟩⟩ ⟨a⟩
- simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
+ simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
simp only [category.comp_id, category.id_comp, category.assoc, End.one_def, eq_to_hom_refl,
Matrix.one_apply, hom_orthogonal.matrix_decomposition_apply, biproduct.components]
split_ifs with h
@@ -144,7 +144,7 @@ theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintyp
o.matrixDecomposition (z ≫ w) i = o.matrixDecomposition w i ⬝ o.matrixDecomposition z i :=
by
ext ⟨c, ⟨⟩⟩ ⟨a⟩
- simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
+ simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
simp only [Matrix.mul_apply, limits.biproduct.components,
hom_orthogonal.matrix_decomposition_apply, category.comp_id, category.id_comp, category.assoc,
End.mul_def, eq_to_hom_refl, eq_to_hom_trans_assoc, Finset.sum_congr]
@@ -153,7 +153,7 @@ theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintyp
apply Finset.sum_congr_set
· intros; simp; rfl
· intro b nm
- simp only [Set.mem_preimage, Set.mem_singleton_iff] at nm
+ simp only [Set.mem_preimage, Set.mem_singleton_iff] at nm
simp only [category.assoc]
convert comp_zero
convert comp_zero
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2022 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-/
-import Mathbin.CategoryTheory.Linear.Basic
-import Mathbin.CategoryTheory.Preadditive.Biproducts
-import Mathbin.LinearAlgebra.Matrix.InvariantBasisNumber
+import CategoryTheory.Linear.Basic
+import CategoryTheory.Preadditive.Biproducts
+import LinearAlgebra.Matrix.InvariantBasisNumber
#align_import category_theory.preadditive.hom_orthogonal from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2022 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.preadditive.hom_orthogonal
-! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Linear.Basic
import Mathbin.CategoryTheory.Preadditive.Biproducts
import Mathbin.LinearAlgebra.Matrix.InvariantBasisNumber
+#align_import category_theory.preadditive.hom_orthogonal from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
+
/-!
# Hom orthogonal families.
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -95,13 +95,13 @@ noncomputable def matrixDecomposition (o : HomOrthogonal s) {α β : Type} [Fint
biproduct.matrix fun j k =>
if h : f j = g k then z (f j) ⟨k, by simp [h]⟩ ⟨j, by simp⟩ ≫ eqToHom (by simp [h]) else 0
left_inv z := by
- ext (j k)
+ ext j k
simp only [category.assoc, biproduct.lift_π, biproduct.ι_matrix]
split_ifs
· simp; rfl
· symm; apply o.eq_zero h
right_inv z := by
- ext (i⟨j, w⟩⟨k, ⟨⟩⟩)
+ ext i ⟨j, w⟩ ⟨k, ⟨⟩⟩
simp only [Set.mem_preimage, Set.mem_singleton_iff]
simp [w.symm]; rfl
#align category_theory.hom_orthogonal.matrix_decomposition CategoryTheory.HomOrthogonal.matrixDecomposition
@@ -129,7 +129,7 @@ noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Typ
theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f : α → ι} (i : ι) :
o.matrixDecomposition (𝟙 (⨁ fun a => s (f a))) i = 1 :=
by
- ext (⟨b, ⟨⟩⟩⟨a⟩)
+ ext ⟨b, ⟨⟩⟩ ⟨a⟩
simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
simp only [category.comp_id, category.id_comp, category.assoc, End.one_def, eq_to_hom_refl,
Matrix.one_apply, hom_orthogonal.matrix_decomposition_apply, biproduct.components]
@@ -146,7 +146,7 @@ theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintyp
(w : (⨁ fun b => s (g b)) ⟶ ⨁ fun c => s (h c)) (i : ι) :
o.matrixDecomposition (z ≫ w) i = o.matrixDecomposition w i ⬝ o.matrixDecomposition z i :=
by
- ext (⟨c, ⟨⟩⟩⟨a⟩)
+ ext ⟨c, ⟨⟩⟩ ⟨a⟩
simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
simp only [Matrix.mul_apply, limits.biproduct.components,
hom_orthogonal.matrix_decomposition_apply, category.comp_id, category.id_comp, category.assoc,
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -67,9 +67,11 @@ namespace HomOrthogonal
variable {ι : Type _} {s : ι → C}
+#print CategoryTheory.HomOrthogonal.eq_zero /-
theorem eq_zero [HasZeroMorphisms C] (o : HomOrthogonal s) {i j : ι} (w : i ≠ j) (f : s i ⟶ s j) :
f = 0 := by haveI := o i j w; apply Subsingleton.elim
#align category_theory.hom_orthogonal.eq_zero CategoryTheory.HomOrthogonal.eq_zero
+-/
section
@@ -111,6 +113,7 @@ section
variable [Preadditive C] [HasFiniteBiproducts C]
+#print CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv /-
/-- `hom_orthogonal.matrix_decomposition` as an additive equivalence. -/
@[simps]
noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Type} [Fintype α]
@@ -119,7 +122,9 @@ noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Typ
∀ i : ι, Matrix (g ⁻¹' {i}) (f ⁻¹' {i}) (End (s i)) :=
{ o.matrixDecomposition with map_add' := fun w z => by ext; dsimp [biproduct.components]; simp }
#align category_theory.hom_orthogonal.matrix_decomposition_add_equiv CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv
+-/
+#print CategoryTheory.HomOrthogonal.matrixDecomposition_id /-
@[simp]
theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f : α → ι} (i : ι) :
o.matrixDecomposition (𝟙 (⨁ fun a => s (f a))) i = 1 :=
@@ -133,7 +138,9 @@ theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f
· convert comp_zero
simpa using biproduct.ι_π_ne _ (Ne.symm h)
#align category_theory.hom_orthogonal.matrix_decomposition_id CategoryTheory.HomOrthogonal.matrixDecomposition_id
+-/
+#print CategoryTheory.HomOrthogonal.matrixDecomposition_comp /-
theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintype α] [Fintype β]
[Fintype γ] {f : α → ι} {g : β → ι} {h : γ → ι} (z : (⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b))
(w : (⨁ fun b => s (g b)) ⟶ ⨁ fun c => s (h c)) (i : ι) :
@@ -157,6 +164,7 @@ theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintyp
convert comp_zero
apply o.eq_zero nm
#align category_theory.hom_orthogonal.matrix_decomposition_comp CategoryTheory.HomOrthogonal.matrixDecomposition_comp
+-/
section
@@ -184,6 +192,7 @@ if `s i` is simple (as then `End (s i)` is a division ring).
variable [∀ i, InvariantBasisNumber (End (s i))]
+#print CategoryTheory.HomOrthogonal.equiv_of_iso /-
/-- Given a hom orthogonal family `s : ι → C`
for which each `End (s i)` is a ring with invariant basis number (e.g. if each `s i` is simple),
if two direct sums over `s` are isomorphic, then they have the same multiplicities.
@@ -200,6 +209,7 @@ theorem equiv_of_iso (o : HomOrthogonal s) {α β : Type} [Fintype α] [Fintype
Matrix.square_of_invertible (o.matrix_decomposition i.inv c) (o.matrix_decomposition i.hom c)
(by rw [← o.matrix_decomposition_comp]; simp) (by rw [← o.matrix_decomposition_comp]; simp)
#align category_theory.hom_orthogonal.equiv_of_iso CategoryTheory.HomOrthogonal.equiv_of_iso
+-/
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -125,7 +125,7 @@ theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f
o.matrixDecomposition (𝟙 (⨁ fun a => s (f a))) i = 1 :=
by
ext (⟨b, ⟨⟩⟩⟨a⟩)
- simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
+ simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
simp only [category.comp_id, category.id_comp, category.assoc, End.one_def, eq_to_hom_refl,
Matrix.one_apply, hom_orthogonal.matrix_decomposition_apply, biproduct.components]
split_ifs with h
@@ -140,16 +140,16 @@ theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintyp
o.matrixDecomposition (z ≫ w) i = o.matrixDecomposition w i ⬝ o.matrixDecomposition z i :=
by
ext (⟨c, ⟨⟩⟩⟨a⟩)
- simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
+ simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
simp only [Matrix.mul_apply, limits.biproduct.components,
hom_orthogonal.matrix_decomposition_apply, category.comp_id, category.id_comp, category.assoc,
End.mul_def, eq_to_hom_refl, eq_to_hom_trans_assoc, Finset.sum_congr]
conv_lhs => rw [← category.id_comp w, ← biproduct.total]
simp only [preadditive.sum_comp, preadditive.comp_sum]
apply Finset.sum_congr_set
- · intros ; simp; rfl
+ · intros; simp; rfl
· intro b nm
- simp only [Set.mem_preimage, Set.mem_singleton_iff] at nm
+ simp only [Set.mem_preimage, Set.mem_singleton_iff] at nm
simp only [category.assoc]
convert comp_zero
convert comp_zero
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -43,7 +43,7 @@ This is preliminary to defining semisimple categories.
-/
-open Classical Matrix
+open scoped Classical Matrix
open CategoryTheory.Limits
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -67,12 +67,6 @@ namespace HomOrthogonal
variable {ι : Type _} {s : ι → C}
-/- warning: category_theory.hom_orthogonal.eq_zero -> CategoryTheory.HomOrthogonal.eq_zero is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} C _inst_1], (CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) -> (forall {i : ι} {j : ι}, (Ne.{succ u3} ι i j) -> (forall (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (s i) (s j)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (s i) (s j)) f (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (s i) (s j)) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (s i) (s j)) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (s i) (s j)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 _inst_2 (s i) (s j)))))))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} C _inst_1], (CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) -> (forall {i : ι} {j : ι}, (Ne.{succ u1} ι i j) -> (forall (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)) f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u3} C _inst_1 _inst_2 (s i) (s j))))))
-Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.eq_zero CategoryTheory.HomOrthogonal.eq_zeroₓ'. -/
theorem eq_zero [HasZeroMorphisms C] (o : HomOrthogonal s) {i j : ι} (w : i ≠ j) (f : s i ⟶ s j) :
f = 0 := by haveI := o i j w; apply Subsingleton.elim
#align category_theory.hom_orthogonal.eq_zero CategoryTheory.HomOrthogonal.eq_zero
@@ -117,9 +111,6 @@ section
variable [Preadditive C] [HasFiniteBiproducts C]
-/- warning: category_theory.hom_orthogonal.matrix_decomposition_add_equiv -> CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.matrix_decomposition_add_equiv CategoryTheory.HomOrthogonal.matrixDecompositionAddEquivₓ'. -/
/-- `hom_orthogonal.matrix_decomposition` as an additive equivalence. -/
@[simps]
noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Type} [Fintype α]
@@ -129,9 +120,6 @@ noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Typ
{ o.matrixDecomposition with map_add' := fun w z => by ext; dsimp [biproduct.components]; simp }
#align category_theory.hom_orthogonal.matrix_decomposition_add_equiv CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv
-/- warning: category_theory.hom_orthogonal.matrix_decomposition_id -> CategoryTheory.HomOrthogonal.matrixDecomposition_id is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.matrix_decomposition_id CategoryTheory.HomOrthogonal.matrixDecomposition_idₓ'. -/
@[simp]
theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f : α → ι} (i : ι) :
o.matrixDecomposition (𝟙 (⨁ fun a => s (f a))) i = 1 :=
@@ -146,9 +134,6 @@ theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f
simpa using biproduct.ι_π_ne _ (Ne.symm h)
#align category_theory.hom_orthogonal.matrix_decomposition_id CategoryTheory.HomOrthogonal.matrixDecomposition_id
-/- warning: category_theory.hom_orthogonal.matrix_decomposition_comp -> CategoryTheory.HomOrthogonal.matrixDecomposition_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.matrix_decomposition_comp CategoryTheory.HomOrthogonal.matrixDecomposition_compₓ'. -/
theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintype α] [Fintype β]
[Fintype γ] {f : α → ι} {g : β → ι} {h : γ → ι} (z : (⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b))
(w : (⨁ fun b => s (g b)) ⟶ ⨁ fun c => s (h c)) (i : ι) :
@@ -199,12 +184,6 @@ if `s i` is simple (as then `End (s i)` is a division ring).
variable [∀ i, InvariantBasisNumber (End (s i))]
-/- warning: category_theory.hom_orthogonal.equiv_of_iso -> CategoryTheory.HomOrthogonal.equiv_of_iso is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)] [_inst_4 : forall (i : ι), InvariantBasisNumber.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Ring.toSemiring.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.CategoryTheory.End.ring.{u1, u2} C _inst_1 _inst_2 (s i)))], (CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) -> (forall {α : Type} {β : Type} [_inst_5 : Fintype.{0} α] [_inst_6 : Fintype.{0} β] {f : α -> ι} {g : β -> ι}, (CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_5)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_6)) (fun (b : β) => s (g b))))) -> (Exists.{1} (Equiv.{1, 1} α β) (fun (e : Equiv.{1, 1} α β) => forall (a : α), Eq.{succ u3} ι (g (coeFn.{1, 1} (Equiv.{1, 1} α β) (fun (_x : Equiv.{1, 1} α β) => α -> β) (Equiv.hasCoeToFun.{1, 1} α β) e a)) (f a))))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] [_inst_4 : forall (i : ι), InvariantBasisNumber.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instSemiringEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i))], (CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) -> (forall {α : Type} {β : Type} [_inst_5 : Fintype.{0} α] [_inst_6 : Fintype.{0} β] {f : α -> ι} {g : β -> ι}, (CategoryTheory.Iso.{u2, u3} C _inst_1 (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_5)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_6)) (fun (b : β) => s (g b))))) -> (Exists.{1} (Equiv.{1, 1} α β) (fun (e : Equiv.{1, 1} α β) => forall (a : α), Eq.{succ u1} ι (g (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) _x) (Equiv.instFunLikeEquiv.{1, 1} α β) e a)) (f a))))
-Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.equiv_of_iso CategoryTheory.HomOrthogonal.equiv_of_isoₓ'. -/
/-- Given a hom orthogonal family `s : ι → C`
for which each `End (s i)` is a ring with invariant basis number (e.g. if each `s i` is simple),
if two direct sums over `s` are isomorphic, then they have the same multiplicities.
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -74,9 +74,7 @@ but is expected to have type
forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} C _inst_1], (CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) -> (forall {i : ι} {j : ι}, (Ne.{succ u1} ι i j) -> (forall (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)) f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u3} C _inst_1 _inst_2 (s i) (s j))))))
Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.eq_zero CategoryTheory.HomOrthogonal.eq_zeroₓ'. -/
theorem eq_zero [HasZeroMorphisms C] (o : HomOrthogonal s) {i j : ι} (w : i ≠ j) (f : s i ⟶ s j) :
- f = 0 := by
- haveI := o i j w
- apply Subsingleton.elim
+ f = 0 := by haveI := o i j w; apply Subsingleton.elim
#align category_theory.hom_orthogonal.eq_zero CategoryTheory.HomOrthogonal.eq_zero
section
@@ -95,15 +93,8 @@ noncomputable def matrixDecomposition (o : HomOrthogonal s) {α β : Type} [Fint
∀ i : ι, Matrix (g ⁻¹' {i}) (f ⁻¹' {i}) (End (s i))
where
toFun z i j k :=
- eqToHom
- (by
- rcases k with ⟨k, ⟨⟩⟩
- simp) ≫
- biproduct.components z k j ≫
- eqToHom
- (by
- rcases j with ⟨j, ⟨⟩⟩
- simp)
+ eqToHom (by rcases k with ⟨k, ⟨⟩⟩; simp) ≫
+ biproduct.components z k j ≫ eqToHom (by rcases j with ⟨j, ⟨⟩⟩; simp)
invFun z :=
biproduct.matrix fun j k =>
if h : f j = g k then z (f j) ⟨k, by simp [h]⟩ ⟨j, by simp⟩ ≫ eqToHom (by simp [h]) else 0
@@ -111,10 +102,8 @@ noncomputable def matrixDecomposition (o : HomOrthogonal s) {α β : Type} [Fint
ext (j k)
simp only [category.assoc, biproduct.lift_π, biproduct.ι_matrix]
split_ifs
- · simp
- rfl
- · symm
- apply o.eq_zero h
+ · simp; rfl
+ · symm; apply o.eq_zero h
right_inv z := by
ext (i⟨j, w⟩⟨k, ⟨⟩⟩)
simp only [Set.mem_preimage, Set.mem_singleton_iff]
@@ -137,11 +126,7 @@ noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Typ
[Fintype β] {f : α → ι} {g : β → ι} :
((⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b)) ≃+
∀ i : ι, Matrix (g ⁻¹' {i}) (f ⁻¹' {i}) (End (s i)) :=
- { o.matrixDecomposition with
- map_add' := fun w z => by
- ext
- dsimp [biproduct.components]
- simp }
+ { o.matrixDecomposition with map_add' := fun w z => by ext; dsimp [biproduct.components]; simp }
#align category_theory.hom_orthogonal.matrix_decomposition_add_equiv CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv
/- warning: category_theory.hom_orthogonal.matrix_decomposition_id -> CategoryTheory.HomOrthogonal.matrixDecomposition_id is a dubious translation:
@@ -156,8 +141,7 @@ theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f
simp only [category.comp_id, category.id_comp, category.assoc, End.one_def, eq_to_hom_refl,
Matrix.one_apply, hom_orthogonal.matrix_decomposition_apply, biproduct.components]
split_ifs with h
- · cases h
- simp
+ · cases h; simp
· convert comp_zero
simpa using biproduct.ι_π_ne _ (Ne.symm h)
#align category_theory.hom_orthogonal.matrix_decomposition_id CategoryTheory.HomOrthogonal.matrixDecomposition_id
@@ -178,9 +162,7 @@ theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintyp
conv_lhs => rw [← category.id_comp w, ← biproduct.total]
simp only [preadditive.sum_comp, preadditive.comp_sum]
apply Finset.sum_congr_set
- · intros
- simp
- rfl
+ · intros ; simp; rfl
· intro b nm
simp only [Set.mem_preimage, Set.mem_singleton_iff] at nm
simp only [category.assoc]
@@ -203,10 +185,7 @@ noncomputable def matrixDecompositionLinearEquiv (o : HomOrthogonal s) {α β :
((⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b)) ≃ₗ[R]
∀ i : ι, Matrix (g ⁻¹' {i}) (f ⁻¹' {i}) (End (s i)) :=
{ o.matrixDecompositionAddEquiv with
- map_smul' := fun w z => by
- ext
- dsimp [biproduct.components]
- simp }
+ map_smul' := fun w z => by ext; dsimp [biproduct.components]; simp }
#align category_theory.hom_orthogonal.matrix_decomposition_linear_equiv CategoryTheory.HomOrthogonal.matrixDecompositionLinearEquiv
-/
@@ -240,12 +219,7 @@ theorem equiv_of_iso (o : HomOrthogonal s) {α β : Type} [Fintype α] [Fintype
simp only [Cardinal.mk_fintype, Nat.cast_inj]
exact
Matrix.square_of_invertible (o.matrix_decomposition i.inv c) (o.matrix_decomposition i.hom c)
- (by
- rw [← o.matrix_decomposition_comp]
- simp)
- (by
- rw [← o.matrix_decomposition_comp]
- simp)
+ (by rw [← o.matrix_decomposition_comp]; simp) (by rw [← o.matrix_decomposition_comp]; simp)
#align category_theory.hom_orthogonal.equiv_of_iso CategoryTheory.HomOrthogonal.equiv_of_iso
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -129,10 +129,7 @@ section
variable [Preadditive C] [HasFiniteBiproducts C]
/- warning: category_theory.hom_orthogonal.matrix_decomposition_add_equiv -> CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)], (CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) -> (forall {α : Type} {β : Type} [_inst_4 : Fintype.{0} α] [_inst_5 : Fintype.{0} β] {f : α -> ι} {g : β -> ι}, AddEquiv.{u1, max u3 u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (AddZeroClass.toHasAdd.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (AddMonoid.toAddZeroClass.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (SubNegMonoid.toAddMonoid.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (AddGroup.toSubNegMonoid.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (AddCommGroup.toAddGroup.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (CategoryTheory.Preadditive.homGroup.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g)))))))) (Pi.instAdd.{u3, u1} ι (fun (i : ι) => Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (fun (i : ι) => Matrix.hasAdd.{u1, 0, 0} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Distrib.toHasAdd.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Ring.toDistrib.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.CategoryTheory.End.ring.{u1, u2} C _inst_1 _inst_2 (s i)))))))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)], (CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) -> (forall {α : Type} {β : Type} [_inst_4 : Fintype.{0} α] [_inst_5 : Fintype.{0} β] {f : α -> ι} {g : β -> ι}, AddEquiv.{u1, max u1 u3} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (forall (i : ι), Matrix.{0, 0, u1} (Set.Elem.{0} β (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (AddZeroClass.toAdd.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (AddMonoid.toAddZeroClass.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (SubNegMonoid.toAddMonoid.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (AddGroup.toSubNegMonoid.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (AddCommGroup.toAddGroup.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (CategoryTheory.Preadditive.homGroup.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))))))))) (Pi.instAdd.{u3, u1} ι (fun (i : ι) => Matrix.{0, 0, u1} (Set.Elem.{0} β (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (fun (i : ι) => Matrix.add.{u1, 0, 0} (Set.Elem.{0} β (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Distrib.toAdd.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonUnitalNonAssocSemiring.toDistrib.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Ring.toNonAssocRing.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.instRingEndToCategoryStruct.{u1, u2} C _inst_1 _inst_2 (s i))))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.matrix_decomposition_add_equiv CategoryTheory.HomOrthogonal.matrixDecompositionAddEquivₓ'. -/
/-- `hom_orthogonal.matrix_decomposition` as an additive equivalence. -/
@[simps]
@@ -148,10 +145,7 @@ noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Typ
#align category_theory.hom_orthogonal.matrix_decomposition_add_equiv CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv
/- warning: category_theory.hom_orthogonal.matrix_decomposition_id -> CategoryTheory.HomOrthogonal.matrixDecomposition_id is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) {α : Type} [_inst_4 : Fintype.{0} α] {f : α -> ι} (i : ι), Eq.{succ u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o α α _inst_4 _inst_4 (fun (a : α) => f a) (fun (b : α) => f b)) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a))))) i) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) 1 (OfNat.mk.{u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) 1 (One.one.{u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (Matrix.hasOne.{u1, 0} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (fun (a : coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (b : coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) => Subtype.decidableEq.{0} α (fun (x : α) => Membership.Mem.{0, 0} α (Set.{0} α) (Set.hasMem.{0} α) x (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (fun (a : α) (b : α) => Classical.propDecidable (Eq.{1} α a b)) a b) (MulZeroClass.toHasZero.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Ring.toNonAssocRing.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.CategoryTheory.End.ring.{u1, u2} C _inst_1 _inst_2 (s i))))))) (CategoryTheory.End.one.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))))))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) {α : Type} [_inst_4 : Fintype.{0} α] {f : α -> ι} (i : ι), Eq.{succ u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α α _inst_4 _inst_4 (fun (a : α) => f a) (fun (b : α) => f b)) (CategoryTheory.CategoryStruct.id.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a))))) i) (OfNat.ofNat.{u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) 1 (One.toOfNat1.{u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (Matrix.one.{u2, 0} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (fun (a : Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (b : Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) => Subtype.instDecidableEqSubtype.{0} α (fun (x : α) => Membership.mem.{0, 0} α (Set.{0} α) (Set.instMembershipSet.{0} α) x (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (fun (a : α) (b : α) => Classical.propDecidable (Eq.{1} α a b)) a b) (MonoidWithZero.toZero.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Semiring.toMonoidWithZero.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instSemiringEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i)))) (CategoryTheory.End.one.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.matrix_decomposition_id CategoryTheory.HomOrthogonal.matrixDecomposition_idₓ'. -/
@[simp]
theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f : α → ι} (i : ι) :
@@ -169,10 +163,7 @@ theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f
#align category_theory.hom_orthogonal.matrix_decomposition_id CategoryTheory.HomOrthogonal.matrixDecomposition_id
/- warning: category_theory.hom_orthogonal.matrix_decomposition_comp -> CategoryTheory.HomOrthogonal.matrixDecomposition_comp is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) {α : Type} {β : Type} {γ : Type} [_inst_4 : Fintype.{0} α] [_inst_5 : Fintype.{0} β] [_inst_6 : Fintype.{0} γ] {f : α -> ι} {g : β -> ι} {h : γ -> ι} (z : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (w : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (c : γ) => s (h c)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (i : ι), Eq.{succ u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o α γ _inst_4 _inst_6 (fun (a : α) => f a) (fun (c : γ) => h c)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c))) z w) i) (Matrix.mul.{u1, 0, 0, 0} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Subtype.fintype.{0} β (fun (x : β) => Membership.Mem.{0, 0} β (Set.{0} β) (Set.hasMem.{0} β) x (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (fun (a : β) => Classical.propDecidable (Membership.Mem.{0, 0} β (Set.{0} β) (Set.hasMem.{0} β) a (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i)))) _inst_5) (CategoryTheory.End.mul.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (AddCommGroup.toAddCommMonoid.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.CategoryTheory.End.addCommGroup.{u1, u2} C _inst_1 _inst_2 (s i))) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o β γ _inst_5 _inst_6 (fun (b : β) => g b) (fun (c : γ) => h c)) w i) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o α β _inst_4 _inst_5 (fun (a : α) => f a) (fun (b : β) => g b)) z i))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) {α : Type} {β : Type} {γ : Type} [_inst_4 : Fintype.{0} α] [_inst_5 : Fintype.{0} β] [_inst_6 : Fintype.{0} γ] {f : α -> ι} {g : β -> ι} {h : γ -> ι} (z : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (w : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (c : γ) => s (h c)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (i : ι), Eq.{succ u2} (Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α γ _inst_4 _inst_6 (fun (a : α) => f a) (fun (c : γ) => h c)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c)))) z w) i) (Matrix.mul.{u2, 0, 0, 0} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Subtype.fintype.{0} β (fun (x : β) => Membership.mem.{0, 0} β (Set.{0} β) (Set.instMembershipSet.{0} β) x (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (fun (a : β) => Classical.propDecidable (Membership.mem.{0, 0} β (Set.{0} β) (Set.instMembershipSet.{0} β) a (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i)))) _inst_5) (CategoryTheory.End.mul.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Ring.toNonAssocRing.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instRingEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (a : β) => g a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (a : β) => g a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o β γ _inst_5 _inst_6 (fun (b : β) => g b) (fun (c : γ) => h c)) w i) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α β _inst_4 _inst_5 (fun (a : α) => f a) (fun (b : β) => g b)) z i))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.matrix_decomposition_comp CategoryTheory.HomOrthogonal.matrixDecomposition_compₓ'. -/
theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintype α] [Fintype β]
[Fintype γ] {f : α → ι} {g : β → ι} {h : γ → ι} (z : (⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b))
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -151,7 +151,7 @@ noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Typ
lean 3 declaration is
forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) {α : Type} [_inst_4 : Fintype.{0} α] {f : α -> ι} (i : ι), Eq.{succ u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o α α _inst_4 _inst_4 (fun (a : α) => f a) (fun (b : α) => f b)) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a))))) i) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) 1 (OfNat.mk.{u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) 1 (One.one.{u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (Matrix.hasOne.{u1, 0} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (fun (a : coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (b : coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) => Subtype.decidableEq.{0} α (fun (x : α) => Membership.Mem.{0, 0} α (Set.{0} α) (Set.hasMem.{0} α) x (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (fun (a : α) (b : α) => Classical.propDecidable (Eq.{1} α a b)) a b) (MulZeroClass.toHasZero.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Ring.toNonAssocRing.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.CategoryTheory.End.ring.{u1, u2} C _inst_1 _inst_2 (s i))))))) (CategoryTheory.End.one.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))))))
but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) {α : Type} [_inst_4 : Fintype.{0} α] {f : α -> ι} (i : ι), Eq.{succ u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α α _inst_4 _inst_4 (fun (a : α) => f a) (fun (b : α) => f b)) (CategoryTheory.CategoryStruct.id.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a))))) i) (OfNat.ofNat.{u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) 1 (One.toOfNat1.{u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (Matrix.one.{u2, 0} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (fun (a : Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (b : Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) => Subtype.instDecidableEqSubtype.{0} α (fun (x : α) => Membership.mem.{0, 0} α (Set.{0} α) (Set.instMembershipSet.{0} α) x (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (fun (a : α) (b : α) => Classical.propDecidable (Eq.{1} α a b)) a b) (MonoidWithZero.toZero.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Semiring.toMonoidWithZero.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instSemiringEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i)))) (CategoryTheory.End.one.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))))
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) {α : Type} [_inst_4 : Fintype.{0} α] {f : α -> ι} (i : ι), Eq.{succ u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α α _inst_4 _inst_4 (fun (a : α) => f a) (fun (b : α) => f b)) (CategoryTheory.CategoryStruct.id.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a))))) i) (OfNat.ofNat.{u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) 1 (One.toOfNat1.{u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (Matrix.one.{u2, 0} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (fun (a : Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (b : Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) => Subtype.instDecidableEqSubtype.{0} α (fun (x : α) => Membership.mem.{0, 0} α (Set.{0} α) (Set.instMembershipSet.{0} α) x (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (fun (a : α) (b : α) => Classical.propDecidable (Eq.{1} α a b)) a b) (MonoidWithZero.toZero.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Semiring.toMonoidWithZero.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instSemiringEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i)))) (CategoryTheory.End.one.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))))
Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.matrix_decomposition_id CategoryTheory.HomOrthogonal.matrixDecomposition_idₓ'. -/
@[simp]
theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f : α → ι} (i : ι) :
@@ -172,7 +172,7 @@ theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f
lean 3 declaration is
forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) {α : Type} {β : Type} {γ : Type} [_inst_4 : Fintype.{0} α] [_inst_5 : Fintype.{0} β] [_inst_6 : Fintype.{0} γ] {f : α -> ι} {g : β -> ι} {h : γ -> ι} (z : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (w : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (c : γ) => s (h c)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (i : ι), Eq.{succ u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o α γ _inst_4 _inst_6 (fun (a : α) => f a) (fun (c : γ) => h c)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c))) z w) i) (Matrix.mul.{u1, 0, 0, 0} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Subtype.fintype.{0} β (fun (x : β) => Membership.Mem.{0, 0} β (Set.{0} β) (Set.hasMem.{0} β) x (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (fun (a : β) => Classical.propDecidable (Membership.Mem.{0, 0} β (Set.{0} β) (Set.hasMem.{0} β) a (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i)))) _inst_5) (CategoryTheory.End.mul.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (AddCommGroup.toAddCommMonoid.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.CategoryTheory.End.addCommGroup.{u1, u2} C _inst_1 _inst_2 (s i))) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o β γ _inst_5 _inst_6 (fun (b : β) => g b) (fun (c : γ) => h c)) w i) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o α β _inst_4 _inst_5 (fun (a : α) => f a) (fun (b : β) => g b)) z i))
but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) {α : Type} {β : Type} {γ : Type} [_inst_4 : Fintype.{0} α] [_inst_5 : Fintype.{0} β] [_inst_6 : Fintype.{0} γ] {f : α -> ι} {g : β -> ι} {h : γ -> ι} (z : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (w : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (c : γ) => s (h c)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (i : ι), Eq.{succ u2} (Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α γ _inst_4 _inst_6 (fun (a : α) => f a) (fun (c : γ) => h c)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c)))) z w) i) (Matrix.mul.{u2, 0, 0, 0} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Subtype.fintype.{0} β (fun (x : β) => Membership.mem.{0, 0} β (Set.{0} β) (Set.instMembershipSet.{0} β) x (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (fun (a : β) => Classical.propDecidable (Membership.mem.{0, 0} β (Set.{0} β) (Set.instMembershipSet.{0} β) a (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i)))) _inst_5) (CategoryTheory.End.mul.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Ring.toNonAssocRing.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instRingEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (a : β) => g a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (a : β) => g a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o β γ _inst_5 _inst_6 (fun (b : β) => g b) (fun (c : γ) => h c)) w i) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α β _inst_4 _inst_5 (fun (a : α) => f a) (fun (b : β) => g b)) z i))
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) {α : Type} {β : Type} {γ : Type} [_inst_4 : Fintype.{0} α] [_inst_5 : Fintype.{0} β] [_inst_6 : Fintype.{0} γ] {f : α -> ι} {g : β -> ι} {h : γ -> ι} (z : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (w : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (c : γ) => s (h c)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (i : ι), Eq.{succ u2} (Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α γ _inst_4 _inst_6 (fun (a : α) => f a) (fun (c : γ) => h c)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c)))) z w) i) (Matrix.mul.{u2, 0, 0, 0} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Subtype.fintype.{0} β (fun (x : β) => Membership.mem.{0, 0} β (Set.{0} β) (Set.instMembershipSet.{0} β) x (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (fun (a : β) => Classical.propDecidable (Membership.mem.{0, 0} β (Set.{0} β) (Set.instMembershipSet.{0} β) a (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i)))) _inst_5) (CategoryTheory.End.mul.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Ring.toNonAssocRing.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instRingEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (a : β) => g a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (a : β) => g a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o β γ _inst_5 _inst_6 (fun (b : β) => g b) (fun (c : γ) => h c)) w i) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α β _inst_4 _inst_5 (fun (a : α) => f a) (fun (b : β) => g b)) z i))
Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.matrix_decomposition_comp CategoryTheory.HomOrthogonal.matrixDecomposition_compₓ'. -/
theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintype α] [Fintype β]
[Fintype γ] {f : α → ι} {g : β → ι} {h : γ → ι} (z : (⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b))
@@ -233,7 +233,7 @@ variable [∀ i, InvariantBasisNumber (End (s i))]
lean 3 declaration is
forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)] [_inst_4 : forall (i : ι), InvariantBasisNumber.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Ring.toSemiring.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.CategoryTheory.End.ring.{u1, u2} C _inst_1 _inst_2 (s i)))], (CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) -> (forall {α : Type} {β : Type} [_inst_5 : Fintype.{0} α] [_inst_6 : Fintype.{0} β] {f : α -> ι} {g : β -> ι}, (CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_5)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_6)) (fun (b : β) => s (g b))))) -> (Exists.{1} (Equiv.{1, 1} α β) (fun (e : Equiv.{1, 1} α β) => forall (a : α), Eq.{succ u3} ι (g (coeFn.{1, 1} (Equiv.{1, 1} α β) (fun (_x : Equiv.{1, 1} α β) => α -> β) (Equiv.hasCoeToFun.{1, 1} α β) e a)) (f a))))
but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] [_inst_4 : forall (i : ι), InvariantBasisNumber.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instSemiringEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i))], (CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) -> (forall {α : Type} {β : Type} [_inst_5 : Fintype.{0} α] [_inst_6 : Fintype.{0} β] {f : α -> ι} {g : β -> ι}, (CategoryTheory.Iso.{u2, u3} C _inst_1 (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_5)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_6)) (fun (b : β) => s (g b))))) -> (Exists.{1} (Equiv.{1, 1} α β) (fun (e : Equiv.{1, 1} α β) => forall (a : α), Eq.{succ u1} ι (g (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{1, 1} α β) e a)) (f a))))
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] [_inst_4 : forall (i : ι), InvariantBasisNumber.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instSemiringEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i))], (CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) -> (forall {α : Type} {β : Type} [_inst_5 : Fintype.{0} α] [_inst_6 : Fintype.{0} β] {f : α -> ι} {g : β -> ι}, (CategoryTheory.Iso.{u2, u3} C _inst_1 (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_5)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_6)) (fun (b : β) => s (g b))))) -> (Exists.{1} (Equiv.{1, 1} α β) (fun (e : Equiv.{1, 1} α β) => forall (a : α), Eq.{succ u1} ι (g (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α) => β) _x) (Equiv.instFunLikeEquiv.{1, 1} α β) e a)) (f a))))
Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.equiv_of_iso CategoryTheory.HomOrthogonal.equiv_of_isoₓ'. -/
/-- Given a hom orthogonal family `s : ι → C`
for which each `End (s i)` is a ring with invariant basis number (e.g. if each `s i` is simple),
mathlib commit https://github.com/leanprover-community/mathlib/commit/2f8347015b12b0864dfaf366ec4909eb70c78740
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
! This file was ported from Lean 3 source module category_theory.preadditive.hom_orthogonal
-! leanprover-community/mathlib commit 829895f162a1f29d0133f4b3538f4cd1fb5bffd3
+! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.LinearAlgebra.Matrix.InvariantBasisNumber
/-!
# Hom orthogonal families.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
A family of objects in a category with zero morphisms is "hom orthogonal" if the only
morphism between distinct objects is the zero morphism.
mathlib commit https://github.com/leanprover-community/mathlib/commit/28b2a92f2996d28e580450863c130955de0ed398
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
! This file was ported from Lean 3 source module category_theory.preadditive.hom_orthogonal
-! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
+! leanprover-community/mathlib commit 829895f162a1f29d0133f4b3538f4cd1fb5bffd3
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,9 +15,6 @@ import Mathbin.LinearAlgebra.Matrix.InvariantBasisNumber
/-!
# Hom orthogonal families.
-> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
-> Any changes to this file require a corresponding PR to mathlib4.
-
A family of objects in a category with zero morphisms is "hom orthogonal" if the only
morphism between distinct objects is the zero morphism.
mathlib commit https://github.com/leanprover-community/mathlib/commit/2f8347015b12b0864dfaf366ec4909eb70c78740
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
! This file was ported from Lean 3 source module category_theory.preadditive.hom_orthogonal
-! leanprover-community/mathlib commit 829895f162a1f29d0133f4b3538f4cd1fb5bffd3
+! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.LinearAlgebra.Matrix.InvariantBasisNumber
/-!
# Hom orthogonal families.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
A family of objects in a category with zero morphisms is "hom orthogonal" if the only
morphism between distinct objects is the zero morphism.
mathlib commit https://github.com/leanprover-community/mathlib/commit/cc5dd6244981976cc9da7afc4eee5682b037a013
@@ -50,6 +50,7 @@ namespace CategoryTheory
variable {C : Type u} [Category.{v} C]
+#print CategoryTheory.HomOrthogonal /-
/-- A family of objects is "hom orthogonal" if
there is at most one morphism between distinct objects.
@@ -57,11 +58,18 @@ there is at most one morphism between distinct objects.
def HomOrthogonal {ι : Type _} (s : ι → C) : Prop :=
∀ i j, i ≠ j → Subsingleton (s i ⟶ s j)
#align category_theory.hom_orthogonal CategoryTheory.HomOrthogonal
+-/
namespace HomOrthogonal
variable {ι : Type _} {s : ι → C}
+/- warning: category_theory.hom_orthogonal.eq_zero -> CategoryTheory.HomOrthogonal.eq_zero is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} C _inst_1], (CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) -> (forall {i : ι} {j : ι}, (Ne.{succ u3} ι i j) -> (forall (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (s i) (s j)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (s i) (s j)) f (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (s i) (s j)) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (s i) (s j)) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (s i) (s j)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 _inst_2 (s i) (s j)))))))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} C _inst_1], (CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) -> (forall {i : ι} {j : ι}, (Ne.{succ u1} ι i j) -> (forall (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)) f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (s i) (s j)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u3} C _inst_1 _inst_2 (s i) (s j))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.eq_zero CategoryTheory.HomOrthogonal.eq_zeroₓ'. -/
theorem eq_zero [HasZeroMorphisms C] (o : HomOrthogonal s) {i j : ι} (w : i ≠ j) (f : s i ⟶ s j) :
f = 0 := by
haveI := o i j w
@@ -72,6 +80,7 @@ section
variable [HasZeroMorphisms C] [HasFiniteBiproducts C]
+#print CategoryTheory.HomOrthogonal.matrixDecomposition /-
/-- Morphisms between two direct sums over a hom orthogonal family `s : ι → C`
are equivalent to block diagonal matrices,
with blocks indexed by `ι`,
@@ -108,6 +117,7 @@ noncomputable def matrixDecomposition (o : HomOrthogonal s) {α β : Type} [Fint
simp only [Set.mem_preimage, Set.mem_singleton_iff]
simp [w.symm]; rfl
#align category_theory.hom_orthogonal.matrix_decomposition CategoryTheory.HomOrthogonal.matrixDecomposition
+-/
end
@@ -115,6 +125,12 @@ section
variable [Preadditive C] [HasFiniteBiproducts C]
+/- warning: category_theory.hom_orthogonal.matrix_decomposition_add_equiv -> CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)], (CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) -> (forall {α : Type} {β : Type} [_inst_4 : Fintype.{0} α] [_inst_5 : Fintype.{0} β] {f : α -> ι} {g : β -> ι}, AddEquiv.{u1, max u3 u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (AddZeroClass.toHasAdd.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (AddMonoid.toAddZeroClass.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (SubNegMonoid.toAddMonoid.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (AddGroup.toSubNegMonoid.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (AddCommGroup.toAddGroup.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g))) (CategoryTheory.Preadditive.homGroup.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_1.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 α _inst_4 f)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv._proof_2.{u2, u3, u1} C _inst_1 ι s _inst_2 _inst_3 β _inst_5 g)))))))) (Pi.instAdd.{u3, u1} ι (fun (i : ι) => Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (fun (i : ι) => Matrix.hasAdd.{u1, 0, 0} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Distrib.toHasAdd.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Ring.toDistrib.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.CategoryTheory.End.ring.{u1, u2} C _inst_1 _inst_2 (s i)))))))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)], (CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) -> (forall {α : Type} {β : Type} [_inst_4 : Fintype.{0} α] [_inst_5 : Fintype.{0} β] {f : α -> ι} {g : β -> ι}, AddEquiv.{u1, max u1 u3} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (forall (i : ι), Matrix.{0, 0, u1} (Set.Elem.{0} β (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (AddZeroClass.toAdd.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (AddMonoid.toAddZeroClass.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (SubNegMonoid.toAddMonoid.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (AddGroup.toSubNegMonoid.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (AddCommGroup.toAddGroup.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (CategoryTheory.Preadditive.homGroup.{u1, u2} C _inst_1 _inst_2 (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))))))))) (Pi.instAdd.{u3, u1} ι (fun (i : ι) => Matrix.{0, 0, u1} (Set.Elem.{0} β (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (fun (i : ι) => Matrix.add.{u1, 0, 0} (Set.Elem.{0} β (Set.preimage.{0, u3} β ι g (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u3} α ι f (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.instSingletonSet.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Distrib.toAdd.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonUnitalNonAssocSemiring.toDistrib.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Ring.toNonAssocRing.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.instRingEndToCategoryStruct.{u1, u2} C _inst_1 _inst_2 (s i))))))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.matrix_decomposition_add_equiv CategoryTheory.HomOrthogonal.matrixDecompositionAddEquivₓ'. -/
/-- `hom_orthogonal.matrix_decomposition` as an additive equivalence. -/
@[simps]
noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Type} [Fintype α]
@@ -128,6 +144,12 @@ noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Typ
simp }
#align category_theory.hom_orthogonal.matrix_decomposition_add_equiv CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv
+/- warning: category_theory.hom_orthogonal.matrix_decomposition_id -> CategoryTheory.HomOrthogonal.matrixDecomposition_id is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) {α : Type} [_inst_4 : Fintype.{0} α] {f : α -> ι} (i : ι), Eq.{succ u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (b : α) => f b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o α α _inst_4 _inst_4 (fun (a : α) => f a) (fun (b : α) => f b)) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a))))) i) (OfNat.ofNat.{u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) 1 (OfNat.mk.{u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) 1 (One.one.{u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (Matrix.hasOne.{u1, 0} (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (fun (a : coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (b : coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) => Subtype.decidableEq.{0} α (fun (x : α) => Membership.Mem.{0, 0} α (Set.{0} α) (Set.hasMem.{0} α) x (Set.preimage.{0, u3} α ι (fun (b : α) => f b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (fun (a : α) (b : α) => Classical.propDecidable (Eq.{1} α a b)) a b) (MulZeroClass.toHasZero.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (NonAssocRing.toNonUnitalNonAssocRing.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Ring.toNonAssocRing.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.CategoryTheory.End.ring.{u1, u2} C _inst_1 _inst_2 (s i))))))) (CategoryTheory.End.one.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))))))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) {α : Type} [_inst_4 : Fintype.{0} α] {f : α -> ι} (i : ι), Eq.{succ u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : α) => s (f b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (b : α) => s (f b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α α _inst_4 _inst_4 (fun (a : α) => f a) (fun (b : α) => f b)) (CategoryTheory.CategoryStruct.id.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a))))) i) (OfNat.ofNat.{u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) 1 (One.toOfNat1.{u2} (Matrix.{0, 0, u2} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (Matrix.one.{u2, 0} (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (fun (a : Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (b : Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) => Subtype.instDecidableEqSubtype.{0} α (fun (x : α) => Membership.mem.{0, 0} α (Set.{0} α) (Set.instMembershipSet.{0} α) x (Set.preimage.{0, u1} α ι (fun (b : α) => f b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (fun (a : α) (b : α) => Classical.propDecidable (Eq.{1} α a b)) a b) (MonoidWithZero.toZero.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Semiring.toMonoidWithZero.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instSemiringEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i)))) (CategoryTheory.End.one.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.matrix_decomposition_id CategoryTheory.HomOrthogonal.matrixDecomposition_idₓ'. -/
@[simp]
theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f : α → ι} (i : ι) :
o.matrixDecomposition (𝟙 (⨁ fun a => s (f a))) i = 1 :=
@@ -143,6 +165,12 @@ theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f
simpa using biproduct.ι_π_ne _ (Ne.symm h)
#align category_theory.hom_orthogonal.matrix_decomposition_id CategoryTheory.HomOrthogonal.matrixDecomposition_id
+/- warning: category_theory.hom_orthogonal.matrix_decomposition_comp -> CategoryTheory.HomOrthogonal.matrixDecomposition_comp is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) {α : Type} {β : Type} {γ : Type} [_inst_4 : Fintype.{0} α] [_inst_5 : Fintype.{0} β] [_inst_6 : Fintype.{0} γ] {f : α -> ι} {g : β -> ι} {h : γ -> ι} (z : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (w : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (c : γ) => s (h c)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (i : ι), Eq.{succ u1} (Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i))) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o α γ _inst_4 _inst_6 (fun (a : α) => f a) (fun (c : γ) => h c)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c))) z w) i) (Matrix.mul.{u1, 0, 0, 0} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Subtype.fintype.{0} β (fun (x : β) => Membership.Mem.{0, 0} β (Set.{0} β) (Set.hasMem.{0} β) x (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (fun (a : β) => Classical.propDecidable (Membership.Mem.{0, 0} β (Set.{0} β) (Set.hasMem.{0} β) a (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i)))) _inst_5) (CategoryTheory.End.mul.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (AddCommGroup.toAddCommMonoid.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.CategoryTheory.End.addCommGroup.{u1, u2} C _inst_1 _inst_2 (s i))) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b))) (CategoryTheory.Limits.biproduct.{0, u1, u2} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 γ _inst_6 (fun (c : γ) => h c)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} γ) Type (Set.hasCoeToSort.{0} γ) (Set.preimage.{0, u3} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o β γ _inst_5 _inst_6 (fun (b : β) => g b) (fun (c : γ) => h c)) w i) (coeFn.{max 1 (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (fun (_x : Equiv.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) => (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) -> (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (Equiv.hasCoeToFun.{succ u1, max (succ u3) (succ u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_1.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 α _inst_4 (fun (a : α) => f a))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.HomOrthogonal.matrixDecomposition._proof_2.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 β _inst_5 (fun (b : β) => g b)))) (forall (i : ι), Matrix.{0, 0, u1} (coeSort.{1, 2} (Set.{0} β) Type (Set.hasCoeToSort.{0} β) (Set.preimage.{0, u3} β ι (fun (b : β) => g b) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (coeSort.{1, 2} (Set.{0} α) Type (Set.hasCoeToSort.{0} α) (Set.preimage.{0, u3} α ι (fun (a : α) => f a) (Singleton.singleton.{u3, u3} ι (Set.{u3} ι) (Set.hasSingleton.{u3} ι) i))) (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u1, u2, u3} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 o α β _inst_4 _inst_5 (fun (a : α) => f a) (fun (b : β) => g b)) z i))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] (o : CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) {α : Type} {β : Type} {γ : Type} [_inst_4 : Fintype.{0} α] [_inst_5 : Fintype.{0} β] [_inst_6 : Fintype.{0} γ] {f : α -> ι} {g : β -> ι} {h : γ -> ι} (z : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (w : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (c : γ) => s (h c)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (i : ι), Eq.{succ u2} (Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α γ _inst_4 _inst_6 (fun (a : α) => f a) (fun (c : γ) => h c)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c)))) z w) i) (Matrix.mul.{u2, 0, 0, 0} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Subtype.fintype.{0} β (fun (x : β) => Membership.mem.{0, 0} β (Set.{0} β) (Set.instMembershipSet.{0} β) x (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (fun (a : β) => Classical.propDecidable (Membership.mem.{0, 0} β (Set.{0} β) (Set.instMembershipSet.{0} β) a (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i)))) _inst_5) (CategoryTheory.End.mul.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (NonAssocRing.toNonUnitalNonAssocRing.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (Ring.toNonAssocRing.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instRingEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (a : β) => g a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (a : β) => s (g a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (b : γ) => s (h b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (b : γ) => h b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (a : β) => g a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : β) => s (g a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : γ) => s (h b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} γ C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} γ _inst_6)) (fun (c : γ) => s (h c))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} γ (Set.preimage.{0, u1} γ ι (fun (c : γ) => h c) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o β γ _inst_5 _inst_6 (fun (b : β) => g b) (fun (c : γ) => h c)) w i) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (Equiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (fun (_x : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) => forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u2) (succ u1)} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_4)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_5)) (fun (b : β) => s (g b))))) (forall (i : ι), Matrix.{0, 0, u2} (Set.Elem.{0} β (Set.preimage.{0, u1} β ι (fun (b : β) => g b) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (Set.Elem.{0} α (Set.preimage.{0, u1} α ι (fun (a : α) => f a) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))) (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)))) (CategoryTheory.HomOrthogonal.matrixDecomposition.{u2, u3, u1} C _inst_1 ι s (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 o α β _inst_4 _inst_5 (fun (a : α) => f a) (fun (b : β) => g b)) z i))
+Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.matrix_decomposition_comp CategoryTheory.HomOrthogonal.matrixDecomposition_compₓ'. -/
theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintype α] [Fintype β]
[Fintype γ] {f : α → ι} {g : β → ι} {h : γ → ι} (z : (⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b))
(w : (⨁ fun b => s (g b)) ⟶ ⨁ fun c => s (h c)) (i : ι) :
@@ -173,6 +201,7 @@ section
variable {R : Type _} [Semiring R] [Linear R C]
+#print CategoryTheory.HomOrthogonal.matrixDecompositionLinearEquiv /-
/-- `hom_orthogonal.matrix_decomposition` as an `R`-linear equivalence. -/
@[simps]
noncomputable def matrixDecompositionLinearEquiv (o : HomOrthogonal s) {α β : Type} [Fintype α]
@@ -185,6 +214,7 @@ noncomputable def matrixDecompositionLinearEquiv (o : HomOrthogonal s) {α β :
dsimp [biproduct.components]
simp }
#align category_theory.hom_orthogonal.matrix_decomposition_linear_equiv CategoryTheory.HomOrthogonal.matrixDecompositionLinearEquiv
+-/
end
@@ -196,6 +226,12 @@ if `s i` is simple (as then `End (s i)` is a division ring).
variable [∀ i, InvariantBasisNumber (End (s i))]
+/- warning: category_theory.hom_orthogonal.equiv_of_iso -> CategoryTheory.HomOrthogonal.equiv_of_iso is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {ι : Type.{u3}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u1, u2} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2)] [_inst_4 : forall (i : ι), InvariantBasisNumber.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (Ring.toSemiring.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (s i)) (CategoryTheory.Preadditive.CategoryTheory.End.ring.{u1, u2} C _inst_1 _inst_2 (s i)))], (CategoryTheory.HomOrthogonal.{u1, u2, u3} C _inst_1 ι s) -> (forall {α : Type} {β : Type} [_inst_5 : Fintype.{0} α] [_inst_6 : Fintype.{0} β] {f : α -> ι} {g : β -> ι}, (CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Limits.biproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_5)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.hasBiproduct.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u1, u2} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_6)) (fun (b : β) => s (g b))))) -> (Exists.{1} (Equiv.{1, 1} α β) (fun (e : Equiv.{1, 1} α β) => forall (a : α), Eq.{succ u3} ι (g (coeFn.{1, 1} (Equiv.{1, 1} α β) (fun (_x : Equiv.{1, 1} α β) => α -> β) (Equiv.hasCoeToFun.{1, 1} α β) e a)) (f a))))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {ι : Type.{u1}} {s : ι -> C} [_inst_2 : CategoryTheory.Preadditive.{u2, u3} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasFiniteBiproducts.{u2, u3} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2)] [_inst_4 : forall (i : ι), InvariantBasisNumber.{u2} (CategoryTheory.End.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (s i)) (CategoryTheory.Preadditive.instSemiringEndToCategoryStruct.{u2, u3} C _inst_1 _inst_2 (s i))], (CategoryTheory.HomOrthogonal.{u2, u3, u1} C _inst_1 ι s) -> (forall {α : Type} {β : Type} [_inst_5 : Fintype.{0} α] [_inst_6 : Fintype.{0} β] {f : α -> ι} {g : β -> ι}, (CategoryTheory.Iso.{u2, u3} C _inst_1 (CategoryTheory.Limits.biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (a : α) => s (f a)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} α C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} α _inst_5)) (fun (a : α) => s (f a)))) (CategoryTheory.Limits.biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (fun (b : β) => s (g b)) (CategoryTheory.Limits.HasBiproductsOfShape.has_biproduct.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) (CategoryTheory.Limits.hasBiproductsOfShape_finite.{0, u2, u3} β C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u3} C _inst_1 _inst_2) _inst_3 (Finite.of_fintype.{0} β _inst_6)) (fun (b : β) => s (g b))))) -> (Exists.{1} (Equiv.{1, 1} α β) (fun (e : Equiv.{1, 1} α β) => forall (a : α), Eq.{succ u1} ι (g (FunLike.coe.{1, 1, 1} (Equiv.{1, 1} α β) α (fun (_x : α) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α) => β) _x) (Equiv.instFunLikeEquiv.{1, 1} α β) e a)) (f a))))
+Case conversion may be inaccurate. Consider using '#align category_theory.hom_orthogonal.equiv_of_iso CategoryTheory.HomOrthogonal.equiv_of_isoₓ'. -/
/-- Given a hom orthogonal family `s : ι → C`
for which each `End (s i)` is a ring with invariant basis number (e.g. if each `s i` is simple),
if two direct sums over `s` are isomorphic, then they have the same multiplicities.
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Subsingleton,Nontrivial
off of Data.Set.Basic
(#11832)
Moves definition of and lemmas related to Set.Subsingleton
and Set.Nontrivial
to a new file, so that Basic
can be shorter.
@@ -6,7 +6,7 @@ Authors: Scott Morrison
import Mathlib.CategoryTheory.Linear.Basic
import Mathlib.CategoryTheory.Preadditive.Biproducts
import Mathlib.LinearAlgebra.Matrix.InvariantBasisNumber
-import Mathlib.Data.Set.Basic
+import Mathlib.Data.Set.Subsingleton
#align_import category_theory.preadditive.hom_orthogonal from "leanprover-community/mathlib"@"829895f162a1f29d0133f4b3538f4cd1fb5bffd3"
@@ -73,7 +73,7 @@ are equivalent to block diagonal matrices,
with blocks indexed by `ι`,
and matrix entries in `i`-th block living in the endomorphisms of `s i`. -/
@[simps]
-noncomputable def matrixDecomposition (o : HomOrthogonal s) {α β : Type} [Fintype α] [Fintype β]
+noncomputable def matrixDecomposition (o : HomOrthogonal s) {α β : Type} [Finite α] [Finite β]
{f : α → ι} {g : β → ι} :
((⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b)) ≃
∀ i : ι, Matrix (g ⁻¹' {i}) (f ⁻¹' {i}) (End (s i)) where
@@ -115,8 +115,8 @@ variable [Preadditive C] [HasFiniteBiproducts C]
/-- `HomOrthogonal.matrixDecomposition` as an additive equivalence. -/
@[simps!]
-noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Type} [Fintype α]
- [Fintype β] {f : α → ι} {g : β → ι} :
+noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Type} [Finite α]
+ [Finite β] {f : α → ι} {g : β → ι} :
((⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b)) ≃+
∀ i : ι, Matrix (g ⁻¹' {i}) (f ⁻¹' {i}) (End (s i)) :=
{ o.matrixDecomposition with
@@ -127,7 +127,7 @@ noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Typ
#align category_theory.hom_orthogonal.matrix_decomposition_add_equiv CategoryTheory.HomOrthogonal.matrixDecompositionAddEquiv
@[simp]
-theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f : α → ι} (i : ι) :
+theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Finite α] {f : α → ι} (i : ι) :
o.matrixDecomposition (𝟙 (⨁ fun a => s (f a))) i = 1 := by
ext ⟨b, ⟨⟩⟩ ⟨a, j_property⟩
simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
@@ -143,8 +143,8 @@ theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f
rw [this, comp_zero]
#align category_theory.hom_orthogonal.matrix_decomposition_id CategoryTheory.HomOrthogonal.matrixDecomposition_id
-theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintype α] [Fintype β]
- [Fintype γ] {f : α → ι} {g : β → ι} {h : γ → ι} (z : (⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b))
+theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Finite α] [Fintype β]
+ [Finite γ] {f : α → ι} {g : β → ι} {h : γ → ι} (z : (⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b))
(w : (⨁ fun b => s (g b)) ⟶ ⨁ fun c => s (h c)) (i : ι) :
o.matrixDecomposition (z ≫ w) i = o.matrixDecomposition w i * o.matrixDecomposition z i := by
ext ⟨c, ⟨⟩⟩ ⟨a, j_property⟩
@@ -172,8 +172,8 @@ variable {R : Type*} [Semiring R] [Linear R C]
/-- `HomOrthogonal.MatrixDecomposition` as an `R`-linear equivalence. -/
@[simps]
-noncomputable def matrixDecompositionLinearEquiv (o : HomOrthogonal s) {α β : Type} [Fintype α]
- [Fintype β] {f : α → ι} {g : β → ι} :
+noncomputable def matrixDecompositionLinearEquiv (o : HomOrthogonal s) {α β : Type} [Finite α]
+ [Finite β] {f : α → ι} {g : β → ι} :
((⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b)) ≃ₗ[R]
∀ i : ι, Matrix (g ⁻¹' {i}) (f ⁻¹' {i}) (End (s i)) :=
{ o.matrixDecompositionAddEquiv with
@@ -197,13 +197,14 @@ variable [∀ i, InvariantBasisNumber (End (s i))]
for which each `End (s i)` is a ring with invariant basis number (e.g. if each `s i` is simple),
if two direct sums over `s` are isomorphic, then they have the same multiplicities.
-/
-theorem equiv_of_iso (o : HomOrthogonal s) {α β : Type} [Fintype α] [Fintype β] {f : α → ι}
+theorem equiv_of_iso (o : HomOrthogonal s) {α β : Type} [Finite α] [Finite β] {f : α → ι}
{g : β → ι} (i : (⨁ fun a => s (f a)) ≅ ⨁ fun b => s (g b)) :
∃ e : α ≃ β, ∀ a, g (e a) = f a := by
refine' ⟨Equiv.ofPreimageEquiv _, fun a => Equiv.ofPreimageEquiv_map _ _⟩
intro c
apply Nonempty.some
apply Cardinal.eq.1
+ cases nonempty_fintype α; cases nonempty_fintype β
simp only [Cardinal.mk_fintype, Nat.cast_inj]
exact
Matrix.square_of_invertible (o.matrixDecomposition i.inv c) (o.matrixDecomposition i.hom c)
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -38,7 +38,8 @@ This is preliminary to defining semisimple categories.
-/
-open Classical Matrix CategoryTheory.Limits
+open scoped Classical
+open Matrix CategoryTheory.Limits
universe v u
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -136,7 +136,7 @@ theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f
· cases h
simp
· simp at h
- -- porting note: used to be `convert comp_zero`, but that does not work anymore
+ -- Porting note: used to be `convert comp_zero`, but that does not work anymore
have : biproduct.ι (fun a ↦ s (f a)) a ≫ biproduct.π (fun b ↦ s (f b)) b = 0 := by
simpa using biproduct.ι_π_ne _ (Ne.symm h)
rw [this, comp_zero]
@@ -159,7 +159,7 @@ theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintyp
· intro b nm
simp only [Set.mem_preimage, Set.mem_singleton_iff] at nm
simp only [Category.assoc]
- -- porting note: this used to be 4 times `convert comp_zero`
+ -- Porting note: this used to be 4 times `convert comp_zero`
have : biproduct.ι (fun b ↦ s (g b)) b ≫ w ≫ biproduct.π (fun b ↦ s (h b)) c = 0 := by
apply o.eq_zero nm
simp only [this, comp_zero]
Data.Set.Basic
from scripts/noshake.json
.example
s only,
move these example
s to a new test file.Order.Filter.Basic
dependency on Control.Traversable.Instances
,
as the relevant parts were moved to Order.Filter.ListTraverse
.lake exe shake --fix
.@@ -6,6 +6,7 @@ Authors: Scott Morrison
import Mathlib.CategoryTheory.Linear.Basic
import Mathlib.CategoryTheory.Preadditive.Biproducts
import Mathlib.LinearAlgebra.Matrix.InvariantBasisNumber
+import Mathlib.Data.Set.Basic
#align_import category_theory.preadditive.hom_orthogonal from "leanprover-community/mathlib"@"829895f162a1f29d0133f4b3538f4cd1fb5bffd3"
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Joachim Breitner <mail@joachim-breitner.de>
@@ -112,7 +112,7 @@ section
variable [Preadditive C] [HasFiniteBiproducts C]
/-- `HomOrthogonal.matrixDecomposition` as an additive equivalence. -/
-@[simps]
+@[simps!]
noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Type} [Fintype α]
[Fintype β] {f : α → ι} {g : β → ι} :
((⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b)) ≃+
Pairwise
wherever possible (#9236)
Performed with a regex search for ∀ (.) (.), \1 ≠ \2 →
, and a few variants to catch implicit binders and explicit types.
I have deliberately avoided trying to make the analogous Set.Pairwise
transformation (or any Pairwise (foo on bar)
transformations) in this PR, to keep the diff small.
Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
@@ -50,7 +50,7 @@ there is at most one morphism between distinct objects.
(In a category with zero morphisms, that must be the zero morphism.) -/
def HomOrthogonal {ι : Type*} (s : ι → C) : Prop :=
- ∀ i j, i ≠ j → Subsingleton (s i ⟶ s j)
+ Pairwise fun i j => Subsingleton (s i ⟶ s j)
#align category_theory.hom_orthogonal CategoryTheory.HomOrthogonal
namespace HomOrthogonal
@@ -58,9 +58,8 @@ namespace HomOrthogonal
variable {ι : Type*} {s : ι → C}
theorem eq_zero [HasZeroMorphisms C] (o : HomOrthogonal s) {i j : ι} (w : i ≠ j) (f : s i ⟶ s j) :
- f = 0 := by
- haveI := o i j w
- apply Subsingleton.elim
+ f = 0 :=
+ (o w).elim _ _
#align category_theory.hom_orthogonal.eq_zero CategoryTheory.HomOrthogonal.eq_zero
section
@@ -30,7 +30,7 @@ then decompositions of an object as a biproduct of the family have uniquely defi
We state this as:
```
theorem HomOrthogonal.equiv_of_iso (o : HomOrthogonal s) {f : α → ι} {g : β → ι}
- (i : (⨁ fun a => s (f a)) ≅ ⨁ fun b => s (g b)) : ∃ e : α ≃ β, ∀ a, g (e a) = f a
+ (i : (⨁ fun a => s (f a)) ≅ ⨁ fun b => s (g b)) : ∃ e : α ≃ β, ∀ a, g (e a) = f a
```
This is preliminary to defining semisimple categories.
@@ -100,7 +100,6 @@ noncomputable def matrixDecomposition (o : HomOrthogonal s) {α β : Type} [Fint
right_inv z := by
ext i ⟨j, w⟩ ⟨k, ⟨⟩⟩
simp only [eqToHom_refl, biproduct.matrix_components, Category.id_comp]
- simp only [Set.mem_preimage, Set.mem_singleton_iff]
split_ifs with h
· simp
· exfalso
⬝
notation in favor of HMul
(#6487)
The main difficulty here is that *
has a slightly difference precedence to ⬝
. notably around smul
and neg
.
The other annoyance is that ↑U ⬝ A ⬝ ↑U⁻¹ : Matrix m m 𝔸
now has to be written U.val * A * (U⁻¹).val
in order to typecheck.
A downside of this change to consider: if you have a goal of A * (B * C) = (A * B) * C
, mul_assoc
now gives the illusion of matching, when in fact Matrix.mul_assoc
is needed. Previously the distinct symbol made it easy to avoid this mistake.
On the flipside, there is now no need to rewrite by Matrix.mul_eq_mul
all the time (indeed, the lemma is now removed).
@@ -146,7 +146,7 @@ theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f
theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintype α] [Fintype β]
[Fintype γ] {f : α → ι} {g : β → ι} {h : γ → ι} (z : (⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b))
(w : (⨁ fun b => s (g b)) ⟶ ⨁ fun c => s (h c)) (i : ι) :
- o.matrixDecomposition (z ≫ w) i = o.matrixDecomposition w i ⬝ o.matrixDecomposition z i := by
+ o.matrixDecomposition (z ≫ w) i = o.matrixDecomposition w i * o.matrixDecomposition z i := by
ext ⟨c, ⟨⟩⟩ ⟨a, j_property⟩
simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
simp only [Matrix.mul_apply, Limits.biproduct.components,
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -49,13 +49,13 @@ variable {C : Type u} [Category.{v} C]
there is at most one morphism between distinct objects.
(In a category with zero morphisms, that must be the zero morphism.) -/
-def HomOrthogonal {ι : Type _} (s : ι → C) : Prop :=
+def HomOrthogonal {ι : Type*} (s : ι → C) : Prop :=
∀ i j, i ≠ j → Subsingleton (s i ⟶ s j)
#align category_theory.hom_orthogonal CategoryTheory.HomOrthogonal
namespace HomOrthogonal
-variable {ι : Type _} {s : ι → C}
+variable {ι : Type*} {s : ι → C}
theorem eq_zero [HasZeroMorphisms C] (o : HomOrthogonal s) {i j : ι} (w : i ≠ j) (f : s i ⟶ s j) :
f = 0 := by
@@ -168,7 +168,7 @@ theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintyp
section
-variable {R : Type _} [Semiring R] [Linear R C]
+variable {R : Type*} [Semiring R] [Linear R C]
/-- `HomOrthogonal.MatrixDecomposition` as an `R`-linear equivalence. -/
@[simps]
@@ -2,16 +2,13 @@
Copyright (c) 2022 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.preadditive.hom_orthogonal
-! leanprover-community/mathlib commit 829895f162a1f29d0133f4b3538f4cd1fb5bffd3
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.Linear.Basic
import Mathlib.CategoryTheory.Preadditive.Biproducts
import Mathlib.LinearAlgebra.Matrix.InvariantBasisNumber
+#align_import category_theory.preadditive.hom_orthogonal from "leanprover-community/mathlib"@"829895f162a1f29d0133f4b3538f4cd1fb5bffd3"
+
/-!
# Hom orthogonal families.
ext
(#5258)
Co-authored-by: Xavier Roblot <46200072+xroblot@users.noreply.github.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Pol'tta / Miyahara Kō <pol_tta@outlook.jp> Co-authored-by: Jason Yuen <jason_yuen2007@hotmail.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: Jireh Loreaux <loreaujy@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com> Co-authored-by: Jujian Zhang <jujian.zhang1998@outlook.com> Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
@@ -101,7 +101,7 @@ noncomputable def matrixDecomposition (o : HomOrthogonal s) {α β : Type} [Fint
· symm
apply o.eq_zero h
right_inv z := by
- ext (i ⟨j, w⟩ ⟨k, ⟨⟩⟩)
+ ext i ⟨j, w⟩ ⟨k, ⟨⟩⟩
simp only [eqToHom_refl, biproduct.matrix_components, Category.id_comp]
simp only [Set.mem_preimage, Set.mem_singleton_iff]
split_ifs with h
@@ -132,7 +132,7 @@ noncomputable def matrixDecompositionAddEquiv (o : HomOrthogonal s) {α β : Typ
@[simp]
theorem matrixDecomposition_id (o : HomOrthogonal s) {α : Type} [Fintype α] {f : α → ι} (i : ι) :
o.matrixDecomposition (𝟙 (⨁ fun a => s (f a))) i = 1 := by
- ext (⟨b, ⟨⟩⟩⟨a, j_property⟩)
+ ext ⟨b, ⟨⟩⟩ ⟨a, j_property⟩
simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
simp only [Category.comp_id, Category.id_comp, Category.assoc, End.one_def, eqToHom_refl,
Matrix.one_apply, HomOrthogonal.matrixDecomposition_apply, biproduct.components]
@@ -150,7 +150,7 @@ theorem matrixDecomposition_comp (o : HomOrthogonal s) {α β γ : Type} [Fintyp
[Fintype γ] {f : α → ι} {g : β → ι} {h : γ → ι} (z : (⨁ fun a => s (f a)) ⟶ ⨁ fun b => s (g b))
(w : (⨁ fun b => s (g b)) ⟶ ⨁ fun c => s (h c)) (i : ι) :
o.matrixDecomposition (z ≫ w) i = o.matrixDecomposition w i ⬝ o.matrixDecomposition z i := by
- ext (⟨c, ⟨⟩⟩⟨a, j_property⟩)
+ ext ⟨c, ⟨⟩⟩ ⟨a, j_property⟩
simp only [Set.mem_preimage, Set.mem_singleton_iff] at j_property
simp only [Matrix.mul_apply, Limits.biproduct.components,
HomOrthogonal.matrixDecomposition_apply, Category.comp_id, Category.id_comp, Category.assoc,
@@ -93,12 +93,7 @@ noncomputable def matrixDecomposition (o : HomOrthogonal s) {α β : Type} [Fint
biproduct.matrix fun j k =>
if h : f j = g k then z (f j) ⟨k, by simp [h]⟩ ⟨j, by simp⟩ ≫ eqToHom (by simp [h]) else 0
left_inv z := by
- -- Porting note: `ext j k` applies the lemmas in the other order,
- -- and gets stuck. Consider adjusting priorities, or making this proof more robust.
- apply biproduct.hom_ext
- intro j
- apply biproduct.hom_ext'
- intro k
+ ext j k
simp only [biproduct.matrix_π, biproduct.ι_desc]
split_ifs with h
· simp
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Alex J Best <alex.j.best@gmail.com>
@@ -93,7 +93,12 @@ noncomputable def matrixDecomposition (o : HomOrthogonal s) {α β : Type} [Fint
biproduct.matrix fun j k =>
if h : f j = g k then z (f j) ⟨k, by simp [h]⟩ ⟨j, by simp⟩ ≫ eqToHom (by simp [h]) else 0
left_inv z := by
- ext (j k)
+ -- Porting note: `ext j k` applies the lemmas in the other order,
+ -- and gets stuck. Consider adjusting priorities, or making this proof more robust.
+ apply biproduct.hom_ext
+ intro j
+ apply biproduct.hom_ext'
+ intro k
simp only [biproduct.matrix_π, biproduct.ι_desc]
split_ifs with h
· simp
@@ -32,17 +32,15 @@ or otherwise if each endomorphism ring is commutative),
then decompositions of an object as a biproduct of the family have uniquely defined multiplicities.
We state this as:
```
-lemma hom_orthogonal.equiv_of_iso (o : hom_orthogonal s) {f : α → ι} {g : β → ι}
- (i : ⨁ (λ a, s (f a)) ≅ ⨁ (λ b, s (g b))) : ∃ e : α ≃ β, ∀ a, g (e a) = f a
+theorem HomOrthogonal.equiv_of_iso (o : HomOrthogonal s) {f : α → ι} {g : β → ι}
+ (i : (⨁ fun a => s (f a)) ≅ ⨁ fun b => s (g b)) : ∃ e : α ≃ β, ∀ a, g (e a) = f a
```
This is preliminary to defining semisimple categories.
-/
-open Classical Matrix
-
-open CategoryTheory.Limits
+open Classical Matrix CategoryTheory.Limits
universe v u
The unported dependencies are