Aller au contenu
Topos Uranos

Résumé

Toute formule détermine une table de vérité ; cette leçon démontre l’affirmation réciproque : toute table, c’est-à-dire toute attribution de valeurs de vérité aux lignes, est la table d’une formule. Elle définit les fonctions de vérité, dénombre celles à nn arguments (22n2^{2^{n}}) et précise quand une formule représente l’une d’elles. Elle démontre ensuite le théorème de complétude fonctionnelle au moyen de la formule de la table, une disjonction de conjonctions de littéraux construite ligne par ligne, que la leçon sur les formes normales utilisera comme première démonstration de l’existence de la forme normale disjonctive. Comme toute formule du cours est une chaîne de cercles et de disques, il s’ensuit sans autre travail que la négation conjointe suffit à elle seule, et l’on montre comment s’écrit avec elle n’importe quelle fonction. Enfin, elle étudie quels ensembles de connecteurs suffisent pour représenter toutes les fonctions : elle démontre un critère général, l’applique à {¬,∧}\{\neg, \wedge\}, {¬,∨}\{\neg, \vee\}, {¬,→}\{\neg, \rightarrow\}, {↓}\{\downarrow\} et à la négation alternative, et démontre que {∧,∨,→,↔}\{\wedge, \vee, \rightarrow, \leftrightarrow\} ne suffit pas, parce que toutes ses formules préservent la valeur 11.

Objectifs d’apprentissage

  1. Dénombrer les fonctions de vérité à nn arguments et décider, au moyen des fonctions qu’elles représentent, quand deux formules sont équivalentes.
  2. Construire, à partir de la table d’une fonction de vérité, une formule qui la représente, et chercher une formule équivalente plus courte quand cela convient.
  3. Expliquer pourquoi, dans la langue du cours, la négation conjointe suffit à elle seule, et écrire avec elle seule des formules qui représentent des fonctions données.
  4. Démontrer qu’un ensemble de connecteurs est un système complet, en exprimant avec ses formules la négation conjointe.
  5. Démontrer qu’un ensemble de connecteurs n’est pas un système complet, au moyen d’une propriété que toutes ses formules préservent.

Fonctions de vérité

La leçon sur la sémantique de la logique propositionnelle a attribué à chaque formule, sous chaque valuation, une valeur de vérité, et a montré que cette valeur ne dépend que des valeurs des variables qui y apparaissent ; d’où toute formule à nn variables a une table de vérité de 2n2^{n} lignes. La question de cette leçon est la question inverse. Étant donné une table quelconque, c’est-à-dire une colonne de uns et de zéros écrite arbitrairement en face des 2n2^{n} lignes, existe-t-il une formule qui l’ait pour table ? Si c’est le cas pour toute table, le langage n’a pas de lacunes expressives : tout ce qui peut se dire sur la valeur de vérité de nn énoncés, en fonction des valeurs de ceux-ci, se dit avec une formule. Et comme dans ce cours toute formule composée est une négation conjointe, la réponse dira aussi si un seul connecteur suffit à tout dire.

Ce qu’on utilise des leçons précédentes

Une valuation est une fonction vv de l’ensemble des variables {v1,v2,…}\{v_1, v_2, \ldots\} dans {0,1}\{0, 1\}, où 11 est le vrai et 00 le faux ; son prolongement à toutes les formules, qu’on écrit aussi vv, est défini par récurrence : v((φ↓ψ))=1v((\varphi \downarrow \psi)) = 1 si et seulement si v(φ)=0v(\varphi) = 0 et v(ψ)=0v(\psi) = 0. À partir des abréviations officielles, la même leçon a calculé, dans le théorème des valeurs des connecteurs dérivés, la valeur de chaque connecteur ; écrites avec des sommes et des produits, ce sont les suivantes, pour toute valuation vv et toutes formules φ\varphi et ψ\psi :

v(¬φ)=1−v(φ),v((φ∧ψ))=v(φ) v(ψ),v((φ∨ψ))=v(φ)+v(ψ)−v(φ) v(ψ)v(\neg\varphi) = 1 - v(\varphi), \qquad v((\varphi \wedge \psi)) = v(\varphi)\,v(\psi), \qquad v((\varphi \vee \psi)) = v(\varphi) + v(\psi) - v(\varphi)\,v(\psi)
v((φ→ψ))=1−v(φ)+v(φ) v(ψ),v((φ↓ψ))=(1−v(φ)) (1−v(ψ))v((\varphi \rightarrow \psi)) = 1 - v(\varphi) + v(\varphi)\,v(\psi), \qquad v((\varphi \downarrow \psi)) = (1 - v(\varphi))\,(1 - v(\psi))

En outre, v((φ↔ψ))=v(φ) v(ψ)+(1−v(φ)) (1−v(ψ))v((\varphi \leftrightarrow \psi)) = v(\varphi)\,v(\psi) + (1 - v(\varphi))\,(1 - v(\psi)), qui vaut 11 si et seulement si v(φ)=v(ψ)v(\varphi) = v(\psi), et v((φ⊻ψ))=v(φ)+v(ψ)−2 v(φ) v(ψ)v((\varphi \veebar \psi)) = v(\varphi) + v(\psi) - 2\,v(\varphi)\,v(\psi), qui vaut 11 si et seulement si v(φ)≠v(ψ)v(\varphi) \neq v(\psi). Comme les valeurs sont 00 ou 11, le carré d’une valeur est la valeur elle-même, v(φ) v(φ)=v(φ)v(\varphi)\,v(\varphi) = v(\varphi), et un produit de valeurs vaut 11 si et seulement si chaque facteur vaut 11 ; ces deux observations seront utilisées sans les répéter. On utilise aussi le lemme de coïncidence : si deux valuations coïncident sur les variables de φ\varphi, c’est-à-dire sur les variables qui sont des sous-formules de φ\varphi, elles donnent à φ\varphi la même valeur. De la leçon sur la conséquence et l’équivalence sémantiques on reprend l’équivalence sémantique : φ≡ψ\varphi \eqsem \psi lorsque v(φ)=v(ψ)v(\varphi) = v(\psi) pour toute valuation vv. Enfin, la convention des lettres de la leçon sur la formalisation s’applique : pp, qq et rr désignent les variables v1v_1, v2v_2 et v3v_3.

Les fonctions de vérité et leur nombre

Soit nn un entier naturel. Une ligne de nn valeurs est une suite a=(a1,…,an)a = (a_1, \ldots, a_n) dans laquelle chaque aia_i est 00 ou 11 ; l’ensemble de toutes ces lignes se note {0,1}n\{0, 1\}^{n}. Une fonction de vérité à nn arguments est une fonction

f ⁣:{0,1}n→{0,1}f\colon \{0, 1\}^{n} \to \{0, 1\}

qui attribue à chaque ligne une valeur de vérité. On la présente comme une table : les lignes s’écrivent dans l’ordre de la table, à partir de celle où toutes les valeurs sont 11 (pour deux arguments, 1 11\,1, 1 01\,0, 0 10\,1, 0 00\,0), et en face de chaque ligne on écrit sa valeur. Une fonction de vérité est donc une table de vérité sans formule : la colonne de droite, sans rien d’écrit dans son en-tête.

PropositionIl y a 22n2^{2^{n}} fonctions de vérité à nn arguments

Pour tout entier naturel nn, il y a exactement 2n2^{n} lignes de nn valeurs et 22n2^{2^{n}} fonctions de vérité à nn arguments.

Démonstration

  1. 1 0 1    ⟼    ∙∘∙\dato{filas}{1\,0\,1 \;\; \longmapsto \;\; \sigI\sigO\sigI}

    Une ligne est une suite de nn symboles, dont chacun est 11 ou 00. Si l’on écrit le disque à la place de 11 et le cercle à la place de 00, les lignes correspondent, une à une, aux chaînes de longueur nn sur l’alphabet à deux symboles, qui sont au nombre de 2n2^{n} d’après le premier problème résolu de la leçon sur la récurrence, démontré là par récurrence sur nn.

  2. f    ⟼    f(1,…,1)    …    f(0,…,0)f \;\; \longmapsto \;\; f(1, \ldots, 1) \;\; \ldots \;\; f(0, \ldots, 0)

    Une fonction de vérité est déterminée par ses valeurs sur les lignes, et tout choix de ces valeurs donne une fonction. Si l’on écrit les valeurs dans l’ordre de la table, les fonctions correspondent, une à une, aux suites de 2n2^{n} symboles, chacun 11 ou 00.

  3. 22n2^{\resaltar{2^{n}}}

    Par le même dénombrement, appliqué maintenant aux suites de longueur 2n2^{n}, il y a 22 puissance 2n2^{n} fonctions.

  4. 22=4,24=16,28=256,216=65 5362^{2} = 4, \quad 2^{4} = 16, \quad 2^{8} = 256, \quad 2^{16} = 65\,536

    Les premières valeurs montrent avec quelle rapidité le nombre croît : avec cinq arguments, il y a déjà plus de quatre milliards de fonctions.

ExempleLes fonctions à un et à deux arguments

Les quatre fonctions à un argument sont la constante 11, l’identité, celle qui change la valeur et la constante 00 ; les formules ⊤\top, pp, ¬p\neg p et ⊥\bot, où ⊤:=(p→p)\top := (p \rightarrow p) et ⊥:=¬⊤\bot := \neg\top sont celles fixées dans la leçon sur la sémantique, ont respectivement ces tables. Parmi les seize fonctions à deux arguments figurent celles des six connecteurs du cours : la négation conjointe, la disjonction, la conjonction, l’implication, la double implication et la disjonction exclusive. Il en reste dix autres, parmi lesquelles les deux constantes, celles qui ne tiennent compte que de l’un des arguments et la négation alternative, qui vaut 00 seulement quand les deux arguments valent 11 ; le problème résolu 1 les classe toutes.

Formules qui représentent des fonctions

Une formule et une fonction de vérité sont liées de la manière suivante. Si φ\varphi est une formule dont les variables sont parmi v1,…,vnv_1, \ldots, v_n, on dit que φ\varphi représente la fonction de vérité ff à nn arguments lorsque, pour toute valuation vv,

v(φ)=f(v(v1),…,v(vn))v(\varphi) = f(v(v_1), \ldots, v(v_n))

c’est-à-dire lorsque la table de φ\varphi, écrite avec les variables v1,…,vnv_1, \ldots, v_n, est la table de ff. La condition sur les variables n’est pas un détail : la formule (p∧q)(p \wedge q) ne représente aucune fonction à un argument, parce que sa valeur ne dépend pas seulement de celle de pp.

PropositionLa fonction d’une formule

Soit φ\varphi une formule dont les variables sont parmi v1,…,vnv_1, \ldots, v_n. Alors φ\varphi représente exactement une fonction de vérité à nn arguments, qu’on note fφf_\varphi. Si ψ\psi est une autre formule dont les variables sont parmi v1,…,vnv_1, \ldots, v_n, alors φ≡ψ\varphi \eqsem \psi si et seulement si fφ=fψf_\varphi = f_\psi.

Démonstration

  1. va(vi)=ai(i≤n),va(vk)=0(k>n)\dato{va}{v_a(v_i) = a_i \quad (i \leq n), \qquad v_a(v_k) = 0 \quad (k > n)}

    Pour chaque ligne aa il y a une valuation qui donne à chaque viv_i la valeur aia_i : il suffit de donner aux autres variables la valeur 00.

  2. v(vi)=v′(vi)=ai(i≤n)    ⇒    v(φ)=v′(φ)=fφ(a)v(v_i) = v'(v_i) = a_i \quad (i \leq n) \;\; \Rightarrow \;\; v(\varphi) = v'(\varphi) = \resaltar{f_\varphi(a)}

    Si deux valuations donnent à v1,…,vnv_1, \ldots, v_n les valeurs de la ligne aa, elles coïncident sur les variables de φ\varphi, et par le lemme de coïncidence elles donnent à φ\varphi la même valeur. On prend cette valeur commune comme fφ(a)f_\varphi(a) ; par construction, φ\varphi représente fφf_\varphi.

  3. g(a)=va(φ)=fφ(a)g(a) = v_a(\varphi) = f_\varphi(a)

    Si φ\varphi représente aussi une fonction gg, sur chaque ligne aa on a g(a)=va(φ)=fφ(a)g(a) = v_a(\varphi) = f_\varphi(a) : la fonction représentée est unique.

  4. v(φ)=fφ(v(v1),…,v(vn))=fψ(v(v1),…,v(vn))=v(ψ)v(\varphi) = f_\varphi(v(v_1), \ldots, v(v_n)) = f_\psi(v(v_1), \ldots, v(v_n)) = v(\psi)

    Si fφ=fψf_\varphi = f_\psi, pour toute valuation vv les valeurs de φ\varphi et de ψ\psi sont la valeur de la même fonction sur la même ligne ; d’où φ≡ψ\varphi \eqsem \psi.

  5. fφ(a)=va(φ)=va(ψ)=fψ(a)f_\varphi(a) = v_a(\varphi) = v_a(\psi) = f_\psi(a)

    Réciproquement, si φ≡ψ\varphi \eqsem \psi, sur chaque ligne aa la valuation vav_a donne la même valeur aux deux formules, et donc fφ(a)=fψ(a)f_\varphi(a) = f_\psi(a).

Il y a une infinité de formules à variables parmi v1,…,vnv_1, \ldots, v_n et seulement 22n2^{2^{n}} fonctions ; donc beaucoup de formules représentent la même fonction, et la proposition dit que ce sont exactement les formules équivalentes entre elles. Il reste à savoir si toute fonction est représentée par une formule, ou si certaines tables restent sans formule qui les ait.