Chapitre 413 minDébutant
Traduire le langage courant en langage mathématique
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- traduire une phrase française en formule, avec connecteurs et quantificateurs ;
- éviter les pièges du « et », du « ou » et du « seulement si » ;
- exprimer une règle de gestion sous forme de condition en Python ou en SQL ;
- lire une formule et la reformuler en français naturel.
5 exercices corrigés
Traduire une phrase en langage mathématique, c'est la découper en propositions élémentaires, nommer chacune par une lettre, puis relier ces lettres par les connecteurs et les quantificateurs qui correspondent aux mots de liaison du français. Le programme du BTS demande de savoir le faire dans les deux sens, et la plupart des exercices de logique de l'E3 commencent par là : on te donne une règle en français, tu dois l'écrire avec des variables, ou l'inverse.
La méthode en quatre étapes
- Repérer les propositions élémentaires. Ce sont les morceaux de phrase qui sont vrais ou faux à eux seuls, sans négation : « le client est abonné », « la commande dépasse 100 € ». Donne à chacune une lettre et écris la correspondance.
- Repérer les mots de liaison (et, ou, sauf, si, ni…) et les traduire avec le dictionnaire ci-dessous. Une négation (« n'est pas », « sans ») devient ¬ devant la lettre.
- Placer les parenthèses en te demandant ce que chaque mot de liaison relie. C'est l'étape où se font les erreurs.
- Vérifier sur deux ou trois cas concrets : choisis des valeurs, lis la phrase de départ et ta formule, et compare.
Exemple. « Un client bénéficie de la livraison gratuite s'il est abonné ou si sa commande dépasse 100 €, sauf s'il habite hors de France métropolitaine. »
- A : « le client est abonné » ; C : « la commande dépasse 100 € » ; H : « le client habite hors de France métropolitaine ». La livraison gratuite est notée L.
- « ou » donne ∨, « sauf si » donne « et non ».
- « sauf si » porte sur toute la règle qui précède : L ≡ (A ∨ C) ∧ ¬H.
- Vérification : un abonné qui habite en Martinique (A = V, C = F, H = V) : (V ∨ F) ∧ ¬V = V ∧ F = F, pas de livraison gratuite, comme le dit la phrase.
Sans parenthèses, A ∨ C ∧ ¬H se lirait A ∨ (C ∧ ¬H) : un abonné ultramarin aurait la livraison gratuite, ce qui contredit la règle.
Le dictionnaire des mots de liaison
| En français | En logique | Remarque |
|---|---|---|
| et ; mais ; ainsi que ; à la fois… et… | P ∧ Q | « mais » ajoute une nuance d'opposition, pas de sens logique |
| ou ; ou bien (inclusif) | P ∨ Q | Le « ou » mathématique accepte les deux |
| soit… soit… ; ou… ou… (exclusif) ; l'un ou l'autre mais pas les deux | P ⊕ Q | Lis le contexte : le français ne précise pas toujours |
| ne… pas ; non ; sans | ¬P | « sans Q » se traduit par ∧ ¬Q |
| ni P ni Q | ¬P ∧ ¬Q | ≡ ¬(P ∨ Q), par De Morgan |
| pas à la fois P et Q | ¬(P ∧ Q) | ≡ ¬P ∨ ¬Q |
| P sauf si Q ; P à moins que Q | P ∧ ¬Q | Parfois (P ∧ ¬Q) ∨ … selon le contexte |
| si P alors Q ; Q si P ; P suffit pour Q | P ⇒ Q | |
| P seulement si Q ; il faut Q pour P | P ⇒ Q | Le sens de la flèche piège souvent |
| P si et seulement si Q ; P exactement quand Q | P ⇔ Q | |
| tous les x ; chaque x ; n'importe quel x | ∀x | |
| au moins un x ; il y a un x ; certains x | ∃x | « certains » veut dire « au moins un » |
| aucun x ne… ; pas un seul x | ∀x, ¬p(x) | ≡ ¬(∃x, p(x)) |
| pas tous les x | ∃x, ¬p(x) | ≡ ¬(∀x, p(x)) |
| un seul x ; exactement un x | ∃!x |
Les pièges du français
Le « et » qui veut dire « ou ». « La salle est réservée aux étudiants de SIO1 et de SIO2. » Aucun étudiant n'est à la fois en première et en deuxième année : la condition d'accès est x ∈ SIO1 ou x ∈ SIO2. En français, « les A et les B » désigne souvent la réunion des deux groupes, donc un « ou » sur chaque individu.
Le « ou » du menu. « Fromage ou dessert » est exclusif, alors que « carte bancaire ou espèces acceptées » est inclusif. En mathématiques, « ou » est inclusif sauf mention contraire : si un sujet veut un ou exclusif, il le dit (« soit… soit… », « mais pas les deux »).
Le « si » qui veut dire « si et seulement si ». « Tu auras ton diplôme si tu as au moins 10 de moyenne » est compris par tout le monde comme une équivalence (et sans 10, pas de diplôme). Logiquement, la phrase n'affirme que l'implication. Dans un sujet, traduis ce qui est écrit, sauf si l'énoncé précise « et seulement dans ce cas ».
« Tous les… ne… pas ». « Tous les postes ne sont pas à jour » est ambigu en français. Le plus souvent, on veut dire « pas tous les postes sont à jour » (∃x, ¬j(x)), pas « aucun poste n'est à jour » (∀x, ¬j(x)). Sur une copie, évite cette tournure et écris « au moins un poste n'est pas à jour » ou « aucun poste n'est à jour ».
La double négation. « Il n'est pas impossible que le serveur redémarre » veut dire « il est possible que le serveur redémarre ». ¬¬P ≡ P.
« Ne… que ». « Le pare-feu n'autorise que le port 443 » veut dire : pour tout port x, si x est autorisé alors x = 443. C'est une implication cachée, ∀x, a(x) ⇒ x = 443, et elle ne dit même pas que 443 est autorisé.
Exprimer une condition avec des connecteurs
Le programme demande aussi d'« utiliser des connecteurs logiques pour exprimer une condition », compétence mise en œuvre en algorithmique. Une règle de gestion décrite en français devient une condition if ou une clause WHERE.
Exemple : l'accès au VPN. « Un salarié peut se connecter au VPN s'il fait partie du service informatique, ou s'il est en télétravail ce jour-là et que son poste est à jour. Un compte suspendu n'a jamais accès. »
- I : « le salarié est au service informatique » ; T : « il est en télétravail ce jour-là » ; J : « son poste est à jour » ; S : « son compte est suspendu ».
- Accès ≡ (I ∨ (T ∧ J)) ∧ ¬S.
En Python :
def acces_vpn(info: bool, teletravail: bool, a_jour: bool, suspendu: bool) -> bool:
return (info or (teletravail and a_jour)) and not suspendu
print(acces_vpn(False, True, True, False)) # True : télétravail et poste à jour
print(acces_vpn(True, False, False, True)) # False : compte suspendu
En SQL, sur une table salarie qui aurait les colonnes correspondantes :
SELECT nom
FROM salarie
WHERE (service = 'INFO' OR (teletravail = 1 AND poste_a_jour = 1))
AND suspendu = 0;
Les parenthèses sont indispensables dans les trois écritures, pour la raison vue au chapitre 1 : sans elles, and passerait avant or.
Du langage mathématique au français
Le chemin inverse demande de lire une formule et d'en faire une phrase naturelle, pas une transcription mot à mot. Méthode : lis d'abord les quantificateurs de gauche à droite, puis le prédicat, et reformule.
| Formule | Lecture mot à mot | Phrase naturelle |
|---|---|---|
| ∀u ∈ U, ∃g ∈ G, m(u, g) | Pour tout u de U, il existe g de G tel que u est membre de g | Chaque utilisateur appartient à au moins un groupe |
| ∃g ∈ G, ∀u ∈ U, m(u, g) | Il existe g de G tel que pour tout u de U, u est membre de g | Un groupe contient tous les utilisateurs |
| ∀x ∈ P, ¬w(x) ⇒ l(x) | Pour tout x de P, si non w(x) alors l(x) | Tout poste qui n'est pas sous Windows est sous Linux |
| ¬(∃t ∈ T, o(t) ∧ ¬a(t)) | Il n'existe pas de t de T tel que o(t) et non a(t) | Tout ticket ouvert est affecté (aucun ticket ouvert sans technicien) |
Pour la dernière ligne, on peut passer par le calcul : ¬(∃t, o(t) ∧ ¬a(t)) ≡ ∀t, ¬(o(t) ∧ ¬a(t)) ≡ ∀t, ¬o(t) ∨ a(t) ≡ ∀t, o(t) ⇒ a(t).
Exercices
Exercice 1 sur 5 Traduire une règle Réussi À revoir
On note A : « le candidat a le BTS », E : « le candidat a deux ans d'expérience », P : « le candidat parle anglais ». Traduis chaque règle de recrutement par une formule.
- Le candidat doit avoir le BTS et parler anglais.
- Le candidat doit avoir le BTS ou deux ans d'expérience, et dans tous les cas parler anglais.
- Le candidat ne doit avoir ni le BTS ni d'expérience (poste de stagiaire).
- Le candidat a soit le BTS, soit deux ans d'expérience, mais pas les deux.
- Si le candidat n'a pas le BTS, il doit avoir deux ans d'expérience.
Voir la réponseMasquer la réponse de l'exercice 1
- A ∧ P
- (A ∨ E) ∧ P
- ¬A ∧ ¬E, ou ¬(A ∨ E) par De Morgan.
- A ⊕ E, c'est-à-dire (A ∨ E) ∧ ¬(A ∧ E), ou encore (A ∧ ¬E) ∨ (¬A ∧ E).
- ¬A ⇒ E. Comme ¬A ⇒ E ≡ ¬¬A ∨ E ≡ A ∨ E, cette règle dit simplement « le BTS ou deux ans d'expérience (ou les deux) ».
Tu avais trouvé ?
Exercice 2 sur 5 Le bon sens de la flèche Réussi À revoir
Traduis chaque phrase par une implication entre C : « le compte est activé » et M : « l'utilisateur a changé son mot de passe provisoire ».
- Le compte est activé seulement si l'utilisateur a changé son mot de passe provisoire.
- Il suffit que l'utilisateur change son mot de passe provisoire pour que son compte soit activé.
- Il faut que l'utilisateur change son mot de passe provisoire pour que son compte soit activé.
- Le compte est activé dès que l'utilisateur a changé son mot de passe provisoire.
Voir la réponseMasquer la réponse de l'exercice 2
- C ⇒ M (« seulement si » introduit la conclusion).
- M ⇒ C (« il suffit » introduit l'hypothèse).
- C ⇒ M (« il faut » introduit la conclusion : changer le mot de passe est nécessaire).
- M ⇒ C (« dès que » introduit l'hypothèse).
Les phrases 1 et 3 disent la même chose ; les phrases 2 et 4 aussi. Si les deux groupes sont vrais, on a C ⇔ M.
Tu avais trouvé ?
Exercice 3 sur 5 Avec des quantificateurs Réussi À revoir
On note E l'ensemble des employés, L l'ensemble des logiciels, et u(e, l) : « l'employé e utilise le logiciel l ». Traduis en symboles :
- Chaque employé utilise au moins un logiciel.
- Il y a un logiciel utilisé par tous les employés.
- Aucun employé n'utilise tous les logiciels.
- Certains logiciels ne sont utilisés par personne.
Voir la réponseMasquer la réponse de l'exercice 3
- ∀e ∈ E, ∃l ∈ L, u(e, l)
- ∃l ∈ L, ∀e ∈ E, u(e, l)
- ¬(∃e ∈ E, ∀l ∈ L, u(e, l)), ce qui équivaut à ∀e ∈ E, ∃l ∈ L, ¬u(e, l) : « chaque employé a au moins un logiciel qu'il n'utilise pas ».
- ∃l ∈ L, ∀e ∈ E, ¬u(e, l)
Tu avais trouvé ?
Exercice 4 sur 5 Lire une formule Réussi À revoir
Avec les notations de l'exercice précédent, et s(l) : « le logiciel l est sous licence libre », écris une phrase naturelle pour chaque formule.
- ∀l ∈ L, s(l)
- ∃l ∈ L, ¬s(l) ∧ (∀e ∈ E, u(e, l))
- ∀e ∈ E, ∀l ∈ L, u(e, l) ⇒ s(l)
Voir la réponseMasquer la réponse de l'exercice 4
- « Tous les logiciels sont sous licence libre. »
- « Il existe un logiciel non libre que tous les employés utilisent. »
- « Les employés n'utilisent que des logiciels libres » (tout logiciel utilisé par un employé est libre).
Tu avais trouvé ?
Exercice 5 sur 5 Une condition d'alerte Réussi À revoir
Un outil de supervision envoie une alerte quand l'espace disque libre est inférieur à 10 %, ou quand la charge processeur dépasse 90 % pendant plus de 5 minutes, sauf pendant la fenêtre de maintenance.
- Définis les propositions élémentaires et écris la condition d'alerte.
- Écris la condition « pas d'alerte » sous une forme sans négation devant une parenthèse.
- Écris la condition d'alerte en Python, avec les variables
disque_libre(en %),cpu(en %),duree_cpu(en minutes) etmaintenance(booléen).
Voir la réponseMasquer la réponse de l'exercice 5
- D : « l'espace disque libre est inférieur à 10 % » ; C : « la charge processeur dépasse 90 % » ; T : « cette charge dure plus de 5 minutes » ; M : « on est dans la fenêtre de maintenance ». Alerte ≡ (D ∨ (C ∧ T)) ∧ ¬M.
- Par De Morgan : ¬((D ∨ (C ∧ T)) ∧ ¬M) ≡ ¬(D ∨ (C ∧ T)) ∨ M ≡ (¬D ∧ ¬(C ∧ T)) ∨ M ≡ (¬D ∧ (¬C ∨ ¬T)) ∨ M. En français : pas d'alerte si l'on est en maintenance, ou si le disque a au moins 10 % libre et que la charge ne dépasse pas 90 % ou pas depuis plus de 5 minutes.
- Une seule expression suffit :
alerte = (disque_libre < 10 or (cpu > 90 and duree_cpu > 5)) and not maintenance
Tu avais trouvé ?