web-dev-qa-db-ja.com

一階述語論理の普遍的かつ存在記号

私はScalaプログラミングコースを受講しています。ある時点で、インストラクターは次のように述べました。

関数blahおよびbladdyは、一階述語論理の普遍的かつ存在記号です。

誰かが "一階述語論理の普遍的および存在記号"を英語に翻訳してくれませんか?

30
More Than Five

その文は専門用語でいっぱいです。 universalおよびexistential論理数量詞の説明を見つけることができます ここ

  1. Universal Quantifierは、セットのすべての要素に適用される論理ステートメントです。
  2. Existential Quantifierは、セットの少なくとも1つの要素に適用される論理ステートメントです。

first-orderロジックの簡単な説明については、 ここ も参照してください。この用語は、first-orderhigher-orderロジックから分離することを意味します。

  1. First-order論理ステートメントは通常のものです。彼らはセットのメンバーに作用します。
  2. Higher-order論理ステートメントは他の論理ステートメントに作用します。それらをメタロジックと考えてください。
42
theJollySin

教科書 Language Proof and Logic は、オーダスキー教授が言及した普遍的および存在記号のこれらの英語表現を提供します。

全称記号∀

は普遍的な主張を表現するために使用されます。英語で表現するものは、everythingeachthingすべてのもの、および何か

存在記号∃

実存的主張を表現するために使用されます。英語で表現するものは、何か少なくとも1つのものa、およびan

これらの用語の言及は、おそらく関連しているか、高階関数を使用したコレクションの操作につながりました。 Scalaでは、コレクションに対するforallおよびexists操作を使用すると、ロジックからコードへの移行は非常に自然です。これらは、上記の普遍的かつ実存的な定義に類似しています。これを示すには、いくつかの簡単な例が役立ちます。

scala> val l = 1 to 10
l: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> l.forall(x => x > 0)
res0: Boolean = true

scala> l.forall(x => x > 1)
res1: Boolean = false

これらの2つのforallステートメントは、このコレクションのdoall要素が基準を満たすように要求しているだけです。

scala> l.exists(x => x < 1)
res2: Boolean = false

scala> l.exists(x => x < 2)
res3: Boolean = true

これらの2つのexistsステートメントは、このコレクションのdoany要素が基準を満たすように要求しているだけです。

17
Brian

その声明を完全に理解するには、おそらくいくつかの論理を研究する必要があります。しかし、ここに基本的な要点があります:

「数量詞」は、論理ステートメントで変数に意味を与える方法です。 「{xについての何か}」と言えば、それだけではあまり意味がありません。 xが、それが真であるか偽であるかを示すために何であるかを知る必要があります。しかし、私がquantify変数xに対して、「すべてのx {xについての何か}」または「{xについての何か}」のようなxが存在する場合、私は単一のステートメントを作成しています。 trueまたはfalseのいずれか。

「forallx」の場合、「{something about x}」はanyxに当てはまります。それは全称記号です。たとえば、「すべてのxについて、xは偶数です」は誤ったステートメントです。

「そのようなxが存在する」場合、「{xについての何か}」が真になるようにxの可能な選択肢があると言っています(私はその選択が何であるかを言っているのではなく、1つあるだけです)。これは存在記号です。例として、「xが偶数であるようなxが存在する」というのは本当のステートメントです。

「すべてのx {xについての何か}」は「xが存在することは真実ではないので{xについての何か}」は真実ではない」と同じことを意味し、「 {x}についての何かが「すべてのxについて、{xについての何か}が真実ではないことは真実ではない」と同じことを意味するようなx。あなたがそれについて考えるならば、うまくいけば、それは直感的に正当化されるようです。

関数blahbladdyが何であるかを教えていただければ、それらが普遍的および存在記号に対応する方法を説明できます。これは、インストラクターのポイントを理解するのに役立つ可能性があります。

3
Ben