Les types et les ensembles
I Ensemble : collection d’´el´ements
I Types : ensembles disjoints d’´el´ements
I Diff´erents types
I vide (polymorphe)
I de base (ind´efinis)
I de pr´ed´efinis (ZZ)
I libres (´enum´erations, intervalles)bool ::=vrai |faux
I d´eclar´es
I extensionnat=b{0,1,2,3,4,5}
I compr´ehensionnat pair =b{x :ZZ|x ≥0•2∗x}
I r´ecursifnat::=zero|succhhnatii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Ensemble : collection d’´el´ements
I Types : ensembles disjoints d’´el´ements
lettres chiffres
I Diff´erents types
I vide (polymorphe)
I de base (ind´efinis)
I de pr´ed´efinis (ZZ)
I libres (´enum´erations, intervalles)bool ::=vrai |faux
I d´eclar´es
I extensionnat=b{0,1,2,3,4,5}
I compr´ehensionnat pair =b{x :ZZ|x ≥0•2∗x}
I r´ecursifnat::=zero|succhhnatii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Ensemble : collection d’´el´ements
I Types : ensembles disjoints d’´el´ements
I Diff´erents types
I vide (polymorphe)
I de base (ind´efinis)
I de pr´ed´efinis (ZZ)
I libres (´enum´erations, intervalles)bool ::=vrai |faux
I d´eclar´es
I extensionnat=b{0,1,2,3,4,5}
I compr´ehensionnat pair =b{x :ZZ |x ≥0•2∗x}
I r´ecursifnat::=zero|succhhnatii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Ensemble : collection d’´el´ements
I Types : ensembles disjoints d’´el´ements
I Diff´erents types
I vide (polymorphe)
I de base (ind´efinis)
I de pr´ed´efinis (ZZ)
I libres (´enum´erations, intervalles)bool ::=vrai |faux
I d´eclar´es
I extensionnat=b{0,1,2,3,4,5}
I compr´ehensionnat pair =b{x :ZZ |x ≥0•2∗x}
I r´ecursifnat::=zero|succhhnatii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Ensemble : collection d’´el´ements
I Types : ensembles disjoints d’´el´ements
I Diff´erents types
I vide (polymorphe)
I de base (ind´efinis)
I de pr´ed´efinis (ZZ)
I libres (´enum´erations, intervalles)bool ::=vrai |faux
I d´eclar´es
I extensionnat=b{0,1,2,3,4,5}
I compr´ehensionnat pair =b{x :ZZ |x ≥0•2∗x}
I r´ecursifnat::=zero|succhhnatii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Ensemble : collection d’´el´ements
I Types : ensembles disjoints d’´el´ements
I Diff´erents types
I vide (polymorphe)
I de base (ind´efinis)
I de pr´ed´efinis (ZZ)
I libres (´enum´erations, intervalles)bool ::=vrai |faux
I d´eclar´es
I extensionnat=b{0,1,2,3,4,5}
I compr´ehensionnat pair =b{x :ZZ |x ≥0•2∗x}
I r´ecursifnat::=zero|succhhnatii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Ensemble : collection d’´el´ements
I Types : ensembles disjoints d’´el´ements
I Diff´erents types
I vide (polymorphe)
I de base (ind´efinis)
I de pr´ed´efinis (ZZ)
I libres (´enum´erations, intervalles)bool ::=vrai|faux
I d´eclar´es
I extensionnat=b{0,1,2,3,4,5}
I compr´ehensionnat pair =b{x :ZZ |x ≥0•2∗x}
I r´ecursifnat::=zero|succhhnatii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Ensemble : collection d’´el´ements
I Types : ensembles disjoints d’´el´ements
I Diff´erents types
I vide (polymorphe)
I de base (ind´efinis)
I de pr´ed´efinis (ZZ)
I libres (´enum´erations, intervalles)bool ::=vrai|faux
I d´eclar´es
I extensionnat=b{0,1,2,3,4,5}
I compr´ehensionnat pair =b{x :ZZ|x ≥0•2∗x}
I r´ecursifnat::=zero|succhhnatii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Ensemble : collection d’´el´ements
I Types : ensembles disjoints d’´el´ements
I Diff´erents types
I vide (polymorphe)
I de base (ind´efinis)
I de pr´ed´efinis (ZZ)
I libres (´enum´erations, intervalles)bool ::=vrai|faux
I d´eclar´es
I extensionnat=b{0,1,2,3,4,5}
I compr´ehensionnat pair =b{x :ZZ|x ≥0•2∗x}
I r´ecursifnat::=zero|succhhnatii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Ensemble : collection d’´el´ements
I Types : ensembles disjoints d’´el´ements
I Diff´erents types
I vide (polymorphe)
I de base (ind´efinis)
I de pr´ed´efinis (ZZ)
I libres (´enum´erations, intervalles)bool ::=vrai|faux
I d´eclar´es
I extensionnat=b{0,1,2,3,4,5}
I compr´ehensionnat pair =b{x :ZZ|x ≥0•2∗x}
I r´ecursifnat::=zero|succhhnatii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Ensemble : collection d’´el´ements
I Types : ensembles disjoints d’´el´ements
I Diff´erents types
I vide (polymorphe)
I de base (ind´efinis)
I de pr´ed´efinis (ZZ)
I libres (´enum´erations, intervalles)bool ::=vrai|faux
I d´eclar´es
I extensionnat=b{0,1,2,3,4,5}
I compr´ehensionnat pair =b{x :ZZ|x ≥0•2∗x}
I r´ecursifnat::=zero|succhhnatii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Op´erateurs
I ´el´ements : ´egalit´e, diff´erence
I ´el´ements/ensemble : d´eclaration de type, appartenance
I ensembles : intersection, union, produit cart´esien, diff´erence, cardinal, puissance...
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Op´erateurs
I ´el´ements : ´egalit´e, diff´erence
I ´el´ements/ensemble : d´eclaration de type, appartenance
I ensembles : intersection, union, produit cart´esien, diff´erence, cardinal, puissance...
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Op´erateurs
I ´el´ements : ´egalit´e, diff´erence
I ´el´ements/ensemble : d´eclaration de type, appartenance
I ensembles : intersection, union, produit cart´esien, diff´erence, cardinal, puissance...
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Op´erateurs
I ´el´ements : ´egalit´e, diff´erence
I ´el´ements/ensemble : d´eclaration de type, appartenance
I ensembles : intersection, union, produit cart´esien, diff´erence, cardinal, puissance...
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Op´erateurs
I ´el´ements : ´egalit´e, diff´erence
I ´el´ements/ensemble : d´eclaration de type, appartenance
I ensembles : intersection, union, produit cart´esien, diff´erence, cardinal, puissance...
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Toutes les variables sont typ´ees en Z.
I d´eclaration librex1a,x1b:T1; x2:T2; ...xn:Tn I d´eclaration contrainte
x:ZZ 0≤x
I port´ee de la d´eclaration (global, sch´ema, liaison)
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Toutes les variables sont typ´ees en Z.
I Diff´erents types
I vide∅,{}
I de base [PERSONNE] (global)
I de pr´ed´efinis (ZZ)
arbreBinaire::=FeuillehhEii |Noeud hharbreBinaire×arbreBinaireii
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Op´erateurs
I ´el´ements : x∈/ S⇔ ¬(x ∈S)
I ´el´ements/ensemble : ∈
I ensembles :
S ⊆T (∀x:S •x∈T)
IP S S ∈IP T ⇔(∀x•x ∈S⇒x∈T) S×T {x :S;y :T •(x,y)}
S∩T {x :X |x ∈S ∧x∈T} avecS,T :IP X
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Op´erateurs
I ´el´ements : x∈/S ⇔ ¬(x ∈S)
I ´el´ements/ensemble : ∈
I ensembles :
S ⊆T (∀x:S •x∈T)
IP S S ∈IP T ⇔(∀x•x ∈S⇒x∈T) S×T {x :S;y :T •(x,y)}
S∩T {x :X |x ∈S ∧x∈T} avecS,T :IP X
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Op´erateurs
I ´el´ements : x∈/S ⇔ ¬(x ∈S)
I ´el´ements/ensemble : ∈
I ensembles :
S ⊆T (∀x:S •x∈T)
IP S S ∈IP T ⇔(∀x•x ∈S⇒x∈T) S×T {x :S;y :T •(x,y)}
S∩T {x :X |x ∈S ∧x∈T} avecS,T :IP X
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Op´erateurs
I ´el´ements : x∈/S ⇔ ¬(x ∈S)
I ´el´ements/ensemble : ∈
I ensembles :
S ⊆T (∀x:S •x∈T)
IP S S∈IP T ⇔(∀x•x∈S⇒x∈T) S×T {x :S;y :T •(x,y)}
S∩T {x :X |x ∈S ∧x∈T} avecS,T :IP X
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Propri´et´es
appartient ∀x •x ∈ {x}
vide ¬ ∃x •x∈ {}
extension (S =T)⇔(∀x•x∈S ⇔x ∈T) pr´edicat x ∈ {y :S |P(y)} ⇔(x ∈S ∧P(x))
motif x ∈ {y:S •t(y)} ⇔(∃y •y ∈S ∧x =t(y))
I Preuve⇒ logique
++ D´etails : [AV01], chapitre 2, section 5
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Propri´et´es
appartient ∀x •x ∈ {x}
vide ¬ ∃x •x∈ {}
extension (S =T)⇔(∀x•x∈S ⇔x ∈T) pr´edicat x ∈ {y :S |P(y)} ⇔(x ∈S ∧P(x))
motif x ∈ {y:S •t(y)} ⇔(∃y •y ∈S ∧x =t(y))
I Preuve⇒ logique
++ D´etails : [AV01], chapitre 2, section 5
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles
Les types et les ensembles
I Propri´et´es
appartient ∀x •x ∈ {x}
vide ¬ ∃x •x∈ {}
extension (S =T)⇔(∀x•x∈S ⇔x ∈T) pr´edicat x ∈ {y :S |P(y)} ⇔(x ∈S ∧P(x))
motif x ∈ {y:S •t(y)} ⇔(∃y •y ∈S ∧x =t(y))
I Preuve⇒ logique
++ D´etails : [AV01], chapitre 2, section 5
Introduction Bases Relations Sch´emas Processus Merise et Z Bilan
Les types et les ensembles