f(x, y) = | y ≠ 0 | y = 0 |
x = 0 | 3 | 5 |
x ≠ 0 | 8 | 13 |
⇔
x = 0 ∧ y ≠ 0 ∧ f(x,y) = 3 ∨ x = 0 ∧ y = 0 ∧ f(x,y) = 5 ∨ x ≠ 0 ∧ y ≠ 0 ∧ f(x,y) = 8 ∨ x ≠ 0 ∧ y = 0 ∧ f(x,y) = 13 |
⇔
(x = 0 ∧ y ≠ 0 ⇒ f(x,y) = 3) ∧ (x = 0 ∧ y = 0 ⇒ f(x,y) = 5) ∧ (x ≠ 0 ∧ y ≠ 0 ⇒ f(x,y) = 8) ∧ (x ≠ 0 ∧ y = 0 ⇒ f(x,y) = 13) |
Si x est plus grand que 23 et y est plus petit que 0 et z est égal à 1 alors x+y+z sinon si z est égal à 2 alors x+y-z. Si z est égal à 3 et x est plus grand que 23 et y est plus petit que 0 alors x-y+z mais si w est plus grand que 0 alors y. Si x est plus grand que 23 et y est plus grand que 0 alors quand z est égal à 1 la valeur est x*y*z, mais quand z est égal à 2 la valeur serait x/y-z, cependant si z est égal à 3 nous avons deux cas différents (1) w est égal à 0 et la valeur est x-y+z, (2) si w est positif alors elle est y+w. Si z est égal à 3 et x est plus grand que 23 et y est égal à 0 ou bien x est égal à 23 ou bien x est plus petit que 23 et y est plus petit que 0 alors la valeur est y-w. Dans les autres cas, quand x est plus petit que 23 et y n'est pas plus petit que 0, la valeur est y+w. La valeur est x+y+z lorsque x est plus grand que 23 et y est plus grand que 0 et z est égal à 3 et w est égal à 0 ou bien x est plus petit que 23, z est égal à 3 et w est égal à 0. La valeur est x/y/z quand x est égal à 23 et z est égal à 1 ou bien z est égal à 2 et y est plus grand que 0. Quand x est égal à 23 et y est égal à 0 et z est égal à 2, ou bien quand z est égal à 2 et x est plus petit que 23 la valeur est x/y+z. Si x est égal à 23 et y est plus petit que 0 et z est égal à 2 alors la valeur est x/y-z. Si x est égal à 23 et y est plus petit que 0 et z est égal à 3 et w est égal à 0 alors la valeur est x-y-z. Si x est égal à 23 et y est plus grand que 0 et z est égal à 3 et y n'est pas plus petit que 0 la valeur est x/y-z. Si x est égal à 23 et y est égal à 0 et z est égal à 1, la valeur est x-y/z. Si x est égal à 23 et y est égal à 0 et z est égal à 2, la valeur est x-y-z. Si x est plus petit que 23 et z est égal à 1 alors la valeur est x+y/z.
Le texte est ambigu et contradictoire ! Difficile à comprendre et à vérifier si la fonction a été bien définie.
z = 1 | z = 2 | z = 4 | z = 5 | |
x > 23 ∧ y < 0 | x + y + z | x/y + z | x - y + z | x/y + z |
x > 23 ∧ y > 0 | x/y + z | x - y + z | x - y + z | x + y + z |
x > 23 ∧ y = 0 | x/y + z | x + y + z | x + y + z | x/y + z |
x = 23 ∧ y < 0 | x/y + z | x/y + z | x + y + z | x/y + z |
x = 23 ∧ y > 0 | x/y + z | x + y + z | x/y + z | x/y + z |
x = 23 ∧ y = 0 | x - y + z | x + y + z | x/y + z | x/y + z |
x < 23 ∧ y < 0 | x - y + z | x/y + z | x + y + z | x/y + z |
x < 23 ∧ y > 0 | x - y + z | x/y + z | x + y + z | x + y + z |
x < 23 ∧ y = 0 | x/y + z | x/y + z | x/y + z | x + y + z |
Facile à vérifier si la fonction est bien définie.
Défaut : plusieurs expressions peuvent se répéter.
Le nombre de cas peut être très grand, pendant que le nombre de différentes expressions (valeurs) peut être petit.
x = 0 | y ≠ 0 | y = 0 | false | false |
x ≠ 0 | false | false | y ≠ 0 | y = 0 |
f(x, y) = | 3 | 5 | 8 | 13 |
⇔
x = 0 ∧ y ≠ 0 ∧ f(x,y) = 3 ∨ x = 0 ∧ y = 0 ∧ f(x,y) = 5 ∨ x ≠ 0 ∧ y ≠ 0 ∧ f(x,y) = 8 ∨ x ≠ 0 ∧ y = 0 ∧ f(x,y) = 13 |
⇔
(x = 0 ∧ y ≠ 0 ⇒ f(x,y) = 3) ∧ (x = 0 ∧ y = 0 ⇒ f(x,y) = 5) ∧ (x ≠ 0 ∧ y ≠ 0 ⇒ f(x,y) = 8) ∧ (x ≠ 0 ∧ y = 0 ⇒ f(x,y) = 13) |
x > 23 ∧ y < 0 | z = 1 | z = 4 | z = 2 ∨ z = 5 |
x > 23 ∧ y > 0 | z = 5 | z = 2 ∨ z = 4 | z = 1 |
x > 23 ∧ y = 0 | z = 2 ∨ z = 4 | false | z = 1 ∨ z = 5 |
x = 23 ∧ y < 0 | z = 4 | false | z ≠ 4 |
x = 23 ∧ y > 0 | z = 2 | false | z ≠ 2 |
x = 23 ∧ y = 0 | z = 2 | z = 1 | z = 4 ∨ z = 5 |
x < 23 ∧ y < 0 | z = 4 | z = 1 | z = 2 ∨ z = 5 |
x < 23 ∧ y > 0 | z = 4 ∨ z = 5 | z = 1 | z = 2 |
x < 23 ∧ y = 0 | z = 5 | false | z ≠ 5 |
f(x, y, z) = | x + y + z | x - y + z | x/y + z |
(x = y + 2) ∨ (x = y - 2) x2 + y2 = 25
(('x < 0) ∧ ('y < 0) ∧ (x' = 'x) ∧ (y' = 'x) ∧ (z' = 'z+1)) ∨ (('x = 0) ∧ ('y < 0) ∧ (x' = 'y) ∧ (z' = 'x) ∧ (y' = 'y)) ∨ (('x > 0) ∧ ('y < 0) ∧ (x' = 'x)) ∨ (('y > 0) ∧ ('x = x') ∧ (y' = 'x) ∧ (z' = 'z+1)) ∨ (('x = 0) ∧ ('y = 0) ∧ (x' = y' = z' = 'x)) ∨ (('x < 0) ∧ ('y = 0))La dernière relation peut être représentée sous forme d'une table définissant le prédicat caractéristique de la relation :
'y < 0 | 'y = 0 | 'y > 0 | |
'x < 0 | (x' = 'x) ∧ (y' = 'x) ∧ (z' = 'z+1) |
true | ('x = x') ∧ (y' = 'x) ∧ (z' = 'z+1) |
'x = 0 | (x' = 'y) ∧ (y' = 'y) ∧ (z' = 'x) |
(x' = 'x) ∧ (y' = 'x) ∧ (z' = 'x) |
('x = x') ∧ (y' = 'x) ∧ (z' = 'z+1) |
'x > 0 | x' = 'x | false | ('x = x') ∧ (y' = 'x) ∧ (z' = 'z+1) |
'x < 0 | 'y ≠ 0 | 'y = 0 | false | false | false | false |
'x = 0 | 'y > 0 | false | false | false | 'y = 0 | 'y < 0 |
'x > 0 | 'y > 0 | false | 'y = 0 | 'y < 0 | false | false |
(x' = 'x) ∧ (y' = 'x) ∧ (z' = 'z+1) |
true | false | x' = 'x | (x' = 'x) ∧ (y' = 'x) ∧ (z' = 'x) |
(x' = 'y) ∧ (y' = 'y) ∧ (z' = 'z) |
Ooops ! Il y a une erreur dans cette table. Où se trouve-t-elle ?