Matrix 伊莎贝尔:矩阵的幂(a^n)?

Matrix 伊莎贝尔:矩阵的幂(a^n)?,matrix,isabelle,Matrix,Isabelle,在笛卡尔欧几里德空间中有一个矩阵乘法定义(在目录HOL/multivariable\u Analysis中): 现在平方矩阵将是A**A,A^3将是A**A**A 我找不到powerfunction来定义a^n(即a**a**…**an次) 库中是否有幂函数?是否需要手动定义?我在HOL/power.thy中找到了以下定义: primrec power :: "'a ⇒ nat ⇒ 'a" (infixr "^" 80) where power_0: "a ^ 0 = 1" | po

笛卡尔欧几里德空间
中有一个矩阵乘法定义(在目录HOL/multivariable\u Analysis中):

现在平方矩阵将是
A**A
,A^3将是
A**A**A

我找不到powerfunction来定义
a^n
(即
a**a**…**a
n次)


库中是否有幂函数?是否需要手动定义?

我在
HOL/power.thy
中找到了以下定义:

primrec power :: "'a ⇒ nat ⇒ 'a" (infixr "^" 80) where
    power_0: "a ^ 0 = 1"
  | power_Suc: "a ^ Suc n = a * a ^ n"
(Control+Click会让你找到相应的定义!所以我点击了“^”,我只是先写了“1^1=1”作为引理

这是矩阵幂的定义。 (因为我只使用平方矩阵,所以这很好,但是更通用的
^'n^'m
类型会更好。)

primrec power :: "'a ⇒ nat ⇒ 'a" (infixr "^" 80) where
    power_0: "a ^ 0 = 1"
  | power_Suc: "a ^ Suc n = a * a ^ n"
primrec powerM :: "(('a::semiring_1) ^'n^'n) ⇒ nat ⇒ (('a::semiring_1) ^'n^'n)" 
(infixr "^^^" 80) where
  powerM_0: "A ^^^(0::nat) = mat 1"
| powerM_Suc: "A ^^^(Suc n) = A ** (powerM A n)"