ゼロ除算はQF_NRAに含まれていますか?QF_NRAにゼロ除算が含まれていますか?
この問題では、SMT-LIB標準が混乱しています。 paper where the standard is definedでは、この点については説明しません。実際、NRAとQF_NRAはその文書のどこにも表示されません。いくつかの情報はstandard websiteで提供されています。実数は次のように定義されます。
- all terms of the form (/ m n) or (/ (- m) n) where
- m is a numeral other than 0,
- n is a numeral other than 0 and 1,
- as integers, m and n have no common factors besides 1.
これは、定数値に関しては、分母からゼロを明示的に除外します。しかし、後に、分割は次のように定義されます
-/as a total function that coincides with the real division function
for all inputs x and y where y is non-zero,
これはノートによって追跡されます。最初の引用符は(/ m 0)
がQV_NRA内の数字ではないことを言うので
Since in SMT-LIB logic all function symbols are interpreted as total
functions, terms of the form (/ t 0) *are* meaningful in every
instance of Reals. However, the declaration imposes no constraints
on their value. This means in particular that
- for every instance theory T and
- for every closed terms t1 and t2 of sort Real,
there is a model of T that satisfies (= t1 (/ t2 0)).
これは、一見矛盾しています後者の言葉では、/
はt1
とt2
のいずれに対しても(= t1 (/ t2 0))
が充足できるという関数であることを示しています。
事実上の現実は、(/ m n)
がn
が0でない場合の唯一の実数であるにもかかわらず、0による除算がSMT-LIBに含まれるように見えることです。これは、私の前の質問に関連している:最初の引用は(/ M 0)と述べているy=1/x, x=0 satisfiable in the reals?
私はゼロ除算について学業校の考え方を持っていませんが、私たちはそれを定義することができると理解しています。 SMT-LIBの '(/ m 0)'が実数であるかどうかに関しては、標準があまりにも言葉が曖昧で混乱していると思う。私が "必要とする"ことに関するアドバイスのほかに、この答えは正しいです。 –
間違いは、最初の引用を '(/ m 0)'が実数のSMT-LIB_ではないと誤解していました。最初の引用は_is_ a Realの定義から来ており、Realではないものについては何も述べていません。だから私が知る限り、彼らは "mは0以外の数字です"と言ったところのビットを省略することができました。 –
多くの人がゼロ除算が「限界」ではないと考えているので、この回答は将来の訪問者を助けるかもしれません。それはあなたがその信念を共有しているように見えましたが、あなたの発言はまったく真実ではない(私は何も知っていませんが、あなたの解釈は正しいと思われます)。また、各用語にソートを割り当てるために、Z3データ構造によって構造的に必要とされています。 「すべての数学的オブジェクト」のソートはありません。また、m/0が実数でない場合、ソートはモデル値に依存し、一般的には特定のソートではないと判断されます。 – usr