2017-11-07 18 views
2

行列やベクトルを含む式の性質を証明したいと考えています(サイズは大きくなる可能性がありますが、サイズは固定されています)。Z3:線形代数を表現する

Iは、式の結果は、対角行列または三角行列である、またはそれは、正定であることを証明したい例えば

...

そのために私は、エンコードよく知られた特性をたいと思いますし、以下のような線形代数からアイデンティティ、:

||x + y|| <= ||x|| + ||y|| 
(A * B) * C = A * (B * C) 
det(A+B) = det(A) + det(B) 
Tr(zA) = z * Tr(A) 
(I + AB)^(-1) = I - A(I + BA)^(-1) * B 
... 

私はZ3でこれを実装しようと試みてきました。しかし、単純なプロパティであっても、不明なものやタイムアウトするものがあります。私は配列の理論と数量化を試みました。

この問題がSMTソルバーで解決できるかどうか、またはこの種の問題には適していないのですか?小さな例を挙げてヒントを教えてください。

+0

このようなプロパティは、必ずエンコードできます。おそらく「十分に小さい」サイズであることを証明することができます。あなたのドメインも重要です:整数、実数以上? Latterは決定論的な理論を持っていますが、前者は非線形ディオファンタス方程式を扱うので、未知の報告のソルバにつながります。 「すべてのサイズ」の証明には量子が必要であり、ソルバーが誘導を行わないため、些細なものでなければ証明される可能性は低い。どちらの場合でも、試してみることは不可能です。あなたの学んだことを教えてください! –

答えて

2

これを行うには、確かにZ3を使用できます。

私は、恒等行列とそれが対角行列であることを定義する小さな例hereを構築し、次に恒等行列が対角であることを証明しました。

したがって、Z3でこの種の作業を行うことは間違いありません。 DafnyやF *など、よりインタラクティブな検証機能を備えたZ3の上に構築されたツールを使用すると、より良い時間を得ることができます。

関連する問題