2016-10-21 12 views
1

ゼロ除算は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)). 

これは、一見矛盾しています後者の言葉では、/t1t2のいずれに対しても(= t1 (/ t2 0))が充足できるという関数であることを示しています。

事実上の現実は、(/ m n)nが0でない場合の唯一の実数であるにもかかわらず、0による除算がSMT-LIBに含まれるように見えることです。これは、私の前の質問に関連している:最初の引用は(/ M 0)と述べているy=1/x, x=0 satisfiable in the reals?

答えて

0

ありません数

ではありませんが、それはそれが何であるかを数言いません。

は後者の引用は/(= T1(/ T 2 0))は、任意のT1およびT2

これが正しいのために充足可能であるような関数であることを言います。

「ゼロ除算は許可されていません!」という学校の考え方から離れる必要があります。これは未定義です。 Undefinedは、これがどのような値であるかを指定する公理がないことを意味します。 (これは学校でも同様です)

f(1234)とは何ですか?定義されていないので、Z3は何の番号も選択できません。 a/0f(a)の間に違いはありません。fは何らかの解釈されていない機能です。 Z3は好きな機能を埋め込むことができます。

したがって、a/0 == bは充足可能であり、abはすべてOKです。しかし、(a/0) == (a/0) + 1はfalseです。

数学演算子は単なる関数です。規格は、これらの機能を部分的に指定している。

+0

私はゼロ除算について学業校の考え方を持っていませんが、私たちはそれを定義することができると理解しています。 SMT-LIBの '(/ m 0)'が実数であるかどうかに関しては、標準があまりにも言葉が曖昧で混乱していると思う。私が "必要とする"ことに関するアドバイスのほかに、この答えは正しいです。 –

+0

間違いは、最初の引用を '(/ m 0)'が実数のSMT-LIB_ではないと誤解していました。最初の引用は_is_ a Realの定義から来ており、Realではないものについては何も述べていません。だから私が知る限り、彼らは "mは0以外の数字です"と言ったところのビットを省略することができました。 –

+0

多くの人がゼロ除算が「限界」ではないと考えているので、この回答は将来の訪問者を助けるかもしれません。それはあなたがその信念を共有しているように見えましたが、あなたの発言はまったく真実ではない(私は何も知っていませんが、あなたの解釈は正しいと思われます)。また、各用語にソートを割り当てるために、Z3データ構造によって構造的に必要とされています。 「すべての数学的オブジェクト」のソートはありません。また、m/0が実数でない場合、ソートはモデル値に依存し、一般的には特定のソートではないと判断されます。 – usr