• Aucun résultat trouvé

MasterMiageM1 SurvoletexemplesPascalANDRE D´eveloppementdelogicielavecZ

N/A
N/A
Protected

Academic year: 2022

Partager "MasterMiageM1 SurvoletexemplesPascalANDRE D´eveloppementdelogicielavecZ"

Copied!
222
0
0

Texte intégral

(1)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

eveloppement de logiciel avec Z

Survol et exemples

Pascal ANDRE

MIAGE Universit´e de Nantes

Master Miage M1

(2)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

Plan

Introduction

La notation Z : logique et th´eorie des ensembles La notation Z : relations binaires et variantes La notation Z : sch´emas

La m´ethode de d´eveloppement Merise et Z

(3)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

Contexte de l’intervention

Le d´eveloppement du logiciel 1. Avec rigueur

I Mod`eles, produits formels

I Processus d´erivatif

I Validation, v´erification

2. Qualit´e induite pour la sˆuret´e de fonctionnement

Focus

I approche formelle (voir la pr´esentationintroMF) I notation Zet outils de v´erification (Z-EVES, ...)

Vers un usage rationnel

I bonnes pratiques de sp´ecification (pr´ecision)

I bonnes pratiques de conception (assertions, preuves)

I bonnes pratiques de programmation (tests)

(4)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La notation Z

I Mod´elisation math´ematique

I Abrial (Grenoble, Oxford)

I Ann´ees 70

I Principes

I sp´ecification math´ematique, axiomatique de Hoare

I abstraction

I sch´ema

I preuve de propri´et´es

I raffinement (raffinage, r´eification)

I VDM, B

(5)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La notation Z

I Mod´elisation math´ematique

I Abrial (Grenoble, Oxford)

I Ann´ees 70

I Principes

I sp´ecification math´ematique, axiomatique de Hoare

I abstraction

I sch´ema

I preuve de propri´et´es

I raffinement (raffinage, r´eification)

I VDM, B

(6)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La notation Z

I Mod´elisation math´ematique

I Abrial (Grenoble, Oxford)

I Ann´ees 70

I Principes

I sp´ecification math´ematique, axiomatique de Hoare

I abstraction

I sch´ema

I preuve de propri´et´es

I raffinement (raffinage, r´eification)

I VDM, B

(7)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La notation Z

I Mod´elisation math´ematique

I Abrial (Grenoble, Oxford)

I Ann´ees 70

I Principes

I sp´ecification math´ematique, axiomatique de Hoare

I abstraction

I sch´ema

I preuve de propri´et´es

I raffinement (raffinage, r´eification)

I VDM, B

(8)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La notation Z

I Mod´elisation math´ematique

I Abrial (Grenoble, Oxford)

I Ann´ees 70

I Principes

I sp´ecification math´ematique, axiomatique de Hoare

I abstraction

I sch´ema

I preuve de propri´et´es

I raffinement (raffinage, r´eification)

I VDM, B

(9)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La notation Z

I Mod´elisation math´ematique

I Abrial (Grenoble, Oxford)

I Ann´ees 70

I Principes

I sp´ecification math´ematique, axiomatique de Hoare

I abstraction

I sch´ema

I preuve de propri´et´es

I raffinement (raffinage, r´eification)

I VDM, B

(10)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La notation Z

I Mod´elisation math´ematique

I Abrial (Grenoble, Oxford)

I Ann´ees 70

I Principes

I sp´ecification math´ematique, axiomatique de Hoare

I abstraction

I sch´ema

I preuve de propri´et´es

I raffinement (raffinage, r´eification)

I VDM, B

(11)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La notation Z

I Mod´elisation math´ematique

I Abrial (Grenoble, Oxford)

I Ann´ees 70

I Principes

I sp´ecification math´ematique, axiomatique de Hoare

I abstraction

I sch´ema

I preuve de propri´et´es

I raffinement (raffinage, r´eification)

I VDM, B

(12)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La notation Z

I Mod´elisation math´ematique

I Abrial (Grenoble, Oxford)

I Ann´ees 70

I Principes

I sp´ecification math´ematique, axiomatique de Hoare

I abstraction

I sch´ema

I preuve de propri´et´es

I raffinement (raffinage, r´eification)

I VDM, B

(13)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La notation Z

I Mod´elisation math´ematique

I Abrial (Grenoble, Oxford)

I Ann´ees 70

I Principes

I sp´ecification math´ematique, axiomatique de Hoare

I abstraction

I sch´ema

I preuve de propri´et´es

I raffinement (raffinage, r´eification)

I VDM, B

(14)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

Quelques r´ef´erences autour de Z

Quelques r´ef´erences autour de Z

I Notation Z [Spi94,WL88]

I ethodes formelles et Z [AV01,AV04]

I evelopper avec Z [PST96,Bow96,Jac97,Wor92]

(15)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

Pascal Andr´e and Alain Vailly.

Sp´ecification des logiciels ; Deux exemples de pratiques r´ecentes : Z et UML, volume 2 of Collection Technosup.

Editions Ellipses, 2001.

ISBN 2-7298-0774-8.

Pascal Andr´e and Alain Vailly.

Exercices corrig´es en langage Z ; Les sp´ecifications formelles par la pratique, volume 4 of Collection Technosup.

Editions Ellipses, 2004.

ISBN 2-7298-1942-8.

Jonathan Bowen.

Formal Specification & Documentation using Z: A Case Study Approach.

International Thomson Publishing, 1996.

ISBN 1-85032-230-9.

Jonathan Jacky.

The Way of Z: Practical Programming with Formal Methods.

Cambridge University Press, 1997.

ISBN 0-521-55041-6.

(16)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

International Series in Computer Science. Prentice-Hall, 2 edition, 1996.

ISBN 0-13-242207-7.

Mike Spivey.

La notation Z.

Collection M´ethodologies du logiciel. Editions Masson, 1994.

Traduit de l’anglais par Michel Lemoine, ISBN 2-225-84367-8.

J. Woodcock and M. Loomes.

Software Engineering Mathematics.

Addison Wesley, 1988.

John B. Wordsworth.

Software development with Z.

Addison Wesley, 1992.

ISBN 0-201-62757-4.

(17)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

Plan

Introduction

La notation Z : logique et th´eorie des ensembles

La notation Z : relations binaires et variantes La notation Z : sch´emas

La m´ethode de d´eveloppement Merise et Z

(18)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique

I Logique des propositions

(19)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique

I Logique des propositions

”Loin des yeux, loin du cœur.

Mieux vaut tard que jamais.

Le monde appartient `a celui qui se l`eve tˆot.

La raison du plus fort est toujours la meilleure.

erard est le plus fort.

erard se l`eve tard et vit la nuit.

Apr`es la pluie, le beau temps.”

(20)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique

I Logique des propositions

”Loin des yeux, loin du cœur.

Mieux vaut tard que jamais.

Le monde appartient `a celui qui se l`eve tˆot.

La raison du plus fort est toujours la meilleure.

erard est le plus fort.

erard se l`eve tard et vit la nuit.

Apr`es la pluie, le beau temps.”

I exclusion : vrai ou faux

I contradiction : non (vrai et faux)

I combinaison : et, ou, non, ou exclusif, implique, etc.

(21)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique

I Logique des propositions

I Logique des pr´edicats

(22)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique

I Logique des propositions

I Logique des pr´edicats

I variables : param´etrer les propositions

I quantificateur : d´ecrire le domaine de la variable (le domaine sera le type en Z)

I port´ee : espace d’existence de la variable.

I combinaison : op´erateurs des propositions.

(23)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique

I Logique des propositions

I Logique des pr´edicats

imp´eratif(x) la variablex est libre imp´eratif(Pascal) est une proposition fonctionnel(caml) est une proposition objet(C++) est une proposition

∀x imp´eratif(x)langage(x) x est li´ee

imp´eratif(C)imp´eratif(C++) C est une constante

∀x objet(x)

fonctionnel(x)imp´eratif(x) x est li´ee

(24)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

I Constantes : true et false

I Op´erateurs :

Op´erateur Sens Notations alternatives

¬P egation not P, P, P P Q conjonction P and Q, P.Q, P&Q P Q disjonction P or Q, P +Q

P Q egation P implies Q, if P then Q P Q ´equivalence ´equivalence logique

A ces op´erateurs peuvent ˆetre ajout´es de nouveaux op´erateurs tels que leou exclusif (P xor Q).

(25)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

I Constantes : true et false

I Op´erateurs :

Op´erateur Sens Notations alternatives

¬P egation not P, P, P P Q conjonction P and Q, P.Q, P&Q P Q disjonction P or Q, P +Q

P Q egation P implies Q, if P then Q P Q ´equivalence ´equivalence logique

A ces op´erateurs peuvent ˆetre ajout´es de nouveaux op´erateurs tels que leou exclusif (P xor Q).

(26)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

Propri´et´es :

I Axiomes

I Th´eor`emes

I Preuve raisonnement par

I eduction

I eduction

I l’absurde

I cas

I hypoth`ese

I ecurrence

I autres (tables de v´erit´e, Karnaugh, r´esolution)

++ etails : [AV01], chapitre 2, section 2

(27)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

Propri´et´es :

I Axiomes

I Th´eor`emes

Nom Propri´et´e Proposition P1 Commutativit´e P Q Q P

P2 P Q Q P

P7 Lois DE MORGAN ¬(P Q)⇔ ¬P ∨ ¬Q P8 (formes normales) ¬(P Q)⇔ ¬P ∧ ¬Q P9 Forme normale P Q ⇔ ¬P Q

I Preuve raisonnement par

I eduction

I eduction

I l’absurde

I cas

I hypoth`ese

I ecurrence

I autres (tables de v´erit´e, Karnaugh, r´esolution)

++ etails : [AV01], chapitre 2, section 2

(28)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

Propri´et´es :

I Axiomes

I Th´eor`emes

I Preuve raisonnement par

I eduction

I eduction

I l’absurde

I cas

I hypoth`ese

I ecurrence

I autres (tables de v´erit´e, Karnaugh, r´esolution) ++ etails : [AV01], chapitre 2, section 2

(29)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

Propri´et´es :

I Axiomes

I Th´eor`emes

I Preuve raisonnement par

I eduction

I eduction

I l’absurde

I cas

I hypoth`ese

I ecurrence

I autres (tables de v´erit´e, Karnaugh, r´esolution) ++ etails : [AV01], chapitre 2, section 2

(30)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

Propri´et´es :

I Axiomes

I Th´eor`emes

I Preuve raisonnement par

I eduction

I eduction

I l’absurde

I cas

I hypoth`ese

I ecurrence

I autres (tables de v´erit´e, Karnaugh, r´esolution) ++ etails : [AV01], chapitre 2, section 2

(31)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

Propri´et´es :

I Axiomes

I Th´eor`emes

I Preuve raisonnement par

I eduction

I eduction

I l’absurde

I cas

I hypoth`ese

I ecurrence

I autres (tables de v´erit´e, Karnaugh, r´esolution) ++ etails : [AV01], chapitre 2, section 2

(32)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

Propri´et´es :

I Axiomes

I Th´eor`emes

I Preuve raisonnement par

I eduction

I eduction

I l’absurde

I cas

I hypoth`ese

I ecurrence

I autres (tables de v´erit´e, Karnaugh, r´esolution) ++ etails : [AV01], chapitre 2, section 2

(33)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

Propri´et´es :

I Axiomes

I Th´eor`emes

I Preuve raisonnement par

I eduction

I eduction

I l’absurde

I cas

I hypoth`ese

I ecurrence

I autres (tables de v´erit´e, Karnaugh, r´esolution) ++ etails : [AV01], chapitre 2, section 2

(34)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

Propri´et´es :

I Axiomes

I Th´eor`emes

I Preuve raisonnement par

I eduction

I eduction

I l’absurde

I cas

I hypoth`ese

I ecurrence

I autres (tables de v´erit´e, Karnaugh, r´esolution) ++ etails : [AV01], chapitre 2, section 2

(35)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

Propri´et´es :

I Axiomes

I Th´eor`emes

I Preuve raisonnement par

I eduction

I eduction

I l’absurde

I cas

I hypoth`ese

I ecurrence

I autres (tables de v´erit´e, Karnaugh, r´esolution)

++ etails : [AV01], chapitre 2, section 2

(36)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des propositions

Propri´et´es :

I Axiomes

I Th´eor`emes

I Preuve raisonnement par

I eduction

I eduction

I l’absurde

I cas

I hypoth`ese

I ecurrence

I autres (tables de v´erit´e, Karnaugh, r´esolution)

(37)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des pr´edicats

I Constantes : true et false

I Quantificateurs :

variable libre

P(x) pr´edicat param´etr´e par la variablex variable li´ee

∀xP(x) P est vrai pour toute valeur dex

∃xP(x) il y a au moins une valeur de x telle que P soit vrai

∃!x P(x) il y a une seule valeur dex

1x P(x) telle que P soit vrai

(38)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des pr´edicats

I Constantes : true et false

I Quantificateurs :

variable libre

P(x) pr´edicat param´etr´e par la variablex variable li´ee

∀xP(x) P est vrai pour toute valeur dex

∃xP(x) il y a au moins une valeur de x telle que P soit vrai

∃!x P(x) il y a une seule valeur dex

x P(x) telle que P soit vrai

(39)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des pr´edicats

Interpr´etation :

I Domaine : d´efini ou pas (cf types)

I Op´erateurs de base : propositions

I Expressions : d´eduction naturelle

(40)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des pr´edicats

Interpr´etation :

I Domaine : d´efini ou pas (cf types)

I Op´erateurs de base : propositions

I Expressions : d´eduction naturelle

(41)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des pr´edicats

Interpr´etation :

I Domaine : d´efini ou pas (cf types)

I Op´erateurs de base : propositions

I Expressions : d´eduction naturelle

Nom R`egle d’inf´erence

∀-introduction P(a)

∀xP(x) o`u aest un terme arbitraire

∀-´elimination ∀xP(x)

P(a) o`u aest un terme arbitraire R`egles de d´eduction du calcul des pr´edicats

(42)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des pr´edicats

Propri´et´es :

I Axiomes

I Th´eor`emes : exemple de la distribution

I Preuve propositions

++ etails : [AV01], chapitre 2, section 4

(43)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des pr´edicats

Propri´et´es :

I Axiomes

I Th´eor`emes : exemple de la distribution Nom Propri´et´e Formule

P05 sur (∀x P(x)Q(x)) (∀xP(x))(∀x Q(x)) P06 sur (∀x P(x)Q(x))

(∀xP(x))(∀x Q(x)) P07 sur (∃x P(x)Q(x))

(∃xP(x))(∃x Q(x)) P08 sur (∃x P(x)Q(x))

(∃xP(x))(∃x Q(x))

I Preuve propositions

++ etails : [AV01], chapitre 2, section 4

(44)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des pr´edicats

Propri´et´es :

I Axiomes

I Th´eor`emes : exemple de la distribution

I Preuve propositions

++ etails : [AV01], chapitre 2, section 4

(45)

Introduction Bases Relations Sch´emas Processus Merise et Z Bilan

La logique

La logique des pr´edicats

Propri´et´es :

I Axiomes

I Th´eor`emes : exemple de la distribution

I Preuve propositions

++ etails : [AV01], chapitre 2, section 4

(46)

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 eclar´es

I extensionnat=b{0,1,2,3,4,5}

I compr´ehensionnat pair =b{x :ZZ|x 02x}

I ecursifnat::=zero|succhhnatii

(47)

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

a b c d

1 2 3 4 caractères

&

?

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 eclar´es

I extensionnat=b{0,1,2,3,4,5}

I compr´ehensionnat pair =b{x :ZZ|x 02x}

I ecursifnat::=zero|succhhnatii

(48)

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 eclar´es

I extensionnat=b{0,1,2,3,4,5}

I compr´ehensionnat pair =b{x :ZZ |x 02x}

I ecursifnat::=zero|succhhnatii

(49)

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 eclar´es

I extensionnat=b{0,1,2,3,4,5}

I compr´ehensionnat pair =b{x :ZZ |x 02x}

I ecursifnat::=zero|succhhnatii

(50)

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 eclar´es

I extensionnat=b{0,1,2,3,4,5}

I compr´ehensionnat pair =b{x :ZZ |x 02x}

I ecursifnat::=zero|succhhnatii

(51)

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 eclar´es

I extensionnat=b{0,1,2,3,4,5}

I compr´ehensionnat pair =b{x :ZZ |x 02x}

I ecursifnat::=zero|succhhnatii

(52)

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 eclar´es

I extensionnat=b{0,1,2,3,4,5}

I compr´ehensionnat pair =b{x :ZZ |x 02x}

I ecursifnat::=zero|succhhnatii

(53)

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 eclar´es

I extensionnat=b{0,1,2,3,4,5}

I compr´ehensionnat pair =b{x :ZZ|x 02x}

I ecursifnat::=zero|succhhnatii

(54)

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 eclar´es

I extensionnat=b{0,1,2,3,4,5}

I compr´ehensionnat pair =b{x :ZZ|x 02x}

I ecursifnat::=zero|succhhnatii

(55)

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 eclar´es

I extensionnat=b{0,1,2,3,4,5}

I compr´ehensionnat pair =b{x :ZZ|x 02x}

I ecursifnat::=zero|succhhnatii

(56)

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 eclar´es

I extensionnat=b{0,1,2,3,4,5}

I compr´ehensionnat pair =b{x :ZZ|x 02x}

I ecursifnat::=zero|succhhnatii

(57)

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...

I exemples

ens =b {1,2,3} alpha::=a|b

1ens #ens = 3

ens ⊆IN

IP ens ={∅,{1},{2},{3},{1,2},{2,3},{1,3},{1,2,3}} ens×alpha={(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)} ens IN=IN ens IN=ens

(58)

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...

I exemples

ens =b {1,2,3} alpha::=a|b

1ens #ens = 3

ens ⊆IN

IP ens ={∅,{1},{2},{3},{1,2},{2,3},{1,3},{1,2,3}} ens×alpha={(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)} ens IN=IN ens IN=ens

(59)

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...

I exemples

ens =b {1,2,3} alpha::=a|b

1ens #ens = 3

ens ⊆IN

IP ens ={∅,{1},{2},{3},{1,2},{2,3},{1,3},{1,2,3}} ens×alpha={(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)} ens IN=IN ens IN=ens

Références

Documents relatifs

La dernière phrase de l’extrait décrit l’ensemble des difficultés, y compris les conditions précaires de Denise. « sous la continuelle menace d’un renvoi brutal », et

a) Montrer qu’un A-module M est artinien si et seulement si toute famille non vide de sous-A- modules de M admet un ´ el´ ement minimal.. b) On suppose que A est

Montrer que tout sous-sch´ ema ouvert de Spec(A) est affine (on pourra se ramener au cas du compl´ ementaire d’un point ferm´ e dans Spec(A) et utiliser le fait qu’un anneau

[r]

[r]

Dans cet exercice, on appelle k-vari´ et´ e un sch´ ema de type fini sur Spec(k). ferm´ ee) est-elle finie (resp. Montrer l’´ equivalence des propositions.. suivantes : i) f

[r]

Des notations de l’état corporel de lots de brebis mises en reproduction au prin- temps ont été réalisées dans 8 exploitations des Cévennes Gardoises de novembre 1986