Block upper triangular endomorphisms of a product #
An endomorphism F of A × C that preserves the first summand, acting there as fA, and covers
fC on the second is block upper triangular: its only off-diagonal block is the C → A map
fst ∘ F ∘ inr. This file records that normal form and the resulting trace identity.
Main results #
LinearMap.eq_prodMap_add_inl_comp_snd— the normal form, over an arbitrary semiring.LinearMap.trace_prodMap_add_inl_comp_snd— the trace of a block upper triangular endomorphism is the sum of the traces of its diagonal blocks.
The trace identity needs free finite modules over a commutative ring, since that is what Mathlib's
LinearMap.trace_prodMap' and LinearMap.trace_comp_comm' require; the normal form itself needs
neither commutativity, finiteness, nor additive inverses.
An endomorphism of A × C that preserves the first summand, acting there as fA, and covers
fC on the second, is block upper triangular: its only off-diagonal block is C → A.
The trace of a block upper triangular endomorphism of A × C is the sum of the traces of its
diagonal blocks: the off-diagonal C → A block composes to zero the other way round, so
LinearMap.trace_comp_comm' makes its contribution vanish.