Include block #
This file defines matrix.includeBlock, which imitates direct_sum.component_of
for pi instead of direct_sum :TODO:
The direct sum in these files are sort of misleading.
The algebra homomorphism from block-indexed matrices to their block diagonal matrix.
Equations
- Matrix.blockDiagonal'AlgHom = { toFun := fun (a : PiMat α o m') => Matrix.blockDiagonal' a, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
The linear map sending a matrix to the family of its diagonal blocks.
Equations
- Matrix.blockDiag'LinearMap = { toFun := fun (x : Matrix ((i : o) × m' i) ((i : o) × n' i) α) => x.blockDiag', map_add' := ⋯, map_smul' := ⋯ }
Instances For
A matrix indexed by a sigma type is block diagonal when its off-diagonal blocks vanish.
Equations
- x.IsBlockDiagonal = (Matrix.blockDiagonal' x.blockDiag' = x)
Instances For
Include a single matrix block in the corresponding component of a block-indexed family.
Equations
- Matrix.includeBlock = LinearMap.single α (fun (j : o) => Matrix (m' j) (m' j) α) i
Instances For
The subtype of block-diagonal square matrices indexed by a sigma type.
Equations
- Matrix.BlockDiagonals R k s = { x : Matrix ((i : k) × s i) ((i : k) × s i) R // x.IsBlockDiagonal }
Instances For
Equations
- Matrix.IsBlockDiagonal.HAdd = { add := fun (x y : Matrix.BlockDiagonals R k s) => ⟨↑x + ↑y, ⋯⟩ }
Equations
- Matrix.IsBlockDiagonal.Smul = { smul := fun (a : R) (x : Matrix.BlockDiagonals R k s) => ⟨a • ↑x, ⋯⟩ }
Equations
- One or more equations did not get rendered due to their size.
Equations
- Matrix.mulActionBlockDiagonal = { toSMul := Matrix.IsBlockDiagonal.Smul, mul_smul := ⋯, one_smul := ⋯ }
Equations
- Matrix.distribMulActionBlockDiagonal = { toMulAction := Matrix.mulActionBlockDiagonal, smul_zero := ⋯, smul_add := ⋯ }
Equations
- Matrix.moduleBlockDiagonal = { toDistribMulAction := Matrix.distribMulActionBlockDiagonal, add_smul := ⋯, zero_smul := ⋯ }
A block-diagonal matrix with one nonzero matrix-entry inside a specified block.
Equations
- Matrix.singleBlockDiagonal i j l α = ⟨Matrix.single ⟨i, j⟩ ⟨i, l⟩ α, ⋯⟩
Instances For
Equations
- Matrix.IsBlockDiagonal.hasMul = { mul := fun (x y : Matrix.BlockDiagonals R k s) => ⟨↑x * ↑y, ⋯⟩ }
Equations
- Matrix.IsBlockDiagonal.hasNpow = { pow := fun (x : Matrix.BlockDiagonals R k s) (n : ℕ) => ⟨↑x ^ n, ⋯⟩ }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Block-diagonal matrices are algebra-equivalent to block-indexed matrix families.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Matrix.IsBlockDiagonal.hasStar = { star := fun (x : Matrix.BlockDiagonals R k s) => ⟨(↑x).conjTranspose, ⋯⟩ }
A variant of Equiv.sigmaProdDistrib with the product coordinate first.
Equations
- Matrix.Equiv.sigmaProdDistrib' β α = ((Equiv.prodComm β ((i : ι) × α i)).trans (Equiv.sigmaProdDistrib α β)).trans (Equiv.sigmaCongrRight fun (i : ι) => Equiv.prodComm β (α i)).symm
Instances For
Distribute a product of sigma types into a nested sigma type.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Conjugation by the block-diagonal/pi-matrix algebra equivalence on endomorphisms.