Document 7896144

Download Report

Transcript Document 7896144

Modélisation des données

Un langage pour décrire


INVARIANT, PRE-CONDITION, EXPRESSION
Concepts et notations utilisés






Logique
Ensembles
Relations binaires et fonctions
Arithmétique
Suites
Arbres
Logique : connecteurs





ET
OU
NON
SI-ALORS
EQUIV.
 (ASCII : &)
 (ASCII : or)
 (ASCII : not)
 (ASCII : =>)
 (ASCII : <=>)
Logique : quantificateurs

Universel



 listeDeVariables . (P  Q) (ASCII : !)
 x,y . (x NAT  y NAT 
x=quantite(y)  x≥0)
Existentiel


 listeDeVariables . (P) (ASCII : #)
 x . (x NAT x=0)
Logique : prédicat = et couple

Égalité



=
≠ (/= en ASCII).
Couple

(a,b) (en B symbole maplet |-> : a|->b)
Ensemble : désignation

Extension


Compréhension


E={1,3,5,7,9}
E={x | x  Z  x>0  x<10  x mod 2 =1}
L’ensemble vide

{}
Ensemble : les prédéfinis








N les entiers naturels (NATURAL en ASCII)
N* les entiers naturels non nuls (NATURAL1 en ASCII)
Z les entiers relatifs (INTEGER en ASCII)
I..J les intervalles d’entier, l’ensemble des valeurs
comprises entre I et J (bornes incluses)
INT les entiers relatifs implantables : MININT..MAXINT
NAT les entiers naturels implantables : 0..MAXINT
NAT1 les entiers naturels non nuls implantables :
1..MAXINT
BOOL les booléens = {FALSE,TRUE}


bool(P) retourne le booléen résultat d’une formule FOL
STRING l’ensemble des chaînes de caractères.
Ensemble : les prédicats



x  E (: en ASCII)
E1  E2 (<: en ASCII,  notée <<:)
E1 x E2 (* en ASCII)




Produit cartésien non commutatif
a|->b ≠ b|->a
P(E) (POW en ASCII)
Négation des prédicats par le symbole /

 devient /: en ASCII
Ensembles : les opérateurs

l’union E1  E2 (\/ en ASCII)


l’intersection E1  E2 (/\ en ASCII)


l’ensemble des éléments appartenant aux deux
ensembles E1 et E2
la différence E1 - E2


l’ensemble des éléments appartenant à E1 ou E2
l’ensemble des éléments appartenant à E1 mais pas à E2
choice(E)

un élément indéterminé de l’ensemble E
Relations binaires: vocabulaire

r est un sous-ensemble du produit
cartésien D x A de deux ensembles



D : ensemble de départ
A : ensemble d’arrivée
Soit un couple d|->a d’une relation r


a est une image de d par r
d est un antécédent de a par r
Relations binaires : déclaration

r  D x A ou r  P(D x A) ou
r  D↔A


r est une relation de D dans A
D↔A désigne l’ensemble de toutes les
relations de D vers A


D↔A = P(D x A)
noté <-> en ASCII
Relations binaires : les
opérateurs


Soit r  D↔A
Le domaine : dom(r)



l’ensemble des éléments de D qui ont
une image par r
{d | dD  a.(aA  (d,a)r)}
Le co-domaine (« range ») : ran(r)


l’ensemble des éléments de A qui ont un
antécédent par r
{a | aA  d.(dD  (d,a)r)}
Relations binaires : les
opérateurs


Soit r  D↔A et q  A↔C
l’inverse : r-1 (r~ en ASCII)



la composition : r;q




la relation de A↔D définie par
{(a,d) | (a,d)AxD  (d,a)  r}
la relation de D↔C définie par
{(d,c) | (d,c)DxC   a.(a  A  (d,a)  r  (a,c)  q)}
l’ensemble d’arrivée de r doit être identique à celui de
départ de q
la relation identité sur un ensemble : id(D)


la relation de D↔D définie par
{(d,a) | (d,a)DxD  d=a}
Relations binaires : les
opérateurs


Soit r  D↔A et ED et BA
la restriction de domaine : Er







(<<| en ASCII)
la relation incluse dans r définie par
{(d,a) | (d,a)r  dE}
l’anti-co-restriction : rB

(|> en ASCII)
la relation incluse dans r définie par
{(d,a) | (d,a)r  a  B} ;
l’anti-restriction : Er


la relation incluse dans r définie par
{(d,a) | (d,a)r  d  E} ;
la co-restriction : rB

(<| en ASCII)
la relation incluse dans r définie par
{(d,a) | (d,a)r  aB}
(|>> en ASCII)
Relations binaires : les
opérateurs


Soit rD↔A et pD↔A
L’image relationnelle : r[E]



l’ensemble des images des éléments de E par r
{a | aA  d.(dE  (d,a)r)}
La surcharge : r<+p


l’écrasement de la relation par la relation p
{(d,a) | (d,a)DxA  ((d,a)p 
(ddom(p)  (d,a)r))}
Relations binaires : les
opérateurs


Soit rD↔A et sD↔F et qA↔C
Le produit direct : rs
(>< en ASCII)



La première projection : prj1(D,A)



la relation qui envoie chaque couple du produit cartésien de
deux ensembles sur le premier élément du couple
{((d,a),j) | ((d,a),j)(DxA)xD  j=d}
La deuxième projection: prj2(D,A)



la relation définie par
{(d,(a,f)) | (d,(a,f))Dx(AxF)  (d,a)r  (d,f)s}
la relation qui envoie chaque couple du produit cartésien de
deux ensembles sur le deuxième élément du couple
{((d,a),j) | ((d,a),j)(DxA)xA  j=a}
Le produit parallèle : s||q


la relation définie par
{((d,a),(f,c)) | ((d,a),(f,c))(DxA)x(FxC)  (d,f)s  (a,c)q}.
Relations binaires

5 opérateurs suffisent à construire tous
les autres


dom
-1
Exemples :




ran(r) =
Er =
r[E] =
r<+p =
;
id

Fonctions : 4 caractéristiques

la fonctionnalité (->)


la totalité (non totalité +-)


tout élément de l’ensemble de départ a au moins une image
l’injectivité (>-)


tout élément de l’ensemble de départ a au plus une image
tout élément de l’ensemble d’arrivée a au plus un antécédent
la surjectivité (->>)

tout élément de l’ensemble d’arrivée a au moins un antécédent
Fonctions : 8 catégories








les fonctions partielles (quelconques) D+->A
les fonctions totales D-->A
les injections partielles D>+>A
les injections totales D>->A
les surjections partielles D+>>A
les surjections totales D-->>A
les bijections partielles D>+>>A
les bijections totales D>->>A
Inclusion des ensembles de
relations et fonctions
D↔A
D+->A
D-->A
D+>>A
D>+>A
D-->>A
D>->A
D>+>>A
D>->>A
Relations et fonctions

La relation est la notion la plus générale.


En général une fonction est partielle


Une fonction totale est un cas particulier
En général une fonction a pour inverse une
relation


La fonction est un cas particulier
une injection a pour inverse une fonction
Toujours essayer de mettre le « côté » le
plus contraint à « gauche »
Fonctions : nouveaux
opérateurs

l’image fonctionnelle d’un élément : f(x)



f doit être une fonction
x doit appartenir à son domaine
fonctions abstraites (lambda expressions) :
x.(xD | e)



D est le domaine de définition de la fonction
e une expression paramétrée par x définissant
l’image pour tout x de D
( noté % en ASCII)
Arithmétique des entiers

Les comparateurs


Les opérateurs binaires




<, >, ,  (<= et >= en ASCII)
+, -, *, / (la division entière)
mod (le modulo)
xy (x**y en ASCII)
Les opérateurs unaires

succ, pred
Arithmétique des ensembles

L’opérateur card(E)


Le nombre d’éléments d’un ensemble
Les opérateurs max(E) et min(E)
Prennent un ensemble d’entiers non vide en paramètre

Retourne l’entier le plus grand (resp. le plus petit) de
l’ensemble
Les opérateurs  et 
(SIGMA et PI en ASCII)

Calculent la somme (le produit) d’expressions arithmétiques

(x,y…).(P | E)




P est une formule de la logique des prédicats et E une
expression arithmétique (P et E dépendant des variables x,y…)
Somme pour toutes valeurs de variables x,y… satisfaisant P des
expressions E correspondants aux valeurs des variables
Application à la modélisation

Description de parenté entre personnes
1.
2.
3.
4.
5.
6.
7.
8.
Personne ne peut être en même temps un homme
et une femme.
Cependant on est un homme ou on est une femme.
Seules les femmes ont des époux, qui sont des
hommes.
Les femmes n’ont qu’un seul époux.
Une épouse d’un homme est une femme dont cet
homme est l’époux.
Les hommes n’ont qu’une seule épouse.
Les mères sont des femmes mariées.
Par définition, le père est l’époux de la mère.
Formalisation


Soit un ensemble abstrait PERSONNE
On introduit les concepts homme, femme,
époux, mère
homme  PERSONNE
femme = PERSONNE – homme
aPourEpoux  femme +-> homme
aPourMère  PERSONNE +->dom(aPourEpoux)
Formalisation

Modéliser les concepts













aPourEpouse
aPourConjoint
personneMariée
mère
aPourPère, père
aPourParent, parent
aPourEnfant, enfant, aPourFille
aPourFrereOuSoeur, aPourFrere
aPourBeauFrereOuBelleSoeur
aPourNeveuOuNiece
aPourOncleOuTante
aPourCousin
…