teoria primer predicados orden logica inteligencia existencial ejemplos definicion cuantificadores cuantificador componentes artificial scala functional-programming logic

scala - predicados - Cuantificadores universales y existenciales de la lógica de primer orden



logica de primer orden prolog (3)

El libro de texto Language Proof and Logic proporciona estas expresiones en inglés para los cuantificadores universales y existenciales a los que se refirió el profesor Odersky.

El cuantificador universal ∀

se usa para expresar afirmaciones universales, las que expresamos en inglés usando frases cuantificadas como todo , cada cosa , todas las cosas y cualquier cosa .

El cuantificador existencial ∃

se usa para expresar afirmaciones existenciales, aquellas que expresamos en inglés usando frases como algo , al menos una cosa , a y a.

La mención de estos términos probablemente se relacionó o condujo a operaciones en colecciones que utilizan funciones de orden superior. En Scala, la transición de la lógica al código es bastante natural con las operaciones forall y exists en una colección. Estos son análogos a las definiciones universales y existenciales dadas anteriormente. Algunos ejemplos simples son útiles para mostrar esto:

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

Estas dos declaraciones principales simplemente piden que todos los elementos de esta colección cumplan con los criterios.

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

Estas dos declaraciones existen simplemente pidiendo que los elementos de esta colección cumplan con los criterios.

Estoy tomando un curso de programación Scala. En un momento el instructor dijo:

Las funciones blah y bladdy son los cuantificadores universales y existenciales de la lógica de primer orden.

¿Alguien podría traducir " cuantificadores universales y existenciales de la lógica de primer orden " al inglés, por favor?


Para apreciar completamente esa afirmación, probablemente tendrías que estudiar algo de lógica. Pero aquí está la esencia básica:

Los "cuantificadores" son la forma en que le das significado a las variables en declaraciones de lógica. Si digo "{algo sobre x }", eso realmente no tiene mucho significado por sí mismo. Tendría que saber qué es x para decir si es una afirmación verdadera o falsa. Pero si cuantifico la variable x diciendo "para todas las x {algo sobre x }" o "existe una x tal que {algo sobre x }", entonces estoy haciendo una sola declaración que es verdadera o falsa.

En el caso "para todas las x ", estoy diciendo que "{algo sobre x }" es cierto para cualquier x puedas elegir; Esa es la cuantificación universal. Por ejemplo, "para todo x , x es un número par" es una declaración falsa.

En el caso de "existe una x tal que", estoy diciendo que hay una opción posible para x modo que "{algo sobre x } es cierto" (no estoy diciendo qué es esa elección, solo que hay una ). Esta es la cuantificación existencial. Como ejemplo, "existe una x tal que x es un número par" es una declaración verdadera.

Son duales en que "para todo x {algo sobre x }" significa lo mismo que "NO es cierto que exista una x tal que NO sea cierto que {algo sobre x }", y también "existe una x tal que {algo sobre x } "significa lo mismo que" NO es cierto que para todos x no es cierto que {algo sobre x } ". Esperemos que eso parezca intuitivamente justificado si lo piensas.

Si nos dijera cuáles son las funciones blah y bladdy , podríamos explicar la forma en que corresponden a los cuantificadores universales y existenciales, lo que podría ser más útil para ayudarlo a comprender el punto del instructor.


Esa frase está llena de jerga. Puede encontrar una descripción de los cuantificadores lógicos universal y existential here .

  1. Un Universal Quantifier es una declaración lógica que se aplica a todos los elementos de un conjunto.
  2. Un Existential Quantifier es una declaración lógica que se aplica a al menos un elemento de un conjunto.

También puede buscar here una descripción rápida de la lógica de first-order . El término pretende separar la lógica de first-order de higher-order lógica de higher-order :

  1. First-order declaraciones lógicas de First-order son las habituales; actúan sobre los miembros de un conjunto.
  2. Higher-order declaraciones lógicas de Higher-order actúan sobre otras declaraciones lógicas; Piensa en ellos como meta-lógica.