Quantificateurs universels et existentiels de la logique du premier ordre
je suis un cours de programmation Scala. À un moment, l'instructeur dit:
Fonctions bla et bladdy sont universels et existentiels les quantificateurs de la logique du premier ordre.
quelqu'un Pourrait-il traduire "quantificateurs universels et existentiels de la logique de premier ordre" en anglais s'il vous plaît?
3 réponses
Cette phrase est pleine de jargon. Vous pouvez trouver une description de universal
et existential
logique des quantificateurs ici.
Universal Quantifier
est une logique de l'énoncé qui s'applique à tous les éléments d'un ensemble.Existential Quantifier
est une logique de l'énoncé qui s'applique à au moins un élément d'un ensemble.
vous pouvez aussi regarder ici pour une description rapide de first-order
logique. Le terme est destiné à séparer first-order
à partir de higher-order
logique:
First-order
instructions logiques sont celles habituelles; ils agissent sur les membres d'un ensemble.Higher-order
les énoncés logiques agissent sur d'autres énoncés logiques; considérez-les comme de la méta-logique.
Le livre la Preuve de la Langue et de la Logique fournit ces expressions anglaises pour l'universel et existentiel quantificateurs que le Professeur Odersky visée.
Le quantificateur universel ∀
est utilisé pour exprimer des revendications universelles, celles que nous exprimons en anglais en utilisant des phrases quantifiées commetout,chaque chose,toutes les choses, et .
le quantificateur existentiel--9-->
est utilisé pour exprimer des revendications existentielles, celles que nous exprimons en anglais en utilisant des expressions comme quelque chose,au moins une chose, et .
la mention de ces termes est probablement liée ou mène à des opérations sur des collections utilisant des fonctions d'ordre supérieur. En Scala, la transition de la logique à le code est tout à fait naturel avec l' forall
et exists
opérations sur une collection. Elles sont analogues aux définitions universelles et existentielles données ci-dessus. Quelques exemples simples sont utiles pour montrer ceci:
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
Ces deux forall
les déclarations demandent simplement à faire éléments de cette collection répondent aux critères.
scala> l.exists(x => x < 1)
res2: Boolean = false
scala> l.exists(x => x < 2)
res3: Boolean = true
Ces deux exists
états demandez simplement à faire éléments de cette collection critère.
pour apprécier pleinement cette affirmation, il faudrait probablement étudier une certaine logique. Mais ici, c'est le sens de base:
"Quantificateurs" sont comment donner un sens à variables dans les énoncés de la logique. Si je dis "{quelque chose à propos de x
}", qui n'a pas vraiment beaucoup de sens sur son propre. Vous devrez savoir ce que x
est de dire si c'est une déclaration vraie ou fausse. Mais si j' quantifier la variable x
en disant "pour tous x
{quelque chose x
}" ou "il existe un x
tel que {quelque chose à propos de x
}" puis je fais un seul énoncé qui est vrai ou faux.
Dans le "pour tous x
" cas je dis que "{quelque chose à propos de x
}" est vrai pour les x
vous pouvez choisir; c'est la quantification universelle. Par exemple "pour tous x
,x
est un nombre pair" est une fausse déclaration.
Dans la "il existe une x
tel que " cas je dis qu'il y a un choix possible pour x
de sorte que "{quelque chose à propos de x
}" est vrai (je ne dis pas que ce choix est, juste qu'il y en a un). C'est une quantification existentielle. Comme un exemple "il existe un x
tels que x
est un nombre pair" est un énoncé vrai.
ce sont des duels dans ce "pour tous"!--0--> {quelque chose à propos de x
}" signifie la même chose que "il n'est PAS vrai qu'il existe un x
de sorte qu'il n'est pas vrai que {quelque chose à propos x
}", et aussi "il existe une x
tel que {quelque chose à propos de x
}" signifie la même chose que "il n'est PAS vrai que pour tout x
il n'est PAS vrai que {quelque chose à propos de x
}". Heureusement, cela semble intuitivement justifié si vous y pensez.
Si tu nous disais ce que les fonctions blah
et bladdy
sont, nous pourrions expliquer la façon dont ils correspondent aux quantificateurs universels et existentiels, ce qui pourrait être plus utile pour vous aider à comprendre point de l'instructeur.