c1 pdf - Ensiie

Transcription

c1 pdf - Ensiie
Terminaison (1)
Xavier Urbain
MPRI – Démonstration automatique
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 1
Terminaison : généralités
Propriété fondamentale :
• Inductions,
• Totalité des fonctions,
• Préliminaire,
• Autostabilisation, vivacité, etc.
Ici : récriture du premier ordre.
Suffisant ? Oui : Turing complet (cfr poly).
Mieux (pire ?) : indécidable pour 1 seule règle (linéaire gauche).
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 2
(qj , ai , a0i , qj0 , I)
qj
L | l1 | · · · | lp | a0i | r1 | · · · | rk | R
L | l1 | · · · | lp | ai | r1 | · · · | rk | R
tlL
tlR
A
A
a1 · · · an
Q
q1 · · · qm
T
:: qj0 r1 tlR
:: qj ai ::
lp tlL
a1 · · · an
Q
q1 · · · qm
T
qj0
a0j ::
r1 tlR
lp tlL
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 3
A
Ω
Q
q1 · · · qm
T
T
:: xq xa ::
lh lt
A
a1 · · · an
Q
A
···
Q
T
A
rh rt
Q a1 · · · xa σ · · · an
T q1 · · · xq σ · · · qm
:: ql rh rt
(qk , ai , aj , ql , I)
xa σ à la place de ai
xq σ à la place de qk
aj ::
lh lt
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 4
A
Ω
A
a1 · · · an
Q
Q
q1 · · · qm
T
Q
T
:: xq xa ::
lh lt
A
···
T
rh rt
D0
Ω
D1 Dj Dk
Ω
D1
Ω
···
Ω
Dk
Dj1 Dji Djk
D1
Ω
Dj1 Dji
Dk
Ω
Djk1 Djki0 Djkk
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 5
Terminaison : généralités
Automatisation ?
correctes, incomplètes...
Toujours difficile.
• f (f (x)) → f (x).
• f (a, b, x) → f (x, x, x).
• > 50 règles + théories équationnelles.
• > 1800 règles (> 1000 symboles).



 a(a(x)) → b(c(x))
•
b(b(x)) → a(c(x))



c(c(x)) → a(b(x))
• Syracuse...
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 6
Terminaison : preuve
Terminaison d’un TRS = bonne fondation de relations (WF)
« mesure ».
Comment ? R ⊆ O ∧ WF(O) ⇒ WF(R)
Transformation de problèmes jusqu’à : pb. trivial, pb. d’inclusion.
RULE NAME ( PARAM )
p1 . . . pn
p
Transf. correcte et complète : critère
CONDITIONS
contraintes de terminaison.
Inclusion : passage aux contraintes d’ordre.
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 7
Terminaison : preuve
Inclusion →R ⊆> : s > t pour tout s →R t.
>
>
>
R
R
R
Infinité de s → t
automatisation ?
Test fini ?
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 8
Terminaison : Manna-Ness
Idée : ordre sur règles stable par clôtures donnant la relation.
Théorème. (Lankford)
Contraintes très fortes :
• Complexité (
relation),
• Ordres.
En pratique : ordres de simplification (plus facile pour WF)
f (f (x)) → f (g(f (x))) ? coincé !
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 9
Terminaison : DP
p
p
6= p ?
R
X. Urbain — MPRI
R
q
6= q ?
R
q
R
···
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 10
Terminaison : DP
DPR
6= Λ
?
X. Urbain — MPRI
6= Λ ?
···
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 11
Terminaison : DP
Définition.
Pour un TRS R,
F = D ] C D : {f ∈ F | ∃(l → r) ∈ R, l(Λ) = f }
D : définis (fonctions), C : constructeurs (données).
Définition.
Pour une règle l → r,
paire de dépendance : couple hu, vi
• u = l,
• v = r|p t.q. r(p) ∈ D.
Pour un TRS R : DP(R).
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 12
Terminaison : DP
Ex.
D=?
C


#0




 #+x

 x0 + y0




x0 + y1
=?
→
#
→
→
x
x+#
(x + y)0
x1 + y0
→
(x + y)1
x1 + y1
X. Urbain — MPRI
→ x
→ (x + y)1
→ ((x + y) + #1)0













U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 13
Terminaison : DP
Ex.
{f (f (x)) → f (g(f (x)))} D = {f } C = {g}
hf (f (x)), f (g(f (x)))i hf (f (x)), f (x)i
Définition.
Chaîne de dépendance : séquence de DP, subst. σ t.q.
···
DPR
6= Λ ?
X. Urbain — MPRI
hui ,
vi i
6=Λ?
hui+1 ,
vi σ −−−→ ui+1 σ
6= Λ ?
vi+1 i
vi+1 σ
···
···
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 14
Terminaison : DP
Ex.
{f (f (x)) → f (g(f (x)))} D = {f } C = {g}
hf (f (x)), f (g(f (x)))i hf (f (x)), f (x)i
Définition.
Chaîne de dépendance : séquence de DP, subst. σ t.q.
···
hui ,
vi i
6=Λ?
hui+1 ,
vi σ −−−→ ui+1 σ
vi+1 i
···
Théorème. (A & G)
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 15
Terminaison : DP
Rq. — R = {f (f (x)) → h(f (x)), g(x) → f (x)}
DP(R) = {hf (f (x)), f (x)i, hg(x), f (x)i}
SN(→R ) ?
X. Urbain — MPRI
6=Λ?
SN(−−−→ · −−−−→) ?
R
DP(R)
D = {f, g}
(
C = {h}
SN(DP(R),R ) ?)
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 16
Terminaison : DP, contrôle
>
>
DP(R)
6= Λ
···
6= Λ ?
?
R
R
Théorème. (A & G)
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 17
Terminaison : DP et marques
Appel récursif : décroissance des arguments.
distinction entre symbole de fonction et appel récursif : marques.
Ex.


#0




 #+x

x0 + y0




 x0 + y1
→
#
→
→
x
x+#
(x + y)0
x1 + y0
→
(x + y)1
x1 + y1
b y1, x +
b yi
hx1 +
b y1, x +
b yi
hx0 +
b y0, (x + y)b
hx0 +
0i
b y1, ((x + y) + #1)b
hx1 +
0i
X. Urbain — MPRI
→ x
→ (x + y)1
→ ((x + y) + #1)0
b y0, x +
b yi
hx1 +













b y0, x +
b yi
hx0 +
b y1, (x + y) +
b #1i
hx1 +
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 18
Terminaison : DP et marques
[[#]] = 0
[[1]](x) = x + 1
Ex.


#0
→




 #+x
→
 x0 + y0 →




 x0 + y1 →
[[0]](x) = x + 1
[[+]](x, y) = x
[[b
0]](x) = 0
6=
b
non mono [[+]](x,
y) = x
non mono
non mono
#
x
x+#
(x + y)0
x1 + y0
(x + y)1
x1 + y1
b y1, x +
b yi
hx1 +
b y1, x +
b yi
hx0 +
b y0, (x + y)b
hx0 +
0i
b y1, ((x + y) + #1)b
hx1 +
0i
X. Urbain — MPRI
→ x
→ (x + y)1
→ ((x + y) + #1)0
b y0, x +
b yi
hx1 +













b y0, x +
b yi
hx0 +
b y1, (x + y) +
b #1i
hx1 +
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 19
Terminaison : DP et marques
Ex.
{f (f (x)) → f (g(f (x)))}
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 20
Terminaison : graphes
Déjà vu : pas n’importe quoi après hui , vi i
6=Λ?
Grossier : vi σ −−−→ uj σ ⇒ vi (Λ) ≡ uj (Λ)
R
Si R fini alors DP(R) fini
Ex.


x−0




 s(x) − s(y)

0 ÷ s(y)





s(x) ÷ s(y)
graphe fini de la relation entre paires.
→ x
→ x−y
?
→ 0
→ s((x − y) ÷ s(y))
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 21
Terminaison : graphes
Maintenant : systèmes FINIS.
Chaîne 7→ chemin
chaîne ∞ 7→ chemin ∞, ici partie fortement connexe.
Contrôle indépendant des chaînes dans les PFC (circuits).
Ex.
R = {f (f (x)) → h(f (x)), g(x) → f (x)}
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 22
Terminaison : graphes
• Une relation par PFC
un ordre (preuve) par PFC.
• PFC 6= composante.
• PFC 6= circuits élémentaires.
{f (0) → g(1) f (1) → g(0) g(x) → f (x)}
• Automatisation : graphe NON calculable
approximations.
– Déjà vu : symb. de tête.
– Plus fin : discriminer par chapeau constructeur (R EN /C AP).
C AP : variable fraîche par défini, R EN : renommage,
s connectable à t si R EN(C AP(s)) et t unifiables.
Théorème.
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 23
Terminaison : graphes
Théorème. (A,G & O)
Toutes PFC : très lourd
par composantes ?
Corollaire.
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 24

Documents pareils