MPRI Sémantique des langages de programmation …kesner/enseignement/master1/semantique/... ·...
Transcript of MPRI Sémantique des langages de programmation …kesner/enseignement/master1/semantique/... ·...
Sémantique des langages de programmation
Master 1 - LP - MPRI
Delia Kesner
PPS, Université Paris-Diderot
Email : [email protected]
URL : www.pps.univ-paris-diderot.fr/~kesner
Informations générales
� Partiel Obligatoire : mars
� Note module : (Partiel + Examen)/ 2
� 2eme session : Examen
1
Motivations
Functional
Programming
Data Base
languagesConcurrent
Languages
Imperative
Programming
Proof
Assistants
Rewriting
ProgrammingObject-Oriented
Programming
Programminglanguages
2
Syntax vs Semantics
Syntax :
∀x s(x) ̸= 0
Semantics :
�Every positive natural number is di�erent from zero�
3
Semantics of programming languages
The meaning of programming languages.
Di�erent techniques :
Operational semantics
Denotational semantics
Axiomatic semantics
4
Operational semantics
The meaning of a program is the sequence of states of the
machine executing the program.
program = transition system
Example :
P1: a=1; b=0; P2: a=1; P3: b=0; a=1;
b=0;
P1 is equivalent to P2, but P1 is not equivalent to P3.
/ non equivalent programs may have the same result.
This notion can be re�ned in order to observe just a piece of
memory of the machine.
5
Denotational semantics
program = mathematical function
Argument of this function : the state of the memory before execution
Result of this function : the state of the memory after execution
Example :
P1:a=1; b=0; P2:a=1; P3:b=0; a=1; P4:a=1; b=1;
b=0;
P1, P2 and P3 are equivalent, but they are not equivalent to P4.
6
Axiomatic semantics
program = transformation of logical properties
This can be written for example in Hoare logic as
{P}Prog{Q}
Thus for example,
{vrai} a = 1; b = 0; {a ≥ 0 ∧ b ≥ 0}{vrai} b = 0; a = 1; {a ≥ 0 ∧ b ≥ 0}{vrai} a = 1; b = 1; {a ≥ 0 ∧ b ≥ 0}
are all equivalent.
7
Relation between di�erent semantics
Two syntactic equivalent programs are operational equivalent.
Two operational equivalent programs are denotational equivalent.
Two denotational equivalent programs are axiomatic equivalent.
The converse implications are in general false.
8
Operational Semantics
program = transition system
Rewriting systems are a natural tool to model transitions between
objects.
9
Example I : String rewriting
Rewriting system :
vert → orange
orange → rouge
rouge → vert
Reduction sequence :
vert → orange → rouge → vert → orange → . . .
10
Example II : String rewriting
Rewriting system :
◦ • → • ◦• • → • •• ◦ → ◦ •
Reduction Sequence :
◦ • • ◦ • • ◦ • •↓∗
• • • ◦ ◦ ◦ • • •
11
Example III : Term rewriting
Rewriting system for Peano arithmetic :
0 + y → y
s(x) + y → s(x + y)
0 ∗ y → 0
s(x) ∗ y → (x ∗ y) + y
Reduction sequence :
12
�2 ∗ 3� = s(s(0)) ∗ s(s(s(0))) →s(0) ∗ s(s(s(0))) + s(s(s(0))) →0 ∗ s(s(s(0))) + s(s(s(0))) + s(s(s(0))) →0 + s(s(s(0))) + s(s(s(0))) →s(s(s(0))) + s(s(s(0))) →s(s(s(0)) + s(s(s(0)))) →s(s(s(0) + s(s(s(0))))) →s(s(s(0 + s(s(s(0)))))) →s(s(s(s(s(s(0)))))) = �6�
13
Example IV : Equational Programming
Rewriting system :
nil[a/y] → nil
cons(a, x)[a/y] → cons(y, x[a/y])
cons(b, x)[a/y] → cons(b, x[a/y])
Reduction sequence :
cons(a, cons(b, cons(a, cons(b, nil))))[a/c][b/d] →∗
cons(c, cons(d, cons(c, cons(d, nil))))
14
Example V : Logical reasoning
Rewriting system :
p ⊃ q → ¬p ∨ q
¬(p ∧ q) → ¬p ∨ ¬q
¬(p ∨ q) → ¬p ∧ ¬q
¬¬p → p
Reduction sequence :
15
¬(¬(¬p ⊃ q) ⊃ r) →¬(¬(¬¬p ∨ q) ⊃ r) →¬(¬(p ∨ q) ⊃ r) →¬((¬p ∧ ¬q) ⊃ r) →¬(¬(¬p ∧ ¬q) ∨ r) →¬((¬¬p ∨ ¬¬q) ∨ r) →¬((p ∨ ¬¬q) ∨ r) →¬((p ∨ q) ∨ r) →¬(p ∨ q) ∧ ¬r →(¬p ∧ ¬q) ∧ ¬r
16
Example VI : Functional Programming
The λ-calculus [Church]
(β) (λx.M)N → M{x/N}(η) λx.M x → M
(SP ) ⟨π1(M), π2(M)⟩ → M
17
Example VII : Object-Oriented Programming
The ς-calculus [Abadi & Cardelli]
An objet O is a collection of methods ⟨li ≡ ς selfi.Bi⟩i∈1...n.
Method invocation is given by the rewriting rules :
O.lj → Bj{selfj/O}
18
Example VIII : Mathematical reasoning
∃α.∀β.X → ∀β.∃α.X
T ∈ {α : A | P} → T ∈ A ∧ P{α/T}
19
Example IX : Pattern Matching
case(c1(L), λx1.M1, . . . , λxn.Mn) → M1{x1/L}...
...
case(cn(L), λx1.M1, . . . , λxn.Mn) → Mn{xn/L}
20
Example X : OCAML Programs
let rec length l = match l with
[] -> 0
| h::t -> length t + 1 ;;
let rec append l1 l2 = match l1 with
[] -> l2
| h::t -> h::append t l2;;
let rec map l f = match l with
[] -> []
| h::t -> (f h):: map t f ;;
21
Example XI : Concurrent Programming
The π-calculus [Milner & Parrow & Walker]
α⟨t⟩.P | α⟨x⟩.Q → P | Q{x/t}
22
Example XII :XSLT
A language to transform (by rewriting) XML documents.
See http://www.w3.org/Style/XSL/
23
Example XIV : development of plant structures
See http://algorithmicbotany.org/ for more details.
24
Formal de�nition of rewriting
Given a set of objects A, (abstract) rewriting is a relation
→ ⊆ A × A.
String rewriting : A is a set of words.
First-order rewriting : A is a set of algebraic terms.
Higher-order rewriting : A is a set of higher-order terms.
Graph rewriting : A is a set of graphs.
25
Main components of the rewriting model
� Objects
� Substitution
� Matching
26
Typical questions concerning a rewriting model
Consider a rewriting sequence
t1 →R t2 →R t3 →R . . .
� Is this computation terminating ? (always ? sometimes ?)
� Is there a result (e.g. canonical form) ?
� Is there uniqueness of results ?
27
(Part of the) History
(Thue-1914) String rewrite systems
(Church-1936) Lambda calculus
(Gorn-1967) Term rewrite systems
(Klop-1980) Combinatory reduction systems
28
Plan du cours
� Introduction
� Notions mathématiques
� Relations bien fondées : dé�nitions et exemples
� Principe d'induction bien fondée
� Composition de relations bien fondées : lexicographique,
produit, multi-ensemble, etc
� Notions de réécriture abstraite
� Notions de Church-Rosser, con�uence, con�uence faible,
con�uence forte, normalisation faible et normalisation forte
� Quelques théorèmes fondamentaux
� Calculs fonctionnels
� Introduction au lambda calcul
29
� Lambda termes, substitutions, alpha-conversion
� Réduction beta et égalité beta
� Con�uence du lambda calcul (réductions parallèles)
� Lambda calcul typé : type, jugement de type, dérivation de
typage
� Propriétés : Unicité, décidabilité et préservation du typage,
normalisation forte du lambda calcul simplement typé
(méthode de réductibilité et preuve arithmétique)
� Sémantique opérationnelle
� Sémantique opérationnelle structurée (petits pas)
� Sémantique opérationnelle naturelle (grands pas)
� Exemple évaluation des nombres binaires
� Sémantique du lambda calcul : appel par nom et par valeur,
à petits pas et grands pas
30
� Propriétés : déterminisme, correspondance entre petits pas
et grands pas, héritage de la préservation de types et de la
normalisation forte
� Calculs algébriques
� Termes et Sigma algèbres
� Homomorphismes et substitutions
� Théorème de Birkho�
� Réécriture
� Égalité engendrée par une relation de réécriture
� Quelques techniques pour montrer la con�uence
� Quelques techniques pour montrer la terminaison
� Machines à environnement pour l'appel par nom
� Évaluateur simple
� Machine de Krivine
31
� Sémantique dénotationnelle
� L'approche dénotationnelle de la sémantique
� Sémantique d'un langage fonctionnel simple
� Modéliser la non terminaison : les ordres partiels complets
(CPO)
32
Bibliographie
� Transparents et tableau
(consulter www.pps.jussieu.fr/~kesner régulièrement)
33
� Pour les calculs algébriques :
Term Rewriting and All That. 1998.
Franz Baader, Tobias Nipkow. Cambridge University Press
34
� Pour les calculs fonctionnels :
Lambda-calcul, types et modèles. 1997.
Jean-Louis Krivine. Masson
35
The lambda calculus : its Syntax and Semantics. 1984. Henk
Barendregt. North-Holland
36
Notions mathématiques pour la sémantique
Notions mathématiques de base
Ensembles
Dé�nition : Soient deux ensembles A, B inclus dans U
Univers
.
L'intersection de A et B est A ∩ B = {e ∈ U | e ∈ A et e ∈ B}L'union de A et B est A ∪ B = {e ∈ U | e ∈ A ou e ∈ B}La di�érence de A et B est A \ B = {e ∈ U | e ∈ A et e /∈ B}Le complémentaire de A est A = U \ A = {e ∈ U | e /∈ A}P(A) est l'ensemble de toutes les parties de l'ensemble A.
(Lois de de Morgan) A ∪ B = A ∩ B A ∩ B = A ∪ B
Dé�nition : Le produit cartésien de n ensembles A1 . . . An est
l'ensemble de n-uplets A1 × . . . × An = {(a1, . . . , an) | ai ∈ Ai}.Si Ai = A pour tout i, on note An le produit A1 × . . . × An.
39
Relations
Dé�nition : Une relation n-aire sur A1 . . .An est un
sous-ensemble de A1 × . . . × An.
Dé�nition : Soit R ⊆ A × A une relation binaire.
� R est ré�exive ssi pour tout x ∈ A, (x, x) ∈ R.
R est irré�exive ssi pour tout x ∈ A, (x, x) /∈ R.
� R est symétrique si pour tout x, y ∈ A, (x, y) ∈ R implique
(y, x) ∈ R.
R est anti-symétrique si pour tout x, y ∈ A, (x, y) ∈ R et
(y, x) ∈ R implique x = y.
� R est transitive si pour tout x, y, z ∈ A, (x, y) ∈ R et
(y, z) ∈ R implique (x, z) ∈ R.
40
Notations
� (x, y) ∈ R peut s'écrire aussi x R y.
� On peut utiliser un symbole à la place de R :
Ainsi par exemple, si ≤ est une relation, alors
(x, y) ∈ ≤ s'écrit x ≤ y.
� On écrit y ≥ x lorsque x ≤ y.
41
Exemples
Example : La relation ≥ sur les entiers naturels est ré�exive, la
relation > sur les entiers naturels est irré�exive.
Example : La relation = sur les ensembles est symétrique, la
relation ≥ sur les entiers naturels est anti-symétrique.
Example : La relation ⊇ sur les ensembles est transitive.
42
Équivalence et Congruence
Dé�nition :
� R est une équivalence si elle est ré�exive, symétrique et
transitive.
Exercise : Montrer que ∼= {(x, y) | 3 est diviseur de x − y}est une équivalence.
� R est une congruence p.r. à f si R est une équivalence
compatible avec f , c'est à dire, si a1 R b1 . . . an R bn implique
f(a1, . . . , an) R f(b1 . . . bn).
Exercise : Montrer que ∼= {(x, y) | 3 est diviseur de x − y}est une congruence par rapport à + et à ∗.
43
Classes d'équivalence
La classe d'équivalence de a ∈ A par rapport à une équivalence R
est l'ensemble [a]R = {b ∈ A | aRb}.
44
Composition de relations
Dé�nition : Si R ⊆ A × B et S ⊆ B × C, alors la composition de
S avec R est une relation dans A × C t.q.
S ◦ R = {(x, y) ∈ A × C | ∃z ∈ B (x, z) ∈ R et (z, y) ∈ S}.
Dé�nition : Soit R ⊆ A × A. On note Rn la n-composition de
R avec elle même par induction comme suit :
R0 = {(a, a) | a ∈ A}Rn+1 = Rn ◦ R = R ◦ Rn = R ◦ . . . ◦ R︸ ︷︷ ︸
n+1 fois
45
Example : Soit A = {Paris, Lyon, Toulouse} et
R = {(Paris, Lyon), (Paris, Toulouse),
(Lyon, Paris), (Toulouse, Paris)},R2 = {(Paris, Paris), (Lyon, Lyon), (Toulouse, Toulouse),
(Lyon, Toulouse), (Toulouse, Lyon)},Calculer R3.
46
Les clôtures
Dé�nition : La clôture transitive d'une relation R est donnée par
R+ =
∞∪
n=1
Rn
La clôture ré�exive et transitive d'une relation R est donnée par
R∗ =
∞∪
n=0
Rn = R+ ∪ R0
Example : Dans l'exemple d'avant, R∗ = A × A.
47
Fonctions
Dé�nition : Une fonction f entre deux ensembles A et B, notéef : A → B, est une relation sur A × B t.q. pour tout x, y, z si
(x, y) ∈ f et (x, z) ∈ f , alors y = z.
Notation : On écrit f(x) pour dénoter l'unique élément y t.q.
(x, y) ∈ f et f(C) = {y ∈ B | ∃x ∈ C, f(x) = y}.On note idA la fonction identité sur A donnée par idA(x) = x.
Dé�nition : Soit f : A → B une fonction.
� Le domaine de f est Dom(f) = {x ∈ A | ∃y ∈ B, (x, y) ∈ f}� L'image de f est Im(f) = {y ∈ B | ∃x ∈ A, (x, y) ∈ f}� L'inverse
pas toujours une fonction
de f est f−1 = {(y, x) ∈ B × A | (x, y) ∈ f}
48
Composition de fonctions
Dé�nition :
� La composition de f : B → C avec g : A → B est la fonction
f ◦ g : A → C, où f ◦ g(x) = f(g(x)).
Example : f(x) = x2, g(x) = x + 4, f ◦ g(x) = (x + 4)2,
g ◦ f(x) = x2 + 4.
� La n-composition de f avec elle-même , notée fn, est dé�ni par
récurrence sur n :
� Si n = 0, alors f0 = id
� Si n > 0, alors fn = f ◦ fn−1
Example : f(x) = x + 2, f0(x) = x, f1(x) = x + 2,
f2(x) = x + 4, f3(x) = x + 6, . . ., fn(x) = x + 2.n.
49
Exercise : Soit n > 0. Montrer
Par induction, voir
la Section suivante
que fn = fn−1 ◦ f .
50
Propriétés des fonctions
Dé�nition : Une fonction f : A → B est injective ssi pour tout
x, y ∈ A, f(x) = f(y) implique x = y.
Example : f(x) = x + 2 sur les entiers est injective.
f(x) = x \ {3} sur les ensembles d'entiers n'est pas injective. Ainsi
f({2, 3, 4}) = f({2, 4}) mais {2, 3, 4} ̸= {2, 4}.
Dé�nition : Une fonction f : A → B est surjective ssi pour tout
y ∈ B il existe x ∈ A tel que f(x) = y.
Example : f(x) = x div 2 sur les entiers naturels est surjective.
f(x) = x + 2 sur les entiers naturels n'est pas surjective.
51
Dé�nition : Une fonction est bijective ssi elle est injective et
surjective.
Example : Soit A l'ensemble de mots de longueur 3 contenant
uniquement 0 et 1. Soit B = {0 . . . 7}. Soitf(”b2b1b0”) = b2.2
2 + b1.21 + b0.20. Cette fonction est injective et
surjective, donc bijective.
52
Fonction caractéristique
Dé�nition : Soit A un ensemble inclus dans un univers U . La
fonction caractéristique de A dans U est la fonction
χ : U → {0, 1} telle que
∀a ∈ U .χ(a) = 1 ssi a ∈ A
53
Préordres, ordres
Dé�nition :� Un préordre est une relation ré�exive et transitive.
Example :
R = {(2, 2), (3, 3), (4, 4), (3, 2), (2, 3), (2, 4), (3, 4)}.� Un ordre ou ordre partiel est une relation ré�exive,
anti-symétrique et transitive.
Notation : ≥
Example : R n'est pas un ordre car (3, 2), (2, 3) mais 2 ̸= 3.
S = {(2, 2), (3, 3), (4, 4), (2, 3), (2, 4), (3, 4)} est un ordre.
Dé�nition : Un ordre strict est une relation irré�exive et
transitive.
54
Notation : >
Example : > sur les entiers, ⊃ sur les ensembles.
Dé�nition : Un ordre strict est bien fondé ssi il n'existe aucune
chaîne in�nie (i.e., de la forme a0 > a1 > a2 > . . .).
Example : > sur les entiers naturels est bien fondé. > sur tous
les entiers n'est pas bien fondé. ⊃ sur les ensembles est bien fondé.
55
Majorants/minorants et bornes supérieures/inférieures
Soit E un ensemble muni d'un ordre ≤. Soit A ⊆ E .Dé�nition :
Un majorant de A est un x ∈ E t.q. pour tout y ∈ A, y ≤ x.
Un minorant de A est un x ∈ E t.q. pour tout y ∈ A, x ≤ y.
La borne supérieure de A, notée sup(A), est le plus petit des
majorants de A (si z est un majorant de A alors sup(A) ≤ z).
La borne inférieure de A, notée inf(A), est le plus grand des
minorants de A (si z est un minorant de A alors z ≤ inf(A)).
Example : Soit A = {1, . . . , 10}. Tous les entiers dans {10, . . .}sont des majorants de A et 10 est la borne supérieure.
56
Example : Si a ≤ c, a ≤ d, b ≤ c, b ≤ d, alors a et b sont des
minorants, mais comme ils sont incomparables il n'y a pas de
borne inférieure.
Example : Si Ei sont des ensembles dans P(E), alors le sup est∪i Ei et le inf
∩i Ei.
57
Fonctions monotones et points �xes
Dé�nition : Soit f : A → B une fonction et soient ≤A, ≤B deux
ordres sur A et B respectivement.
La fonction f est monotone ssi x ≤A y implique f(x) ≤B f(y).
Example : f(x) = x + 3.
Dé�nition : Soit f : A → A une fonction.
Un point �xe de f est un élément x ∈ A t.q. f(x) = x.
Example : Soit f(x) = x2. Alors x = 1 est un point �xe.
Le plus petit point �xe de f est inf({x ∈ A | f(x) = x}).
Le plus grand point �xe de f est sup({x ∈ A | f(x) = x}).
58
Dé�nitions Inductives
Dé�nitions inductives en informatique
� Syntaxe concrete
� Syntaxe abstraite
� Règles de typage
� Règles d'évaluation
60
Le principe
Une dé�nition inductive est caracterisée par :
� Une ou plusieures assertions
� Un ensemble de règles d'inférence pour dériver ces assertions
Example :
� Assertion : "X est naturel" ou "X nat"
� Règles d'inférence :
R1 : 0 est naturel
R2 : Si n est naturel, alors succ(n) est naturel.
61
Notation
Les règles d'inférence sont notées
Hypothèse1 . . . Hypothèsen(Nom de la règle)
Conclusion
� Conclusion est une assertion
� Hypothèse1 . . . Hypothèsen sont des assertions
� En général n ≥ 0. Si n = 0 la règle est un axiome
62
Exemple (règle unaire)
Les entiers naturels
(Nat0)0 est naturel
n est naturel(Nat+)
succ(n) est naturel
63
Exemple (règle binaire)
Les arbres binaires
(Abin-nil)vide est un arbre binaire
A1 est un arbre binaire A2 est un arbre binaire(Abin-ind)
node(A1, A2) est un arbre binaire
64
Exemple
Les mots sur un alphabet A
ϵ mot
a ∈ A n mot
a.n mot
65
Exemple (plusieurs axiomes, règles unaires et binaires)
Les expressions de la logique propositionnelle sur l'alphabet A
p ∈ A
p expr
A1 expr A2 expr
A1 ∨ A2 expr
A1 expr A2 expr
A1 ∧ A2 expr
A1 expr A2 expr
A1 ⊃ A2 expr
A expr
¬A expr
66
Exemple (plusieures assertions)
Les forêts de type T
avide ∈ arbre T fvide ∈ foret T
t ∈ T f ∈ foret T
node(t, f) ∈ arbre T
A ∈ arbre T f ∈ foret T
add(A, f) ∈ foret T
67
Dérivation d'une assertion
Une assertion A est dérivable ssi
� A est un axiome
A
� ou il y a une règle de la forme
A1 An
A
telle que A1, . . . , An sont dérivables
68
Exercise :
1. Montrer que succ(succ(succ(0))) nat est dérivable.
2. Donner le terme qui dénote la forêt suivante et montrer
comment la construire avec les règles précédentes :
avide 3 6
/ \ / | \
44 6 6 7 8
| | / | \
avide avide avide 5 avide
/ \
avide avide
69
Ensemble inductif
Un ensemble inductif est le plus petit ensemble engendré par un
système de règles d'inférence.
70
Preuves par Induction
Preuves par induction
� Induction sur les entiers
� Induction mathématique
� Induction complète
� Équivalence
� Induction bien fondée
� Induction structurelle
� Induction sur un ensemble inductif
72
Induction sur les entiers I (induction mathématique)
Theorem : Soit P une propriété sur les entiers. Supposons
(CB) P (0),
(CI) ∀n ∈ IN.P (n) ⊃ P (n + 1),
alors ∀n ∈ IN.P (n)
73
Exemples
1)
n∑
i=1
i =n ∗ (n + 1)
22) n2 =
n∑
i=1
(2i − 1)
Mais comment prouver
1. �Tout entier est décomposable en produit de nombres
premiers�
2. �Si n est divisible par 3, alors fib(n) est pair, sinon fib(n) est
impair�.
74
Induction sur les entiers II (induction complète)
Theorem : Soit P une propriété sur les entiers. Supposons
(CB) P (0),
(CI) ((∀k ∈ IN.(k < n ⊃ P (k))) ⊃ P (n)),
alors ∀n ∈ IN.P (n)
75
Équivalence des deux principes
Malgré l'apparente supériorité du deuxième principe, on prouve
Theorem : Induction mathématique et complète sont
équivalentes.
76
Théorème fondamental du cours
Theorem : Tous le monde est d'accord avec le professeur.
Proof. On montre, par induction sur le nombre de personnes dans
l'amphi, que tout groupe de n personnes contenant le professeur
est d'accord avec lui.
Cas de base : il y a seulement le professeur, trivial.
Cas inductif : on suppose l'enoncé vrai pour tout groupe de n
personnes, et on le prouve pour tout groupe de n + 1.
Numérotons de 1 à n + 1 les personnes en question, de façon que
le professeur soit le numéro n, et considérons le groupe A des
premières n et le groupe B des dernières n personnes.
Les deux groupes contiennent le professeur et sont de taille
77
n < n + 1, donc on peut appliquer l'hypothèse d'induction et en
déduire qu'ils sont tous d'accord avec le professeur (qui est dans
les deux), ce qui nous permet de conclure.
Corollary : Le professeur a toujours raison.
vrai ou faux ?
78
Principe d'induction bien fondée
Un ensemble A, un ordre strict > et une propriété P sur APrincipe d'induction :
Si
(CB) Pour tout élément minimal y ∈ A.P (y).
(CI) ((∀z ∈ A.(z < x ⊃ P (z))) ⊃ P (x))
�le fait que P (z) soit véri�ée pour tout élément z<x implique
P (x)�
alors
∀x ∈ A.P (x)
79
Ce principe est-il toujours bien dé�ni ?
Soit > un ordre strict.
Theorem :
Si > est bien fondé, alors le principe d'induction est correct.
Theorem :
Si le principe d'induction est correct, alors > est bien fondé.
Corollary : Le principe d'induction est correct pour les ensembles
inductifs.
Corollary : Le principe d'induction structurelle est correct.
80
Exemples
� Les mots :
P (m) est la propriété :
concat(concat(m, v1), v2), = concat(m, concat(v1, v2))
� Les arbres binaires :
P (a) est la propriété : feuilles(a) = noeuds_internes(a) + 1
81
Induction sur Quelques sur d'ordres bien fondés
� Ordre lexicographique
� Ordre multi-ensemble
� Combinaisons
82
Ordres lexicographiques
Soit >Ai un ordre strict sur l'ensemble Ai.
Ordre lexicographique sur le produit de 2 ensembles :
(x, y) >lex (x′, y′) ssi (x >A1 x′) ou (x = x′ et y >A2 y′)
Example :
(4, ”abc”) >lex (3, ”abc”) >lex (2, ”abcde”) >lex (2, ”bcde”) >lex
(2, ”e”) >lex (1, ”e”) >lex (0, ϵ)
83
Ordre lexicographique sur le produit de n ensembles
Si chaque >Ai est un ordre strict sur l'ensemble Ai, alors >lex est
un ordre strict qui permet de comparer deux n-uplets de la manière
suivante :
(x1, . . . , xn)>lex(x′1, . . . , x
′n) ssi ∃1 ≤ j ≤ n
(xj >Aj x′j and ∀1 ≤ i < j xi = x′
i)
Theorem : Si chaque >Ai est un ordre strict bien fondé sur Ai,
alors l'ordre lexicographique >lex sur le produit de A1 × . . . × An
est un ordre strict bien fondé sur A1 × . . . × An.
Avertissement : >lex n'est pas l'ordre du dictionaire ! !
84
Exemple : la fonction d'Ackerman
Montrer par induction que la fonction suivante termine.
Ackerman(0,n) = n+1
Ackerman(m+1,0) = Ackerman(m,1)
Ackerman(m+1,n+1) = Ackerman(m,Ackerman(m+1,n))
85
Les multi-ensembles
Dé�nition : Soit A un ensemble. Un multi-ensemble de base Aest une fonction M : A → IN. Le multi-ensemble M est �ni si
M(x) > 0 seulement pour un nombre �ni d'éléments de A.
Notation : {{a, a, b}}.
86
Ordres multi-ensembles
Dé�nition : M >mul N ssi N s'obtient à partir de M en
appliquant la règle suivante un nombre �ni de fois : enlever un
élément x de M et le remplacer par un nombre �ni d'éléments
plus petits que x (par rapport à l'ordre >).
Notation :
{{5, 3, 1, 1}}
Example :
{{5, 3, 1, 1}} >mul {{4, 3, 3, 1}}
Theorem : Si >A est un ordre strict bien fondé sur A, alors >mul
est un ordre strict bien fondé sur les multi-ensembles de base A.
87
Exemple
Un homme possède une somme d'argent en euros. Chaque jour il
procède de la façon suivante :
� soit il jette une pièce de monnaie dans une fontaine,
� ou bien il change l'un de ses billets à la banque par un nombre
arbitraire de pièces de monnaie de valeur quelconque.
Montrer que ce processus termine, c'est à dire, que dans un temps
�ni l'homme est ruiné.
88