Lemmas about the matrix exponential #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file, we provide results about exp
on matrix
s over a topological or normed algebra.
Note that generic results over all topological spaces such as exp_zero
can be used on matrices
without issue, so are not repeated here. The topological results specific to matrices are:
matrix.exp_transpose
matrix.exp_conj_transpose
matrix.exp_diagonal
matrix.exp_block_diagonal
matrix.exp_block_diagonal'
Lemmas like exp_add_of_commute
require a canonical norm on the type; while there are multiple
sensible choices for the norm of a matrix
(matrix.normed_add_comm_group
,
matrix.frobenius_normed_add_comm_group
, matrix.linfty_op_normed_add_comm_group
), none of them
are canonical. In an application where a particular norm is chosen using
local attribute [instance]
, then the usual lemmas about exp
are fine. When choosing a norm is
undesirable, the results in this file can be used.
In this file, we copy across the lemmas about exp
, but hide the requirement for a norm inside the
proof.
matrix.exp_add_of_commute
matrix.exp_sum_of_commute
matrix.exp_nsmul
matrix.is_unit_exp
matrix.exp_units_conj
matrix.exp_units_conj'
Additionally, we prove some results about matrix.has_inv
and matrix.div_inv_monoid
, as the
results for general rings are instead stated about ring.inverse
:
matrix.exp_neg
matrix.exp_zsmul
matrix.exp_conj
matrix.exp_conj'
Implementation notes #
This file runs into some sharp edges on typeclass search in lean 3, especially regarding pi types. To work around this, we copy a handful of instances for when lean can't find them by itself. Hopefully we will be able to remove these in Lean 4.
TODO #
- Show that
matrix.det (exp 𝕂 A) = exp 𝕂 (matrix.trace A)
References #
A special case of pi.topological_ring
for when R
is not dependently typed.
A special case of function.algebra
for when A is a ring
not a semiring
Equations
- function.algebra_ring I A = pi.algebra I (λ (ᾰ : I), A)
A special case of pi.algebra
for when f = λ i, matrix (m i) (m i) A
.
Equations
- pi.matrix_algebra I R A m = pi.algebra I (λ (i : I), matrix (m i) (m i) A)
A special case of pi.topological_ring
for when f = λ i, matrix (m i) (m i) A
.