Dans le cadre de travaux récents , nous avons défini un langage basé sur une logique à trois valeurs à la Kleene, où signifie vrai, 0 pour faux et ⊥ pour erreur ou ne sait pas. Afin de montrer que notre langage était expressif, nous avons voulu prouver que nous pouvions construire un ensemble d'opérateurs fonctionnellement complet.
Il était assez difficile de trouver des résultats existants dans la littérature. Nous avons trouvé un article écrit en 1962 par Jobe, qui énonce le théorème suivant:
Jobe 1962 Theorem Paper (accès restreint).
La logique à trois valeurs exprimée sur l'ensemble { 1 , 2 , 3 } et définie par les opérateurs ∙ , E 1 et E 2 , donnée ci-dessous, est fonctionnellement complète.
Dans notre article, nous avons utilisé ce résultat en montrant une correspondance entre nos opérateurs et ceux définis par Jobe (en gros, nous utilisons la conjonction forte, la négation et un opérateur qui transforme le non-savoir en faux).
Ma principale préoccupation est que je ne suis pas en mesure de comprendre la preuve de l'exhaustivité fonctionnelle de Jobe, et nous n'avons pas pu trouver d'autre résultat (positif ou négatif) après cette date, ce qui est en quelque sorte un peu surprenant.
Ma question est donc la suivante: existe-t-il des résultats plus connus sur l'exhaustivité fonctionnelle des logiques à 3 valeurs? Toute information dans ce sens serait utile.
la source
Réponses:
Les chapitres 5 et 6 du livre [Algèbres de fonction sur les ensembles finis, Dietlinde Lau, 2006] contiennent un traitement approfondi de l'exhaustivité fonctionnelle dans une logique à plusieurs valeurs (y compris les preuves). En résumé: la caractérisation de Rosenbergs [1965, 1970] des clones maximaux (également appelés clones précomplets) donne un critère de complétude fonctionnelle dans la logique à valeur k pour tout k.
Pour le cas particulier de la logique à 3 valeurs, une telle caractérisation (composée de 18 classes maximales / précomplètes) a déjà été donnée par Jablonskij en 1954. Par conséquent, afin de vérifier que votre ensemble d’opérateurs à 3 valeurs est fonctionnellement complet, il suffit de vérifier qu'ils ne rentrent dans aucune des 18 classes pré-complétées.
la source