2.3 Qu’est ce qu’une expression bien définie ?

2.3.1 Présentation

Une expression mathématique est bien définie lorsqu’on peut lui donner un sens (voir Outil mdelta Manuel Utilisateur Version 1.0.). Dans le cas contraire on dira que l’expression est dépourvue de sens. On désigne par expression potentiellement dépourvue de sens toute expression nécessitant des conditions pour ne pas être dépourvue de sens.

Par exemple, soit l’expression :

y = xx+8-
    -c-
(2.1)

Cette expression peut être vraie ou fausse, à la condition qu’elle soit bien définie. Si cette expression n’est pas bien définie, il est alors impossible de lui associer une valeur vrai ou faux. Cette mauvaise définition signifie qu’au moins un opérateur de l’expression a au moins un opérande qui n’appartient pas à son domaine de définition.

L’expression (3.1) est manifestement de nature arithmétique. On considère que l’expression est bien typée (opération réalisée par le vérificateur de types) et que y, x et c sont des entiers relatifs.

Les opérateurs apparaissant dans l’expression (3.1) sont :

Il va donc falloir vérifier que :

La bonne définition de l’expression (3.1) passe par la démonstration des prédicats suivants :

(x + 8)∕c ⁄= 0
(2.2)

c ⁄= 0
(2.3)

Le contexte de l’expression doit contenir ces prédicats sous forme d’hypothèses ou doit permettre de les déduire.

Si tel n’est pas le cas, l’expression (3.1) est potentiellement mal définie.

On se reportera au tableau (1) pour la liste des expressions pouvant être mal définies.

2.3.2 Conditions de bonne définition

Les conditions de bonne définition sont recensées dans le tableau ci-dessous.



ExpressionCondition de bonne définition


ab a b
a mod b b 1 a
a∕b b 1
Π(x).(P|E){x|P}∈ FIN({x|P})
Σ(x).(P|E){x|P}∈ FIN({x|P})
max(S) S FIN() S
min(S) S ( -) FIN() S
card(S) S FIN(S)
inter(U) U
(x).(P|E){x|P}
rn n
f(x) x dom(f) f dom(f)  →↦  ran(f)
perm(S) S FIN(S)
conc(s) s seq(ran(s)) ∧∀x.(x dom(s)   s(x) seq(ran(s(x))))
s t s seq(ran(s)) t seq(ran(t))
size(s) s seq(ran(s))
rev(s) s seq(ran(s))
s e s seq(ran(s))
e s s seq(ran(s))
tail(s) size(s) 1 s seq(ran(s))
first(s) size(s) 1 s seq(ran(s))
front(s) size(s) 1 s seq(ran(s))
last(s) size(s) 1 s seq(ran(s))
s n n 0 .. size(s) s seq(ran(s))
s n n 0 .. size(s) s seq(ran(s))


 Tableau (1) : Expressions potentiellement dépourvues de sens