Logique du premier ordre et ensembles
Logique du premier ordre et ensembles
1 Logique booléenne 3
1.1 Propositions et valeurs de vérité . . . . . . . . . . . . . . . . . . . . 3
1.2 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Calcul propositionnel . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Implication et preuve . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Lien avec les circuits logiques . . . . . . . . . . . . . . . . . . . . . 12
1.6 Annexe : syntaxe des propositions . . . . . . . . . . . . . . . . . . . 15
1
Introduction
Le premier objectif de ces notes est de vous présenter quelques rudiments de logique
mathématique et de théorie des ensembles ainsi que le formalisme qui sert à exprimer
ces différentes idées. Nous avons essayé d’expliquer avec suffisamment de détails les
concepts fondamentaux (qui seront vus au cours de « mathématique élémentaire »).
Nous nous sommes également autorisés à aborder parfois des éléments plus difficiles
(nous pensons par exemple aux formes normales ; voir page 10). Ceci est fait sur un
mode plus informel et est une invitation à prendre un crayon et une feuille — que vous
devez toujours avoir à portée de la main lorsque vous lisez un texte mathématique —
et à essayer de comprendre plus en profondeur (faites des exemples,...). C’est aussi un
rappel que le champ de la logique est loin de s’arrêter à ces quelques feuilles et c’est
donc une incitation à aller consulter des livres (nous pouvons vous en conseiller).
Un second objectif est, lorsque c’est possible, d’esquisser des liens avec d’autres cours.
Les mathématiques et l’informatique ont de nombreuses connections et s’enrichissent
l’une l’autre. C’est pourquoi nous en présentons quelques unes. Bien sûr, il se peut
que ces passages soient d’un premier abord plus difficiles parce que vous n’avez pas
encore vu la matière concernée. Ne vous découragez pas mais au contraire comprenez
que ces liens sont là pour enrichir votre connaissance. Une fois la matière vue dans un
autre cours, nous espérons que vous consulterez à nouveau ces notes et approfondirez
le lien.
Puisque ce texte est sans doute l’un des premiers que vous lisez en mathématique,
plusieurs défis se présentent à vous. Afin de vous aider à les relever, essayons de les
nommer : il vous faut
comprendre ce qui est expliqué ligne par ligne 1 et le faire vôtre, du moins pour la
partie élémentaire ;
résumer les idées essentielles, ce qui doit vous permettre d’avoir une vue plus glob-
ale de la matière ;
essayer de comprendre les parties plus difficiles et, si nécessaire, poser des ques-
tions ;
lire les sections qui établissent des connections et soit les approfondir immédiate-
ment (si elles vous intéressent), soit attendre que la matière soit vue ailleurs et y
revenir (le professeur de la matière concernée doit pouvoir vous aider).
Bien entendu, si vous éprouvez des difficultés, n’hésitez pas à venir nous voir pour
poser vos questions (les séances de remédiation sont un bon endroit pour cela).
R EMERCIEMENTS : Je remercie S. B RIDOUX, R. H INNION, C. M ICHAUX, F. T RI -
HAN et J. W IJSEN pour leur lecture attentive de ces notes.
1. Ces feuilles comportent de nombreux tableaux et figures qui entrecoupent le texte, parfois au
milieu d’une phrase. Il vous suffit de sauter le tableau ou la figure pour continuer votre lecture.
2
1 Logique booléenne
3
P
Q 0 1 P 0 1 P Q P∧Q
0 0 0 Q 0 1 0 1 0 0 0
1 0 1 P∧Q 0 0 0 1 0 1 0
1 0 0
1 1 1
TABLE 1 – Table de vérité de P ∧ Q (diverses présentations).
P P P
P ¬P Q 0 1 Q 0 1 Q 0 1
0 1 0 0 1 0 1 0 0 1 0
1 0 1 1 1 1 1 1 1 0 1
P∨Q P⇒Q P⇔Q
TABLE 2 – Tables de vérité des divers connecteurs logiques
4
Si je gagne au loto (P est vrai) et que j’offre un pot (Q est vrai), j’ai fait ce que
j’ai promis (P ⇒ Q est vrai). Par contre, si je gagne (P est vrai) mais que je n’offre
pas à boire (Q est faux), je suis un menteur (P ⇒ Q est faux). D’autre part, si je ne
gagne pas au loto (P est faux), je ne me suis engagé à rien : que j’offre un pot (Q
est vrai) ou non (Q est faux), j’ai tenu ma promesse (P ⇒ Q est vrai) — on ne peut
pas dire que je suis un menteur.
En rassemblant les quatre cas qu’on vient d’examiner (faites-le !), on obtient la
table de vérité de l’implication (cf. Tab. 2).
Résumons ce que nous avons vu jusqu’à présent.
Nous partons de propositions élémentaires qui peuvent être vraies ou fausses.
à partir de deux propositions P et Q, on peut former d’autres propositions ¬P,
P ∧ Q, P ∨ Q, P ⇒ Q, P ⇔ Q.
Si on connaît les valeurs de vérité de P et Q, on peut déduire celles de ¬P, P∧Q,...
1.2 Exemples
En supposant que P est vrai, on a que P ∨ Q est vrai — peu importe si Q est vrai ou
non. Notez que la logique seule ne nous permet pas de savoir si P est vrai ou non.
Considérer P vrai dépend de facteurs extérieurs à celle-ci — le monde physique, nos
connaissances scientifiques,... Autrement dit, la logique peut servir à rassembler divers
éléments qui impliquent que P est vrai mais elle ne peut l’affirmer ex nihilo.
Si ceci ne semble pas d’un grand intérêt, c’est que l’expressivité de notre langage
logique est limitée. Nous pouvons néanmoins déjà jouer au détective ! Voici l’énoncé
du problème :
Un meurtre a été commis. Un inspecteur de passage est appelé à l’aide. Sa
tâche n’est pas facile : seuls les habitants du sud de la ville disent toujours
la vérité. On présente à l’inspecteur trois témoins Alex, Virginie et Carl des
deux parties de la ville. Il commence par les interroger, dans l’espoir de
trouver un habitant du quartier sud (qui lui dise la vérité sur le meurtre).
Voici leur réponses :
5
Alex : Virginie habite au sud ;
Virginie : Alex et moi habitons ensemble ;
Carl : C’est faux, Virginie ment !
Pouvez vous aider le pauvre policier ?
Formalisons la question. Tout d’abord, il faut discerner quelles sont les propositions
élémentaires qui nous intéressent. Puisque c’est savoir dans quelle partie de la ville
habite chacune des trois personnes, on prend :
P1 = Alex vit au sud de la ville ;
P2 = Virginie vit au sud de la ville ;
P3 = Carl vit au sud de la ville.
Il faut maintenant traduire leurs affirmations sous forme de propositions logiques. In-
téressons nous d’abord à la déposition d’Alex. De deux choses l’une :
Si Alex habite au sud de la ville, il dit la vérité. Or Alex affirme P2 . Donc, si P1 est
vrai, alors P2 l’est également.
Si Alex habite au nord, peut-être dit-il la vérité mais peut-être ment-il. On ne peut
donc rien conclure sur la valeur de vérité de P2 .
Donc P1 ⇒ P2 est vrai. Si vous n’en êtes pas convaincus, comparez ce qui vient d’être
dit à la table de vérité de P1 ⇒ P2 (Tab. 2). On fait un raisonnement analogue pour
Virginie et Carl. Si Virginie vit au sud (si P2 est vrai), elle et Alex vivent ensemble,
c’est-à-dire tous les deux au sud, P1 ∧ P2 , ou tous les deux au nord ¬P1 ∧ ¬P2 . Donc
la proposition (3) ci-dessous est vraie. Si Carl vit au sud, Virginie ment et donc la
négation de ce qu’elle affirme est vraie. Cela dit que (4) est vrai. Enfin, nous savons
que les trois témoins sont des deux parties de la ville, c’est-à-dire que deux habitent
au sud et un au nord, Pi ∧ Pj ∧ ¬Pk , ou l’inverse, ¬Pi ∧ ¬Pj ∧ Pk , pour certains i, j, k
différents deux à deux. En conclusion on obtient les propositions suivantes :
(P1 ∧ P2 ∧ ¬P3 ) ∨ (P1 ∧ P3 ∧ ¬P2 ) ∨ (P2 ∧ P3 ∧ ¬P1 )
(1)
∨ (¬P1 ∧ ¬P2 ∧ P3 ) ∨ (¬P1 ∧ ¬P3 ∧ P2 ) ∨ (¬P2 ∧ ¬P3 ∧ P1 )
P1 ⇒ P2 (2)
P2 ⇒ (P1 ∧ P2 ) ∨ (¬P1 ∧ ¬P2 ) (3)
P3 ⇒ ¬ (P1 ∧ P2 ) ∨ (¬P1 ∧ ¬P2 ) (4)
L’affirmation que toutes les propositions (1)–(4) sont vraies implique certaines restric-
tions sur les valeurs de vérité des propositions élémentaires P1 , P2 , P3 . Pour le voir on
peut construire la table de vérité (Tab. 4). On voit que la seule possibilité pour que
(1)–(4) soient simultanément vraies est que P1 et P2 soient vrais et P3 faux. Il faut
donc interroger Alex ou Virginie. Il existe une alternative à la construction de tables
de vérité. On peut voir (1)–(4) comme des équations logiques dont il faut trouver les
solutions. Pour cela nous allons développer un calcul sur les propositions.
6
P1 0 1
P2 0 1 0 1
P3 0 1 0 1 0 1 0 1
P1 ∧ P2 0 0 0 0 0 0 1 1
¬P1 ∧ ¬P2 1 1 0 0 0 0 0 0
(P1 ∧ P2 ) ∨ (¬P1 ∧ ¬P2 ) 1 1 0 0 0 0 1 1
(1) 0 1 1 1 1 1 1 0
(2) 1 1 1 1 0 0 1 1
(3) 1 1 0 0 1 1 1 1
(4) 1 0 1 0 1 0 1 1
Comme nous l’avons déjà dit, la logique booléenne ne s’intéresse pas au sens des
propositions — elle n’est pas outillée pour cela — mais seulement à leurs valeurs
de vérité. C’est le moment d’en tirer toutes les conséquences. Supposons que nous
ayons une proposition P qui dépend des propositions Q1 , . . . , Qn . Pour mettre en év-
idence cette dépendance, nous écrirons P(Q1 , . . . , Qn ). Par exemple, nous pourrions
avoir P(Q) = Q ∨ ¬Q. On dit que P(Q1 , . . . , Qn ) est une tautologie si P est vrai quelles
que soient les valeurs de vérité de Q1 , . . . , Qn . Autrement dit, P est une tautologie si
et seulement si la ligne de P dans la table de vérité n’est composée que de 1. Pour
P(Q) = Q ∨ ¬Q, on constate sur la table 5 que c’est une tautologie. Considérons un
Q 0 1
¬Q 1 0
P 1 1
Q1 0 1
Q2 0 1 0 1
Q1 ∨ Q2 0 1 1 1
P0 1 1 1 1
7
des mêmes propositions Q1 , . . . , Qn (ce qui est toujours possible en choisissant Q1 , . . . ,
Qn comme toutes les propositions qui apparaissent dans P1 ou dans P2 vu qu’on peut
considérer que Pi dépend de Q j de manière constante si Q j n’apparaît pas explicite-
ment dans Pi ), on dit qu’elles sont équivalentes si, pour toutes les valeurs de vérité
de Q1 , . . . , Qn , P1 (Q1 , . . . , Qn ) et P2 (Q1 , . . . , Qn ) sont vrais et faux en même temps.
Autrement dit, P1 et P2 sont des propositions équivalentes si leurs tables de vérité sont
identiques. Nous écrirons alors 3
P1 ' P2 .
Par exemple P1 (Q1 , Q2 ) = (Q1 ⇒ Q2 ) et P2 (Q1 , Q2 ) = (¬Q1 ∨ Q2 ) sont équivalentes
au vu des tables 7. De la même manière, on peut voir que Q1 ⇔ Q2 est équivalent à
Q1 0 1
Q2 0 1 0 1
P1 = Q1 ⇒ Q2 1 1 0 1
¬Q1 1 1 0 0
P2 = ¬Q1 ∨ Q2 1 1 0 1
Q1 0 1
Q2 0 1 0 1
Q1 ⇔ Q2 1 0 0 1
Q1 ⇒ Q2 1 1 0 1
Q2 ⇒ Q1 1 0 1 1
(Q1 ⇒ Q2 ) ∧ (Q2 ⇒ Q1 ) 1 0 0 1
Cette notion d’équivalence est à la base du calcul sur les propositions. En effet, c’est
elle qui permet de transformer une expression logique (une suite de symboles) en une
autre en préservant ce qui nous importe, c’est-à-dire ses valeurs de vérité. Pour les
3. Il n’y a pas de notation généralement acceptée pour l’équivalence de deux propositions. Le sym-
bole « ' » doit donc être considéré comme spécifique aux présentes notes.
8
propositions, « être équivalentes » est une sorte d’égalité ou, pour être plus précis,
est une relation d’équivalence, ce qui signifie que les trois propriétés suivantes sont
satisfaites : « ' » est
réflexive : P1 ' P1 ;
symétrique : P1 ' P2 si et seulement si P2 ' P1 ;
transitive : P1 ' P2 et P2 ' P3 impliquent P1 ' P3 .
C’est la transitivité spécialement qui permet de faire des calculs « pas à pas » (com-
prenez-vous pourquoi ?). Reste donc à trouver des équivalences utiles pour pouvoir
transformer les propositions. Comme nous venons de le voir, les deux connecteurs
« ⇒ » et « ⇔ » s’expriment en fonction des autres :
Grâce à ces règles (vérifiez qu’elles sont correctes !), on peut mettre les propositions
sous forme canonique. Soit P une proposition qui dépend de Q1 , . . . , Qn . Tout d’abord,
en utilisant (5)–(7), on peut transformer la formule pour que seulement les connecteurs
¬, ∧, ∨ y apparaissent. Ensuite les lois de de Morgan permettent de « coller » les
négations aux propositions Qk , si bien que la formule est composée de Qk et ¬Qk
assemblés grâce à ∧ et ∨. Enfin, on peut utiliser les lois de distributivité entre ∧ et ∨
pour
soit distribuer tous les ∨ sur les groupes de ∧ (eq. (8)), ce qui fait que la formule
finale est une conjonction de disjonctions ;
soit distribuer les ∧ sur les ∨ (eq. (9)), ce qui donne une formule du type disjonction
de conjonctions.
9
En résumé, toute proposition P(Q1 , . . . , Qn ) est équivalente à deux formes normales :
Vm W pi 0
forme normale conjonctive : i=1 j=1 Qi j
Wq Vri 00
forme normale disjonctive : i=1 j=1 Qi j
où Q0i j et Q00i j représentent soit Qk soit ¬Qk pour un certain k ∈ {1, . . . , n} qui dépend
de i et j.
Wq
Remarque 1. Pour le problème du détective, la forme i=1 rj=1 i
Q00 est bien adaptée
V
W V 00 i j
car on y lit directement les solutions. En effet, pour que i j Qi j soit vrai, il faut et
il suffit que j Q00i j soit vrai pour un i et j Q00i j est vrai si et seulement si Q00i j est vrai
V V
pour tout j. Selon que Q00i j représente Qk ou ¬Qk , on en déduit la valeur de vérité de
Qk . Dans le cas particulier des équations (1)–(4), on a (faites les calculs !) :
Cette section donne un aperçu des preuves du point de vue de la logique booléenne.
Étant donné le peu de familiarité que vous possédez avec le travail de preuve, il est
possible que vous ne puissiez relier certaines affirmations de cette section à votre ex-
périence. Dans ce cas, lisez-là une première fois et revenez y plus tard, lorsque votre
expérience se sera enrichie.
Une preuve consiste à montrer qu’une certaine affirmation est vraie moyennant cer-
taines hypothèses. Autrement dit, on suppose que des hypothèses H1 , H2 ,..., Hn sont
vraies et on en déduit une thèse T . Cela revient à établir (par une preuve mathématique)
que l’implication
(H1 ∧ H2 ∧ · · · ∧ Hn ) ⇒ T (10)
est vraie. Notez que, si une des hypothèses est fausse, peut-être la thèse le devient-
elle aussi ou peut-être reste-elle vraie. Ceci est cohérent avec la table de vérité de
l’implication (vérifiez-le !). Insistons donc que quand une hypothèse n’est pas vérifiée,
on ne peut conclure de (H1 ∧ · · · ∧ Hn ) ⇒ T que la thèse T est fausse, il faut chercher
la valeur de vérité de T par d’autres voies...
De manière générale, le processus de preuve consiste à transformer les hypothèses
pour faire apparaître la conclusion. Plus spécifiquement, on utilise des tautologies pour
10
obtenir une chaîne d’implications Pi ⇒ Pi+1 qui mène des hypothèses H1 ∧ · · · ∧ Hn , qui
est l’étape initiale P0 , à la thèse T :
H1 ∧ · · · ∧ Hn = P0 ⇒ P1 ⇒ P2 ⇒ · · · ⇒ Pk ' T .
Il existe cependant deux autres manières usuelles de procéder que nous allons main-
tenant expliquer.
Faire une preuve par l’absurde signifie qu’on suppose que les hypothèses sont vérifiées
mais que la conclusion est fausse et on en déduit une contradiction. Une contradiction
est quelque chose de manifestement faux et prend souvent la forme P ∧ ¬P pour une
certaine proposition P. En termes de logique booléenne, une preuve par l’absurde se
traduit par le fait que
est vrai pour un certain P. Notons que ceci est équivalent à (10). Pour la simplicité
d’écriture du calcul ci-après, posons H := H1 ∧ · · · ∧ Hn . On a alors :
On fait aussi couramment des preuves par contraposition. Cela veut dire qu’au lieu de
prouver H ⇒ T , on établit l’implication équivalente ¬T ⇒ ¬H où, comme précédem-
ment, on a posé H = H1 ∧ · · · ∧ Hn . Notons que ¬H ' ¬H1 ∨ · · · ∨ ¬Hn et donc, pour
que ¬H soit vrai, il suffit que l’un au moins des Hi soit faux. Cette démarche est tout à
fait correcte au vu des équivalences suivantes (vérifiez-les !) :
Ceci conclut notre discussion sur les preuves. Divers exemples exploitant ces principes
seront données lorsque nous aurons enrichi notre vocabulaire avec les quantificateurs.
Remarquons pour finir que, si techniquement toutes les preuves sont sensées pouvoir
s’écrire comme une suite de propositions déduites les unes des autres grâce à des tau-
tologies, dans la pratique les démonstrations ne sont jamais faites de manière aussi
formelle. Le seraient-elles qu’elles en deviendraient illisibles ! Les preuves écrites par
les mathématiciens sont un mélange de « formules » liées par des déductions faites en
français. Bien rédiger les phrases qui lient ces formules est donc essentiel puisque ce
sont les enchaînements qu’elles font qui conduisent des hypothèses à la thèse.
11
1.5 Lien avec les circuits logiques
L’électronique des circuits logiques, aussi appelée digitale, n’utilise que deux valeurs
de tension : une valeur haute que nous noterons 1 et une valeur basse, notée 0. Les
portes logiques combinent ces valeurs de tension. Par exemple la porte logique ap-
pelée AND (Tab. 9) possède deux entrées étiquetées par P et Q et une sortie notée R.
L’électronique de AND est conçue pour que la porte donne en sortie une tension haute
si ses deux entrées sont hautes et une tension basse dans tous les autres cas. Cela est
résumé par le tableau 9. Si on remplace « haut » par « 1 » et « bas » par « 0 » comme
P P
Q bas haut Q 0 1
P R R = P∧Q
Q bas bas bas 0 0 0
haut bas haut 1 0 1
nous l’avons convenu ci-dessus, on voit (Tab. 10) qu’on obtient la table de vérité de
∧. Autrement dit, plutôt que de décrire le comportement de la porte AND en termes de
tensions, il suffit de dire que la sortie R réalise l’opération logique « et » : R = P ∧ Q.
On peut faire la même chose avec les autres portes logiques. Le tableau 11 donne,
pour chacune des portes logiques usuelles, la proposition correspondante — ce qui
d’ailleurs explique le nom donné aux portes. On peut évidemment le lire dans l’autre
sens et l’utiliser pour passer des propositions aux portes. Puisqu’on peut passer d’une
inverseur P R R = ¬P
AND
P R R = P∧Q
Q
OR
P R R = P∨Q
Q
P ˙Q
XOR
Q R R = P∨
porte logique à une formule booléenne et vice-versa, on peut le faire également pour
12
des circuits plus élaborés. Considérons par exemple le circuit donné par la figure 1.
On peut aisément écrire la proposition qui lie R à Q1 et Q2 . En effet, R = S1 ∨ S2 avec
Q1 S1
Q2
R
S2
La règle (9) permet de mettre en évidence Q1 si bien que R est équivalent à Q1 ∧ (Q2 ∨
¬Q2 ). Comme Q2 ∨ ¬Q2 est une tautologie, cette dernière expression est équivalente
à Q1 . En résumé,
R(Q1 , Q2 ) ' Q1
ce qui veut dire que le circuit de la figure 1 fait la même chose qu’un simple fil joignant
Q1 à R !
Cette correspondance entre circuits logiques et propositions est aussi d’une grande
utilité lorsqu’il s’agit de construire des circuits. Supposons que nous voulions constru-
ire un circuit possédant le comportement donné par la table 12. De celle-ci, on déduit
Q1 = entrée 1 0 1
Q2 = entrée 2 0 1 0 1
Q3 = entrée 3 0 1 0 1 0 1 0 1
R = sortie 0 1 0 0 0 1 0 1
immédiatement la formule
Pour pouvoir dessiner le circuit correspondant, il faut transformer cette formule pour
faire apparaître celles de la table 11. Une possibilité immédiate est de rajouter des
parenthèses, ce qui par exemple donne
R ' (¬Q1 ∧ ¬Q2 ) ∧ Q3 ∨ (Q1 ∧ ¬Q2 ) ∧ Q3 ∨ (Q1 ∧ Q2 ) ∧ Q3 .
13
Q1
Q2
Q3
Q1
Q2
Q3
14
Q1
Q3
R
Q2
Nous n’investiguerons pas plus les liens entre le calcul propositionnel et les circuits
logiques. Les questions que vous pouvez vous poser — comme par exemple la manière
de simplifier 4 une proposition afin d’obtenir un circuit avec le moins de portes possi-
bles (utile pour faire des économies sur des circuits comprenant un grand nombre de
portes) — devraient trouver réponse dans d’autres cours.
15
syntaxe BNF elle-même (ceci a plutôt sa place dans un cours d’informatique 6 ), d’au-
tant plus qu’elle est assez facile à lire une fois qu’on sait que « ::= » signifie « est
défini comme » et que « » marque une alternative.
BNF est largement utilisé pour spécifier la syntaxe des langages de programmation
et par les programmes d’analyse syntaxique (parsers) tels que 7 yacc. Notre but en
décrivant les règles de construction des propositions sous la forme BNF est d’insister
sur le fait qu’en logique propositionnelle — comme avec les langages de programma-
tion — on ne peut écrire que des expressions permises par ces règles et rien d’autre (par
exemple P ∧ ∨Q et ∃x : P(x) ne sont pas des propositions de la logique booléenne !).
Comme note finale, remarquons que la définition de hpropositioni est récursive. Ainsi
un algorithme de parsing s’exprimera naturellement sous forme récursive.
Cette section présente quelques notions de base de la théorie des ensembles. Le style
est informel : poussés dans leurs retranchements, les concepts ci-dessous mènent à des
paradoxes qui nécessitent, pour être levés, une formalisation accrue — et trop lourde
pour une première approche.
Intuitivement, un ensemble est une collection d’objets. Ainsi, la notion fondamentale
est celle d’appartenance 8 : le fait qu’un objet a soit dans un ensemble A sera noté
6. On en parle avec beaucoup plus de détails dans le cours de logique mathématique de C. M ICHAUX
(pour la description des langages du premier ordre) et dans « Algorithme II » de V. B RUYÈRE.
7. En pratique, lorsqu’on veut analyser un langage informatique donné, on utilise d’abord un lexer,
tel lex, pour transformer le texte en tokens — variables, mots réservés, symboles d’opérations,... — et
seulement ensuite yacc afin de déterminer si ceux-ci forment des expressions correctes du langage.
8. D’un point de vue formel, la notion d’ensemble n’est pas définie, la relation « ∈ » est prise comme
primitive et on suppose à son sujet un certain nombre de propriétés (axiomes). De plus, il n’y a plus de
16
a ∈ A (dites « a appartient à A »). La négation de l’appartenance, ¬(a ∈ A), s’abrège
en a ∈
/ A. Deux ensembles (disons A et B) sont les mêmes (A = B) s’ils possèdent les
mêmes éléments (pour tout a, a ∈ A ⇔ a ∈ B).
On peut décrire des ensembles en extension, c’est-à-dire en donnant explicitement tous
leurs éléments. L’ensemble qui contient les objets a1 , . . . , an et uniquement ceux-là est
noté
{a1 , . . . , an }.
Insistons sur le fait que deux ensembles sont égaux dès qu’ils possèdent les mêmes
éléments ; il n’y a pas de relation d’ordre. Ainsi, {1, 2, 3} = {3, 2, 1}. Une autre con-
séquence est que répéter un élément ne modifie pas l’ensemble : {1, 1} = {1}. Un
ensemble particulier est l’ensemble vide ∅ = {} qui ne contient aucun élément. Ainsi,
x ∈ ∅ est une assertion qui est toujours fausse.
On dit qu’un ensemble A est inclus à un autre ensemble B, ce qu’on note A ⊂ B ou
A ⊆ B, si tout élément de A appartient également à B. Il ne faut pas confondre cette
notion avec l’appartenance ; en fait a ∈ A si et seulement si {a} ⊂ A.
Les ensembles peuvent également être décrits en compréhension, c’est-à-dire par une
propriété. L’ensemble des éléments a qui vérifient la propriété P se note 9 ,10 :
x ∈ {a : a vérifie P} ⇐⇒ x vérifie P.
En d’autres termes « a » n’est là que pour donner un nom à l’élément duquel on parle, ce nom n’est pas
connu à l’extérieur des {. . .}. On a donc {a : a vérifie P} = {b : b vérifie P}...
11. L’utilisation exclusive du schéma de compréhension de la forme {a ∈ A : a vérifie P} permet
d’éviter la contradiction ci-dessus. Cependant, cet axiome n’est pas assez puissant ; il ne permet même
pas de définir l’union de deux ensembles,...
17
tions élémentaires sur les ensembles. On a
Nom Définition Opération logique
complémentaire {A = {x : x ∈
/ A} négation
complémentaire relatif {B A = B \ A = x : (x ∈ B) ∧ (x ∈
/ A)
intersection A ∩ B = x : (x ∈ A) ∧ (x ∈ B) « et »
union A ∪ B = x : (x ∈ A) ∨ (x ∈ B) « ou »
différence symétrique ˙ (x ∈ B)
A ∆ B = x : (x ∈ A) ∨ « ou exclusif »
B
{A ←
A A B\A
A
{B A ←
B
B A∪B
A A∩B
A→ ←
B
A∆B
A→ ←
B
théorie des ensembles est très utile. Tout d’abord, on vérifie facilement (faites-le !) que
deux formules équivalentes définissent le même ensemble :
18
1} = {0, 1}. De (14), on peut déduire de multiples conséquences. Par exemple, puisque
(P ∧ Q) ∧ R ' P ∧ (Q ∧ R), on a (A ∩ B) ∩ C = A ∩ (B ∩ C). Des lois de distributivité
(8)–(9), on conclut que (pouvez-vous faire les détails ?) :
A ∪ (B ∩C) = (A ∪ B) ∩ (A ∪C),
A ∩ (B ∪C) = (A ∩ B) ∪ (A ∩C).
Nous laissons le soin au lecteur d’écrire les identités ensemblistes qui découlent des
autres équivalences vues précédemment.
Les définitions en compréhension permettent de créer beaucoup d’autres ensembles.
Par exemple, l’ensemble des parties de A est
PA := {B : B ⊂ A}.
Une autre opération importante est le produit cartésien. Rappelons que se donner un
couple (x, y), c’est se donner les valeurs x et y et l’ordre dans lequel on les place.
Ainsi, (1, 2) est différent de (2, 1) — au contraire de {1, 2} = {2, 1}. La propriété
fondamentale des couples est donc la suivante 12 :
(x, y) = (x0 , y0 ) si et seulement si x = x0 ∧ y = y0 . (15)
Le produit cartésien de deux ensembles A et B est, par définition,
A × B := {(a, b) : a ∈ A ∧ b ∈ B}.
Plus généralement, on peut considérer des n-uples : le n-uple de composantes x1 , . . . , xn
se note (x1 , . . . , xn ). La propriété fondamentale associée est la suivante 13 :
(x1 , . . . , xn ) = (x10 , . . . , xn0 ) si et seulement si (x1 = x10 ) ∧ · · · ∧ (xn = xn0 ). (16)
De manière analogue à ce qui a été fait ci-dessus, le produit cartésien de n ensembles
A1 , . . . , An est :
n
A1 × · · · × An = ∏ Ai := (a1 , . . . , an ) : (a1 ∈ A1 ) ∧ · · · ∧ (an ∈ An ) .
i=1
Lorsque tous les Ai sont égaux, on emploie l’abréviation :
n
An := A
| × ·{z
· · × A} = ∏ A.
n fois i=1
19
2.2 Relations
Tous les jours, sans même nous en rendre compte, nous faisons usage de relations.
Lorsque par exemple nous disons qu’une pomme est bonne, nous mettons en relation
l’objet « pomme » et le qualificatif « bon ». Quand nous disons qu’une voiture con-
somme plus qu’une autre, nous mettons en relation deux voitures en comparant leurs
consommations. On voit donc que notre discours est parsemé de relations. En fait, si
on y regarde de près, plus que les objets eux-mêmes, ce sont les relations qui sont por-
teuses de sens. Il en est de même en mathématique où les relations sont omniprésentes
sous une multitude de formes. Donnons d’abord une définition précise de la notion de
relation.
Remarquons pour commencer qu’une relation définit un lien entre deux objets de type
connu. Par exemple, si on s’intéresse à la relation « le fruit x peut prendre la couleur y »,
il faut que x désigne un fruit et y une couleur. Il n’est pas question de prendre pour x ou
y une automobile ! Si on désigne par A l’ensemble des fruits et par B l’ensemble des
couleurs, la relation ci-dessus lie des x ∈ A avec des y ∈ B. Notons cette relation R(x, y).
Plus précisément, on dit que R(x, y) est vrai si x ∈ A peut prendre la couleur y ∈ B et
faux sinon. Essayez d’inventer d’autres ensembles A et B et des relations entre eux.
Pour que la définition englobe la variété des possibilités, elle ne peut imposer aucune
règle de construction des relations. Tout ce qu’on peut dire d’une relation dans ce cas
est qu’elle fait la distinction entre les paires d’éléments x et y qui sont liées et celles
qui ne le sont pas. De manière équivalente, on peut dire qu’une relation est la donnée
des couples (x, y) ∈ A × B tels que x et y sont liés, les couples restant étant forcément
ceux pour lesquels x et y ne sont pas en relation. Or, se donner un ensemble de (x, y),
ce n’est rien d’autre que de se donner un sous ensemble de A × B. On a donc,
Définition 3. Une relation entre deux ensembles A et B est la donnée d’un sous-
ensemble R de A × B. On notera souvent R(x, y) au lieu de (x, y) ∈ R.
Lorsqu’une relation R a lieu entre A et lui-même (R ⊂ A × A), on dit que R est une
relation sur A.
Donnons quelques exemples.
Sur un ensemble quelconque A, on a la relation d’égalité qui est donnée par le sous-
ensemble diagonal ∆ := {(x, x) : x ∈ A} de A × A. On utilise la notation x = y au
lieu de (x, y) ∈ ∆.
Sur Z, on a la relation « x est le successeur de y » qui est définie par l’ensemble
{(y + 1, y) : y ∈ Z}.
Si M est un ensemble de magasins et P un ensemble de produits, il est naturel de
considérer la relation R(x, y) donnée par « le magasin x ∈ M possède le produit
y ∈ P ».
Sur N, on a la relation « x divise y » définie par {(x, y) : y = qx pour un certain
q ∈ N}. En général, on emploie la notation x | y pour dire que (x, y) appartient à cet
20
ensemble.
Si C[X] désigne l’ensemble des polynômes en une variable X à coefficients com-
plexes, la relation naturelle « z est une racine de P » est donnée par {(z, P) ∈
C × C[X] : P(z) = 0}.
Une relation R ⊂ A × B peut se représenter de manière graphique : on déploie 14 sur
une ligne horizontale les éléments de A, sur une ligne verticale les éléments de B, et
on noircit le point de coordonnées (a, b) si et seulement si (a, b) ∈ R (voir Fig. 6). Par
(a, b)
b R
a A
F IGURE 6 – Représentation graphique d’une relation
exemple, pour la relation « x ∈ N divise y ∈ N » vue plus haut, nous avons esquissé à
la figure 7 le début du graphe associé.
Jusqu’à présent, nous avons parlé des des relations entre les éléments de deux ensem-
bles, c’est pourquoi nous les appellerons plus spécifiquement relations binaires. Bien
entendu, rien ne nous limite à de telles relations : nous pouvons considérer des relations
entre n ensembles. La définition suivante possède cette généralité.
Définition 4. Soit n un naturel. Une relation n-aire est un n + 1-uple d’ensembles
(R, A1 , . . . , An ) tel que R ⊂ A1 × · · · × An . Souvent on note R(a1 , . . . , an ) au lieu de
(a1 , . . . , an ) ∈ R.
Donnons quelques explications. Cette définition insiste sur le fait qu’une relation n’est
pas seulement un ensemble R de n-uples « sélectionnés » mais inclut les ensembles
A1 , . . . , An sur lesquels cette relation a lieu. Dans la pratique, ces ensembles sont sou-
vent implicitement donnés et on parle, abusivement, de la relation R au lieu de la rela-
tion (R, A1 , . . . , An ). Comme exemple, considérons les relations R := {(x, y) ∈ N2 : x >
1 et y > 2} et R0 := {(x, y) ∈ Z2 : x > 1 et y > 2}. Celles-ci sont différentes car, bien
14. Lorsque les ensembles A et B ne jouissent pas d’une relation d’ordre naturelle — au contraire de
N, Q et R — on dispose leurs éléments le long des lignes comme on le désire.
21
y
0
0 1 2 3 4 5 6 x
F IGURE 7 – Relation « x divise y »
22
2.3 Fonctions
2.3.1 Définitions
Dans la vie courante le mot « fonction » est souvent employé avec un sens différent de
celui qu’on lui attribue en mathématique. Quand vous affirmez que vous choisissez un
dessert en fonction de votre humeur, vous mettez en relation votre humeur et le choix
d’un dessert. Cependant, rien ne dit qu’une humeur donnée conditionnera un unique
choix de dessert. C’est pourtant cette dernière interprétation qui serait valable si on
avait dit que le choix d’un dessert est une fonction (mathématique) de l’humeur ! De
fait, d’un point de vue mathématique, les fonctions sont des relations particulières :
lorsqu’on dit que y est une fonction de x, cela signifie que y est univoquement déter-
miné par la connaissance de x.
Une autre vision courante des fonctions est celle en termes de « formules ». Par exem-
ple, la fonction f (x) = sin(1/x) est donnée par la formule « sin(1/x) ». Le problème, si
on veut prendre cette vision comme définition est de répondre à la question : qu’est-ce
qu’une formule ? On veut en effet que la notion de fonction soit suffisamment générale
pour être utile. Voici quelques exemples de difficultés :
les fonctions elliptiques sont des solutions d’équations différentielles mais ne sont
pas définissables en termes de fonctions « usuelles » ;
la fonction qui, à une valeur d’entrée x d’un programme informatique, associe le
résultat y du calcul n’est en général pas donné par une simple « formule » (voir la
figure 8 pour illustration) 15 ;
if (x2 <= 0) y = x1
else y = f(3.9 * x1 * (1 - x1), x2 - 1);
return(y);
}
la fonction qui à une courbe γ dans R2 (elle-même définie comme une fonction
γ de [0, 1] vers R2 ) associe sa longueur (voir figure 9) englobe plusieurs éléments
déroutants comme un espace de départ complexe et une « formule » qui fait inter-
venir intégrale et dérivée ;
15. En fait, il existe une théorie de la programmation appelée λ -calcul où tout programme s’écrit
23
courbe γ
γ γ(0) Z 1q
7−→ L(γ) := γ1 0 (t)2 + γ2 0 (t)2 dt
0
γ(1)
0 1
etc.
On le voit, il n’est pas facile d’englober l’ensemble des cas où on aurait envie de parler
de fonction à moins d’abandonner la définition en termes de « formules ». Il faut donc
rechercher une propriété plus « basique » commune aux exemples ci-dessus. En vérité,
comme nous l’avons déjà remarqué au premier paragraphe, l’essence de la notion de la
dépendance fonctionnelle n’est pas tant une expression qui exprime cette dépendance
qu’un comportement déterministe : si y est une fonction de x, dès que x est connu,
y est univoquement déterminé. Tous les exemples que nous avons donnés ont cette
propriété. Remarquons que, pour accommoder des situations telles que « sin(1/x) »
qui n’a pas de sens pour x = 0, nous admettrons qu’à certains x ne corresponde aucun
y.
En résumé, « y est une fonction de x » exprime une relation entre y et x qui a ceci de
particulier qu’à un x donné il n’y a soit aucun soit un seul y qui lui corresponde. Cela
donne lieu à la définition suivante.
Définition 5. Une fonction f est une relation binaire (G, X,Y ) telle que, pour tout
x ∈ X, il existe au plus un y ∈ Y vérifiant (x, y) ∈ G. L’ensemble des x ∈ X pour
lesquels un tel y ∈ Y existe est appelé le domaine de f et est noté Dom f .
Le fait qu’il n’y a qu’un seul y correspondant à x permet d’employer sans ambiguïté la
notation f (x) pour le désigner. Bien sûr f (x) n’est défini que si x ∈ Dom f . Plutôt que
f = (G, X,Y ), on préfère en général écrire 16
f : X ◦→ Y : x 7→ y
uniquement à l’aide de fonctions. Cette manière de procéder à donné lieu aux langages fonctionnels
parmi lesquels on trouve L ISP, ML,...
16. Le symbole « ◦→ » est propre à ces notes. L’usage courant est d’employer « → ». Quant à nous,
nous restreindrons l’usage de « → » au cas où Dom f = X. Autrement dit, « f : X ◦→ Y » est sensé
attirer votre attention sur le fait qu’il est possible que Dom f 6= X, c’est-à-dire que f (x) n’existe pas
pour certains x ∈ X — comme c’est le cas pour le « sin(1/x) » vu plus haut.
24
où y est le seul élément de Y tel que (x, y) ∈ G. L’ensemble G ⊂ X × Y est appelé
le graphe de f . On le note plus communément Graph( f ). Remarquez que, puisque
(x, y) ∈ G est équivalent à y = f (x), on peut aussi écrire (voyez-vous pourquoi ?) :
f : R → R : x 7→ x + 1 et g : Z → Z : x 7→ x + 1
sont deux fonctions différentes bien qu’elles soient définies par la même formule.
Comme on peut le constater à la figure 10, leurs graphes sont également différents.
y y
6 6
5 5
4 4
3 f : R → R : x 7→ x + 1 3 g : Z → Z : x 7→ x + 1
2 2
1 1
0 0
0 1 2 3 4 5 6 x 0 1 2 3 4 5 6 x
F IGURE 10 – Deux fonctions différentes définies par la même formule.
On représente aussi les fonctions par des flèches entre des « patates ». Plus précisé-
ment, pour symboliser f : X ◦→ Y , on trace une patate pour X et une pour Y et, de
chaque 17 x ∈ Dom f ⊂ X, on trace une flèche pointant vers le y ∈ Y correspondant.
Sur la figure 11, la zone grisée dans X est l’ensemble des points de X d’où une flèche
part, c’est-à-dire le domaine de f . La zone grisée de Y est l’ensemble des points de Y
touchés par une flèche. On l’appelle l’image, Im f , de f :
Im f := y ∈ Y : y = f (x) pour un certain x ∈ Dom f .
25
f
X ◦−−−−−−−−−−→ Y
x y
Dom f
Im f
La surjectivité s’intéresse au fait que Y soit recouvert par les images f (x) lorsque x
varie dans Dom f . Si c’est le cas, la fonction est dite sujective. Le fait que Y soit
recouvert s’exprime également par Im f = Y . On peut aussi voir la surjectivité de f
comme suit : si on prend un y quelconque dans Y , l’équation f (x) = y admet au moins
une solution x ∈ Dom f . En effet, l’existence d’une solution x ∈ Dom f est équivalente
à y ∈ Im f et le fait que cela ait lieu pour tout y ∈ Y veut dire que Y ⊂ Im f ou encore
Y = Im f (puisque de toutes façons Y ⊃ Im f ).
L’injectivité est concernée avec une autre propriété de l’équation y = f (x), à savoir
l’unicité des solutions. En effet, on dira que f est injective si, quel que soit y ∈ Y , il
existe au plus une solution x ∈ Dom f de l’équation f (x) = y. Autrement dit, pour une
fonction injective f , soit l’équation f (x) = y n’a pas de solution (i.e., y ∈ / Im f ), soit
l’équation f (x) = y possède exactement une solution (lorsque y ∈ Im f ). Une troisième
manière d’exprimer la même chose est : s’il y a deux solutions x1 et x2 , elles doivent
être égales. En d’autres mots : si f (x1 ) = f (x2 ), alors x1 = x2 . Cette notion d’injectivité
est à ne pas confondre avec la définition de fonction. être une fonction veut dire qu’à
un x correspond au plus un y. être injectif est l’« inverse » : un y provient au plus d’un
x. Une représentation graphique de cela est esquissée à la figure 12.
f
X Y X ◦−−−−−−→ Y
x1
x y1 y
y2
x2
Pas une fonction Pas injective
26
Définition 6. Soit f : X ◦→ Y une fonction. On dit que f est injective si une des
propriétés équivalentes suivantes est vraie :
pour tout x1 , x2 ∈ Dom f , si f (x1 ) = f (x2 ) alors x1 = x2 ;
quel que soit y ∈ Y , l’équation f (x) = y admet au plus une solution x ∈ Dom f .
Définition 7. Soit f : X ◦→ Y une fonction. On dit que f est surjective si une des
propriétés équivalentes suivantes est vraie :
pour tout y ∈ Y , il existe au moins un x ∈ Dom f tel que f (x) = y ;
Im f = Y ;
pour tout y ∈ Y , l’équation f (x) = y possède au moins une solution x ∈ Dom f .
Lorsque ces deux définitions sont satisfaites ensemble pour une même fonction, on a
la notion de bijection :
Définition 8. Soit f : X ◦→ Y une fonction. On dit que f est une bijection si f est à
la fois injective et surjective. Lorsqu’une telle bijection f existe et que Dom f = X,
on dit que X et Y sont en bijection par f et on note f : X ∼ = Y ou simplement X ∼=Y
lorsqu’il est clair de quelle fonction f il s’agit.
2.3.3 Restrictions
Comme on l’a vu, une fonction n’est pas seulement une règle d’association mais aussi
la donnée des ensembles de départ et d’arrivée. Par exemple,
f : N → R : x 7→ x2 et g : R → R : x 7→ x2
sont des fonctions différentes. Le fait qu’elles sont définies par la même expression
algébrique implique que
∀x ∈ N, f (x) = g(x).
En fait, f est « la même chose » que g sauf que sont ensemble de départ est plus petit.
Plus précisément, f est la restriction de g à l’ensemble de départ N. Cette idée peut
être appliquée à une fonction quelconque ce qui donne lieu à la définition suivante :
f A : A ◦→ Y : x 7→ f (x)
27
2.3.4 Composition et inverses
Jusqu’à présent, nous nous sommes intéressés aux propriétés concernant une seule
fonction. Il est temps de voir comment on peut combiner plusieurs fonctions pour en
créer de nouvelles.
à cet effet, l’opération fondamentale est la composition. Celle-ci est relativement na-
turelle si on voit une fonction comme un « traitement » appliqué à une donnée. Par
exemple, si f : X ◦→ Y est une fonction, on peut penser f (x) comme le résultat d’une
transformation effectuée sur x par f . Il est alors naturel de vouloir ensuite transformer
ce résultat f (x) grâce à une autre fonction, disons g. Ceci est une manière de regarder
les programmes informatiques : on part d’une donnée x fournie au début du programme
et on la transforme successivement par diverses opérations jusqu’à ce qu’on obtienne
le résultat désiré. Mais revenons à l’aspect mathématique. Transformer f (x) à l’aide de
g s’écrit g f (x) . Pour que cette expression ait un sens, il faut que f (x) appartienne à
l’ensemble de départ de g. Puisqu’on doit avoir cela pour tout x et de manière à ce que
ce soit valable quelle que soit la fonction f de X vers Y , on va demander que l’ensem-
ble de départ de g soit Y — c’est-à-dire l’ensemble d’arrivée de f . En rassemblant ce
qui vient d’être dit, on en arrive à la définition suivante.
7−−−−−→
◦−
7−−
−−
−−
g◦ f g
−−
−−
−−
−−
→
Z g f (x)
idA : A → A : x 7→ x.
28
Le domaine de idA est A. Il est aisé (pouvez-vous faire les détails ?) de voir que, si
f : X ◦→ Y est une fonction, alors f ◦ idX = f (neutre à droite) et idY ◦ f = f (neu-
tre à gauche). L’existence d’un neutre amène naturellement à se poser la question de
l’existence d’inverses. Commençons par définir cette notion.
Notons que les inverses ne sont pas nécessairement uniques. Par exemple, pour f :
{0, 1} → {0, 1, 2} : x 7→ x, les fonctions
0 →
7 0 0 7→ 0
g1 : {0, 1, 2} → {0, 1} : 1 7→ 1 et g2 : {0, 1, 2} → {0, 1} : 1 7→ 1
2 7→ 0 2 7→ 1
sont deux inverses à gauche de f (vérifiez le !). Pour f : {0, 1, 2} → {0, 1} définie par
f (0) = 0, f (1) = 1 et f (2) = 0, les fonctions
( (
0 7→ 0 0 7→ 2
g1 : {0, 1} → {0, 1, 2} : et g2 : {0, 1} → {0, 1, 2} :
1 7→ 1 1 7→ 1
sont deux inverses à droite. L’existence d’inverses est liée aux propriétés d’injectivité
et de surjectivité vues plus haut. Voici le résultat.
avec Dom g = Im f . C’est bien une fonction car l’injectivité de f implique l’unicité
du x correspondant à un y donné. Le domaine de g est bien Im f car un tel x existe si
29
et seulement si y ∈ Im f . Resta à montrer que g ◦ f = idX , c’est-à-dire que, pour tout
ξ ∈ X, g( f (ξ )) = ξ . Mais, par définition de g,
Ceci fait de g une fonction car, même s’il y a plusieurs ξ tels que f (ξ ) = y, il est dit
qu’il faut en choisir (comme bon vous semble) l’un d’entre eux et que c’est celui-là
qui sera l’unique image de y. Le domaine de g est bien Y grâce à la surjectivité. Il
faut voir que f ◦ g = idY , c’est-à-dire que f (g(y)) = y pour tout y ∈ Y . Soit un y ∈ Y .
Par définition, g(y) est un ξ tel que f (ξ ) = y. Donc f (g(y)) = y. Ceci conclut la
preuve.
Corollaire 13. Soit f : X ◦→ Y une fonction. f possède une inverse à gauche et à droite
si et seulement si f est un isomorphisme d’ensembles.
Il est à noter que dans le cas où f est un isomorphisme, l’inverse à droite et à gauche
sont les mêmes et sont uniques. Il sont les mêmes car si g ◦ f =∈X et f ◦ h =∈Y , on a
g = g ◦ idY = g ◦ ( f ◦ h) = (g ◦ f ) ◦ h = idX ◦h = h. Cela implique également l’unicité
car si g1 et g2 sont deux inverses à gauche, l’argument précédent montre g1 = h = g2
(et de même pour les inverses à droite).
2.3.5 Exercices
30
Exercice 6. Soient X et Y deux ensembles. Les projections de X ×Y sur X et Y respectivement
sont les fonctions prX et prY définies par
Trouvez un contre-exemple (concret) qui montre bien qu’on n’a pas nécessairement l’égal-
ité dans la deuxième affirmation ci-dessus.
Exercice 8. Soit f = (G, X,Y ) une fonction et prX , prY les projections de X × Y sur X et
Y respectivement. Vérifiez algébriquement et graphiquement que Dom f = prX (G) et Im f =
prY (G).
Exercice 9. Soit f : X ◦→ Y une fonction. Pour tout B ⊂ Y , on définit l’image inverse de B par
f comme
f −1 (B) := {x ∈ X : x ∈ Dom f ∧ f (x) ∈ B}.
Vérifiez que f −1 (Y ) = Dom f et f −1 (∅) = ∅.
Prouvez que si B ⊂ Y , alors
f −1 {Y B = {X f −1 (B) .
Exercice 11. Notons AB l’ensemble des fonctions de B vers A. Prouvez que les fonctions
suivantes sont des bijections.
{0, 1}A → P(A) : f 7→ {x ∈ A : f (x) = 1} ;
31
AB × AC → AB∪C : ( f , g) 7→ f ∪ g où
(
f (x) si x ∈ B
f ∪ g : B ∪C → A : x 7→
g(x) si x ∈ C
plement qu’une fonction h à valeurs dans un produit A × B est la donnée de deux fonctions
à valeurs dans A et B respectivement qu’on appelle les composantes de h).
Les ensembles avec lesquels on travaille le plus fréquemment sont des ensembles de
nombres ou des ensembles construits à partir de ceux-ci. Plus précisément, il s’agit de
N, l’ensemble des naturels ;
Z, l’ensemble des entiers ;
Q, l’ensemble des rationnels ;
R, l’ensemble des nombres réels.
Ces quatre ensembles devraient vous avoir été présentés durant vos études secondaires.
Si ce n’est pas le cas ou si vous avez des hésitations, il est impératif d’y remédier au
plus vite. Cette section devrait vous y aider. Cependant, si les explications sont trop
succinctes, n’hésitez pas à demander de l’aide.
Commençons par parler de N, l’ensemble des naturels. Il est composé des nombres 0,
1, 2, 3, 4,... Ce nombres sont ceux que nous utilisons naturellement 18 pour compter.
Pouvoir dénombrer un nombre quelconque d’objets signifie que si l’on en ajoute un,
c’est encore possible. Autrement dit, l’essence même du comptage est de pouvoir faire
« plus un ». Cela veut dire que les nombres naturels, i.e., les éléments de N, sont tous
ceux et uniquement ceux qu’on peut obtenir à partir de zéro en répétant un certain
nombre de fois l’opération « +1 ». à titre d’illustration, constatons que 1 = 0 + 1,
2 = 1 + 1 = (0 + 1) + 1, etc. Une manière plus abstraite mais extrêmement utile de dire
que tous les naturels ne sont que la répétition de l’opération « +1 » à partir de zéro est
le concept de preuve par récurrence. Supposons que nous ayons une propriété P(n)
18. En vérité, le zéro a pris beaucoup de temps pour être reconnu à sa juste valeur et se répandre. Le
zéro est indispensable à notre manière d’écrire les nombres et à la facilité de calcul qui en résulte. Si
vous n’êtes pas convaincus, essayez de calculer en utilisant les chiffres romains...
32
qui dépende de n ∈ N. Pour prouver que P(n) est vrai quel que soit n ∈ N, il faut et
il suffit que P(0) soit vrai et que, sous l’hypothèse P(n), P(n + 1) le soit aussi. Plus
formellement, on a
Axiome (Preuve par récurrence). Soit P une propriété sur N (i.e., P ⊂ N) telle que
P(0) est vrai ;
pour tout n ∈ N, P(n) ⇒ P(n + 1) est vrai.
Alors, pour tout n ∈ N, P(n) est vrai.
Intuitivement, cet axiome est valable car
P(0) est vrai ;
P(0) et P(0) ⇒ P(1) sont tous deux vrais, d’où on déduit que P(1) doit être vrai
(voyez-vous pourquoi ?) ;
P(1) et P(1) ⇒ P(2) sont vrais et donc aussi P(2) ;
de même pour P(3), P(4),...
Les mêmes idées sous-tendent les définitions par récurrence. Techniquement, cela s’-
exprime comme suit :
Axiome (Définition par récurrence). Soit X, Y deux ensembles et f0 : X → Y , F :
N × X ×Y → Y deux fonctions. L’axiome affirme qu’alors il existe une et une seule
fonction f : N × X → Y telle que
f (0, x) = f0 (x) pour tout x ∈ X ;
f (n + 1, x) = F n, x, f (n, x) pour tout n ∈ N et x ∈ X.
33
Afin de voir les définitions par récurrence à l’œuvre, employons-les pour définir les
fonctions f (x, y) = x + y et g(x, y) = x · y à partir de l’opération de base « +1 » sur les
naturels :
(
f (0, y) = y
(17)
f (x + 1, y) = f (x, y) + 1
(
g(0, y) = 0
(18)
g(x + 1, y) = g(x, y) + y = f g(x, y), y
Remarquez que les équations ci-dessus ne sont qu’une version stylisée de propriétés
que vous connaissez bien. Pour l’addition, il s’agit juste de l’identité (x + 1) + y =
(x + y) + 1. Pour la multiplication, de
x·y = y+y+···+y,
| {z }
x fois
(Ces deux sections apparaîtront dans une version ultérieure de ces notes.)
2.4.4 Exercices
34
1 f f (x, y), z = f x, f (y, z) pour tous les x, y, z ∈ N ;
2 f (x, 0) = x pour tout x ∈ N ;
3 f (x, y + 1) = f (x, y) + 1 pour tous les x, y ∈ N ;
4 f (x, y) = f (y, x) pour tous les x, y ∈ N — utilisez les identités précédentes !
R EMARQUE : Si on note x+y au lieu de f (x, y), on voit que (1) est l’associativité de l’addition :
(x + y) + z = x + (y + z) ; (2) montre que zéro est un neutre à droite (l’est-il à gauche ?) ; et (4)
est la commutativité de l’addition : x + y = y + x.
Exercice 13. Soit g : N × N → N la fonction définie récursivement par l’équation (18). Prouvez
— en général par récurrence sur x — que
1 g(x, 0) = 0 pour tout x ∈ N.
2 g(1, y) = y pour tout y ∈ N.
3 g(x, 1) = x pour tout x ∈ N.
4 g(x + z, y) = g(x, y) + g(z, y) pour tous les x, y, z ∈ N.
5 g(x, y + 1) = g(x, y) + x pour tout x, y ∈ N.
6 g(x, y) = g(y, x) pour tous les x, y ∈ N.
7 g g(x, y), z = g x, g(y, z) pour tous les x, y, z ∈ N.
Vous pouvez bien entendu utiliser les résultats de l’exercice 12. Si on définit x · y := g(x, y),
traduisez les propriétés ci-dessus et dites comment elles se nomment.
Exercice 14. Soit h : N × N → N la fonction définie par
(
h(0, y) = 1
h(x + 1, y) = h(x, y) · y
où ( (
1 si y = 0 1 si z = 1 ou x = y + 1
f0 (y) := et F(x, y, z) :=
0 si y 6= 0 0 sinon
Définissons x 6 y comme une abréviation pour f (x, y) = 1. Prouvez par récurrence que
35
x 6 x+1;
x 6 x;
x 6 y si et seulement si ∃z ∈ N, y = x + z.
De cette dernière propriété, concluez que 6 est
transitive : si x 6 y et y 6 z, alors x 6 z ;
antisymétrique : si x 6 y et y 6 x, alors x = y.
I NDICATION : utilisez des arguments similaires à ceux de l’exercice 15 pour montrer que
x 7→ x + 1 est injective et déduisez-en que, pour tout k ∈ N, x 7→ x + k l’est également (voir
exercice 10).
Dans les pages précédentes, nous avons rencontré à diverses reprises des expressions
telles que « quel que soit... », « pour chaque... », « pour certains... », « il existe... », etc.
Ces constructions sont extrêmement importantes en mathématique et en informatique.
Pour cette raison, certains symboles ont étés créés afin de les abréger. Il s’agit de
« ∀ » qui représente « pour tout », « quel que soit... »,... et
« ∃ » qui se lit « il existe » mais remplace aussi « pour un certain »,...
Il s’agit de bien comprendre que ce ne sont que des symboles et qu’une suite de sym-
boles ne signifie pas forcément quelque chose. Pour bien les utiliser, il faut comprendre
leur sens — lire une phrase à haute voix peut vous y aider.
Pour employer à bon escient « ∀ » et « ∃ », examinons dans quel type de phrase
ils sont utilisés. Par exemple, on peut dire : quel que soit le naturel n, n 6 2n. Cette
phrase possède la structure suivante : quel que soit un objet une propriété dépendant
de cet objet est vraie. Comme nous l’avons fait ci-dessus, on désigne généralement
l’objet par une lettre (ci-avant n) qui est appelée une variable. En symboles, la phrase
s’écrit ∀n ∈ N, n 6 2n ou, si le contexte rend implicite que n ∈ N, on peut l’abréger
en ∀n, n 6 2n. La propriété sur N, n 6 2n est particulière. Plus généralement, étant
donné une propriété P qui dépend d’une variable x — ce qu’on représente par P(x) —
on peut écrire
∀x, P(x)
ce qui signifie que P(x) est vrai quel que soit x. Si on veut préciser qu’on ne considère
que les x appartenant à un ensemble X, on écrit
∀x ∈ X, P(x).
36
Il est à noter que, techniquement, cette formule est une abréviation de ∀x, x ∈ X ⇒
P(x). De même, les constructions permises avec « ∃ » sont du type
∃x, P(x)
ce qui signifie qu’il existe au moins un x tel que P(x) soit vrai ou, de manière équiva-
lente, que P(x) est vrai pour un certain x. De nouveau, si on veut dire que le x dont on
affirme l’existence se trouve dans un ensemble X, on écrit
∃x ∈ X, P(x).
3.1.1 Utilisation
Supposons que l’on soit en possession d’une formule ∀x, P(x) dont on sache qu’elle
est vraie. En d’autres termes on sait que P(x) est vrai peu importe la valeur que l’on
donne à x. Ainsi la manière d’utiliser ceci dans un argument est de donner des valeurs
particulières à x. Par exemple, si x peut prendre des valeurs entières, on pourra dire
« ... en prenant x = 24 dans ∀x, P(x), on déduit que P(24) est vrai... ». Il n’est pas
nécessaire bien sûr de prendre des x « concrets » tels 24. Par exemple, si on a un g qui
donne des x en fonction d’une autre variable u, x = g(u), on peut affirmer : « ... grâce
à ∀x, P(x) avec x = g(u), on a que ∀u, P(g(u))... ». L’essence même de l’utilisation
du quantificateur universel est donc de substituer certaines valeurs à la variable sur
laquelle on quantifie pour obtenir la vérité de la proposition qui suit le quantificateur
pour ces valeurs particulières.
3.1.2 Preuve
Qu’en est-il maintenant si nous devons établir qu’un proposition du type ∀x, P(x)
est vraie ? Cela revient à établir que P(x) est vrai quelle que soit la valeur que x peut
37
prendre. Pour ce faire, nous prenons un x arbitraire, sans aucune restriction sur ses
valeurs possibles, et nous cherchons à produire un argument général (qui dépend de x
mais marche dans tous les cas de figure) qui montre P(x). Dans la pratique, le fait de
se donner un x arbitraire est souvent écrit sous la forme « Soit x » que l’on rencontre
à loisir dans les textes mathématiques. Il est important de comprendre que, puisqu’on
veut construire un argument qui fonctionne quelle que soit la valeur particulière que x
peut prendre,
on doit laisser x sous forme de lettre de manière justement à pouvoir plus tard
remplacer cette lettre par la valeur qui nous intéresse (comme nous l’avons expliqué
dans la première partie de cette section) ;
il n’est pas question de ne vérifier P(x) que pour certains exemples de x — en effet,
un nombre même élevé d’exemples 19 ne peut couvrir l’infinité de valeurs possibles
qu’en général x peut prendre.
Nous allons maintenant examiner les deux mêmes questions pour les propositions du
type ∃x, P(x).
3.2.1 Utilisation
Premièrement, supposons que nous sachions que la formule ∃x, P(x) soit vraie et
que nous voulions l’utiliser dans un argument. Tout ce que la formule ∃x, P(x) nous
dit c’est que P(x) est vrai pour au moins un x. Dans la pratique, on dit par exemple
« ... prenons un x tel que P(x)... » et on continue l’argumentation avec ce x. Il faut bien
comprendre qu’on ne sait à priori rien d’autre sur x que le fait qu’il satisfasse P(x). Le
plus souvent, on ne peut déterminer sa valeur précise (ou elle ne nous est pas donnée).
On doit donc le laisser sous forme de lettre. Les déductions ultérieures qui font appel
à x se basent donc sur le fait que P est vrai en x.
19. Avant l’invention du « calcul symbolique », les mathématiciens faisaient leurs preuves sur des ex-
emples. Cependant, il faut réaliser que le but n’était pas de résoudre le problème dans un cas particulier
mais d’offrir une solution générale en employant le cas particulier comme véhicule des idées — à dé-
faut d’avoir la notion de variable pour le faire explicitement. C’était donc difficile à lire puisqu’il fallait
par soi-même inférer les principes généraux à partir de l’exemple. Aujourd’hui, si on veut prouver que
quelque chose est vrai pour n’importe quel objet, on ne fait plus la démonstration en donnant des valeurs
particulières à l’objet mais on le symbolise par une lettre... Cette qualité d’abstraction symbolique est
également au cœur de l’informatique où un programme doit résoudre une classe de problèmes dont une
instanciation particulière est décrite par des valeurs données aux variables d’entrée.
38
3.2.2 Preuve
La deuxième situation est celle où l’on veut établir qu’une formule du type ∃x, P(x)
est vraie. Il faut donc maintenant montrer qu’on peut trouver un x qui satisfait P.
Argumenter qu’il est plausible qu’un tel x existe ne suffit pas, il faut en exhiber ex-
plicitement 20 un et prouver que celui-ci vérifie la propriété P. Souvent bien sûr, il y a
plusieurs x possibles — la loi du moindre effort voulant qu’on recherche le plus sim-
ple possible ! D’autre part, ce x dépend en général d’autres variables y, z, t,... On ne
recherche donc pas, sauf dans des cas simples, une valeur « concrète » de x comme
x = 1 mais plutôt une manière de construire x en fonction des valeurs des autres vari-
ables (en distinguant différents cas de figure si nécessaire, etc.).
3.3 Exemples
39
Ici on a pu présenter un x concret (à savoir 1) car la proposition est fort simple. Il suffit
de modifier un peu l’énoncé pour que ce ne soit plus possible. C’est le cas par exemple
pour ∃x ∈ R, ex = −x. Montrer que cette dernière propriété est vraie est bien plus
difficile et demande des procédés de construction qui font partie du cours d’analyse
mathématique. Vous pouvez cependant être convaincus que c’est le cas en traçant les
graphes des fonctions R → R : x 7→ x et R → R : x 7→ ex et en constatant qu’ils ont un
point d’intersection (voyez-vous où est le x cherché ?).
Terminons par un exemple qui fait intervenir plusieurs quantificateurs dans une même
proposition. Comment fait-on pour montrer que
∀b, c ∈ R, ∃R ∈ R, ∀x ∈ R, −x2 + bx + c 6 R (19)
est vrai ? Intéressons nous d’abord à la structure de la preuve avant de la faire en
détail. Cette structure résulte juste des principes précédents. En effet, (19) est de la
forme ∀b, c ∈ R, P(b, c) et, par conséquent, la preuve commencera par « Soit b et c
deux nombres réels. » suivi d’un argument qui montrera P(b, c) — sans imposer de
restriction sur b et c. Comme P(b, c) est de la forme ∃R ∈ R, Q(b, c, R), pour prouver
P(b, c), il faudra exhiber un R. Ce R pourra bien entendu dépendre de b et c. Ensuite,
une fois ce R déterminé, il faudra montrer qu’il satisfait ∀x ∈ R, −x2 + bx + c 6 R.
Pour résumer, la forme de la preuve sera
Soit c, b ∈ R.
On donne une valeur (bien choisie) à R qui dépendra en général de b et c.
Soit x ∈ R.
Un argument montre que −x2 + bx + c 6 R — en conséquence du bon choix
de R.
En voici une rédaction complète :
Soit b, c ∈ R. Choisissons R := 14 b2 +c. Il faut montrer que −x2 +bx+c 6 R
quel que soit x ∈ R. Soit x ∈ R. On a
b 2 b2 b2
−x2 + bx + c = − x − + + c 6 + c = R,
2 4 4
ce qui termine la preuve.
Il est important que R puisse dépendre de b et c. Si une telle dépendance n’était pas
permise, on aurait écrit ∃R ∈ R, ∀b, c ∈ R, ∀x ∈ R, −x2 + bx + c 6 R (noter la per-
mutation des deux quantificateurs). Cette dernière proposition est fausse. (Une inter-
prétation graphique des propositions ci-dessus peut aider à comprendre comment nous
avons trouvé les arguments que nous avons présentés.)
Comme ces exemples le montrent, il est possible de se poser beaucoup de questions
à propos d’une simple inégalité du type −x2 + bx + c 6 R. Ces questions sont ex-
primées par la manière dont les quantificateurs précèdent l’égalité. Il est donc impor-
tant, lorsqu’on a à justifier une proposition, que l’articulation du raisonnement soit
clairement en relation avec l’ordre des quantificateurs.
40
3.4 Négation et preuves par l’absurde
Quelle est la négation de ∀x, P(x) ? Autrement dit, quand ∀x, P(x) est-il faux ? Puisque
∀x, P(x) dit que P(x) est vrai pour tout x, cela sera faux dès qu’un x ne satisfait pas
P, ou encore, s’il existe (au moins) un x tel que ¬P(x) soit vrai. Un résumé de la
discussion précédente en symboles donne
¬ ∀x, P(x) ' ∃x, ¬P(x). (20)
On peut refaire un raisonnement similaire pour la négation de ∃x, P(x). En effet, s’il
est faux qu’on ne peut trouver de x qui satisfasse P(x), cela veut dire que P(x) ne peut
jamais être satisfait pour aucun x, ou encore que ¬P(x) est vrai quel que soit x. La
traduction de ceci en symboles donne
¬ ∃x, P(x) ' ∀x, ¬P(x). (21)
On peut aussi prendre une route différente pour montrer (21) et l’obtenir comme con-
séquence de (20). Supposons donc que (20) soit vrai quel que soit P et montrons
que ¬ ∃x, Q(x) ' ∀x, ¬Q(x) (nous avons pris la lettre Q au lieu de P pour dis-
tinguer plus facilement
(21) de (20)). En considérant (20) avec P := ¬Q, on obtient
¬ ∀x, ¬Q(x) ' ∃x, ¬¬Q(x). Maintenant, en prenant la négation des deux membres
de cette équivalence (qui restent donc équivalents) et en utilisant le fait que ¬¬R ' R
quelle que soit la proposition R, on obtient (pouvez-vous justifier en détail ?)
∀x, ¬Q(x) ' ¬¬ ∀x, ¬Q(x)
' ¬ ∃x, ¬¬Q(x)
' ¬ ∃x, Q(x)
Appliquons ce que nous venons d’établir aux preuves par l’absurde. Nous avons vu à
la section 1.4 (page 10) qu’une preuve par l’absurde consiste à supposer que les hy-
pothèses H sont vraies, que (malgré cela) la thèse T est fausse — i.e., ¬T est vrai — et
à en déduire une contradiction. Puisque nous savons maintenant nier des propositions
contenant des quantificateurs, nous pouvons aussi prouver par l’absurde des thèses en
contenant. Il en va de même des preuves par contraposition.
Faisons un exemple pour illustrer cela. Nous allons montrer que
∀x ∈ R, (∀ε ∈ R, ε > 0 ⇒ |x| 6 ε) ⇒ x = 0 .
41
Soit x ∈ R. Au lieu de montrer (∀ε > 0, |x| 6 ε) ⇒ x = 0, nous allons
montrer sa contraposée, à savoir ¬(x = 0) ⇒ ¬(∀ε > 0, |x| 6 ε) ou encore
Supposons donc que x 6= 0. Il faut exhiber un ε > 0 qui satisfasse |x| > ε.
Prenons ε := |x|/2. Puisque x 6= 0, on a bien que ε > 0. De plus, de nouveau
parce que x 6= 0, |x| > |x|/2 = ε, ce qui termine l’argument.
Si la lecture de ces quelques notes ne vous a pas convaincu que la logique a non seule-
ment une grande importance en mathématique mais a également des connections avec
d’autres disciplines, voici un dernier exemple. 22
De nombreux problèmes pratiques requièrent le stockage et l’analyse efficace d’une
quantité importante de données. Par exemple, on peut imaginer que la police a besoin
de savoir, à partir de la plaque d’une voiture, sa marque et son propriétaire. Si l’on avait
à organiser ces choses sur papier, on le ferait naturellement dans un tableau tel que le
tableau 15. D’un point de vue mathématique, ce tableau décrit un ensemble d’éléments
42
(pouvez-vous faire les détails ?). Comme on sait qu’une fonction injective admet un
inverse à droite, il existe une fonction
telle que, pour tout v1 ∈ Dom f , (v1 , f (v1 )) ∈ R. Cette application donne juste les at-
tributs v2 et v3 correspondant à un v1 . En bases de données, on développe aussi une
manière de calculer avec les relations qu’on appelle l’« algèbre relationnelle » et qui
se reformule directement en termes des opérations ensemblistes vues ci-avant.
Par ailleurs, lorsqu’on a des données, on souhaite également pouvoir les explorer, c’est-
à-dire poser des questions à leur sujet. Par exemple, l’ensemble des voitures que Pol
Lenoir possède est donné par
(v1 , v2 ) : (v1 , v2 , Pol Lenoir) ∈ R .
Si nous avons une autre relation A(w1 , w2 ) exprimant le fait que la voiture de plaque w1
a eu un accident à la date w2 , on peut se demander quels sont les conducteurs qui n’ont
jamais fait d’accident (avec aucune de leurs voitures). L’ensemble de ces conducteurs
est donné par (voyez-vous pourquoi ?) :
v3 ∈ D3 : ∀v1 , v2 , R(v1 , v2 , v3 ) ⇒ ∀t, ¬A(v1 ,t) .
Comme ces exemples le mettent en évidence, les questions, encore appelées requêtes,
à une base de données s’expriment naturellement par des formules avec des quantifi-
cateurs où les relations qui peuvent y figurer sont celles qui sont présentes dans la base
de données.
Bien que l’aperçu des bases de données que nous avons présenté ici soit essentielle-
ment théorique, il faut savoir que ces principes sont implémentés dans toutes les bases
de données modernes.
Ainsi, une bonne compréhension de la logique et de la théorie des ensembles vous sera
d’une grande aide pour aborder une multitude d’autres sujets.
43