伊莎贝尔:矩阵的力量(A ^ n)?

时间:2013-11-26 04:06:55

标签: matrix isabelle

Cartesian_Euclidean_Space中有一个矩阵乘法定义(在目录HOL / Multivariate_Analysis中):

definition matrix_matrix_mult :: "('a::semiring_1) ^'n^'m ⇒ 'a ^'p^'n ⇒ 'a ^ 'p ^'m"
    (infixl "**" 70)
  where "m ** m' == (χ i j. setsum (λk. ((m$i)$k) * ((m'$k)$j)) (UNIV :: 'n set)) ::'a ^ 'p ^'m"

现在平方矩阵为A ** A,A ^ 3为A ** A ** A

我找不到功能函数来定义A^n(即A ** A ** ... ** A n次)。

库中是否有电源功能?是否需要手动定义?

1 个答案:

答案 0 :(得分:0)

我在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让你进入respecitve定义!所以我点击“^”,我只是先写了“1 ^ 1 = 1”作为引理。

这是对matrice权力的定义。 (因为我只使用方形矩阵,这很好,但更通用的^'n^'m类型会很好。)

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)"