c3 pdf - Ensiie

Transcription

c3 pdf - Ensiie
Terminaison : modulaire
Terminaison : incrémentale
M1
M0
M2
M1
M0
M2
M5
M4
M3
M5
M4
M3
M7
M7
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 1
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 2
Terminaison : modularité
Terminaison : modularité
Terminaison : pas modulaire. (Toyama)
Terminaison : pas modulaire. (Toyama)
R
:
Π :
Autorise :
{f (0, 1, x) → f (x, x, x)
R

 π(x, y) → x
 π(x, y) → y
Π :
Autorise :
→...
f (π(0, 1), π(0, 1), π(0, 1)) −
→⋆ f (0, 1, π(0, 1)) −
Π
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 3
{f (0, 1, x) → f (x, x, x)

 π(x, y) → x
 π(x, y) → y
→...
f (π(0, 1), π(0, 1), π(0, 1)) −
→⋆ f (0, 1, π(0, 1)) −
R
Ordres de simplification. . . Contraintes lourdes sur les unions. . .
X. Urbain — MPRI
:
Π
R
Définition.
R termine CE si et seulement si R ∪ Π termine.
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 4
Terminaison : modularité
CE
Terminaison : modularité
: bonnes propriétés
Terminaison
CE
CE
modulaire pour :
SN et non duplicant :
• Unions disjointes
• Unions à constructeurs partagés pour branchements finis
dans la suite : branchements finis



 fj (cj , x)



fj (x, y)
fj (x, y)



 a



π(x, y)
π(x, y)
CE
SN
SN et projectif non déterministe :
SN simplifiant :
→ fj+1 (x, x) j ∈ N
→ x
→ y
X. Urbain — MPRI
: bonnes propriétés
CE
CE
SN
SN
→ cj → x j ∈ N
→ y U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 5
Terminaison : modularité
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 6
Exemple.
Signature
Règles de base
Définition.
Un module [F2 | R2 ] étend R1 (F1 ) :
F0
{#, 0, 1}
F1
{+}



 #+x
x0 + y0



x0 + y1
R0
R1
• F2 ∩ F1 = ∅,
• R2 (F1 ∪ F2 ) t.q. pour chaque l → r ∈ R2 , Λ(l) ∈ F2 ,
R = R1 ∪ R2 : extension hiérarchique de R1 .
Nouveaux symboles
Règles adéquates
F2
R2
F0
R0
{#0 → #
{×}

 #×x
 x0 × y
→
x
x+#
(x + y)0
x1 + y0
→
(x + y)1
x1 + y1
→
→
→
#
(x × y)0
x×#
x1 × y
→
x
→
((x + y) + #1)0
→
(x + y)1
→ #
→ (x × y)0 + y
F1
R1
F2
R2
But : prouver la terminaison de l’ensemble incrémentalement.
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 7
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 8
Hiérarchique avec
sous-système commun
(Ohlebusch)
Systèmes composables
(Gramlich, Kurihara & Ohuchi,. . . )
Définition.
R1 (F1 ) ← [F2 | R2 ].
hl, r ′ i paire de dépendance du module [F2 | R2 ] :
R0
R0
• l → r ∈ R2 ,
M1
M2
Terminaison : modularité
M1
• r ′ sous-terme de r tel que Λ(r ′ ) ∈ F2 .
DP(M ) : paires de dépendance de toutes les règles de M .
M2
Remarque. — R(F)
[FC | ∅] ← [FD | R].
Pour [FC | ∅] ← [FD | R], identiques aux DP de Arts & Giesl.
X. Urbain — MPRI
Exemple.n
R#
#0
R+
R×
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 9

 #×x
 x0 × y
X. Urbain — MPRI
→ x
x+#
→ (x + y)1
x1 + y1
→ (x + y)0
→ #
→ (x × y)0
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 10
Terminaison : chaînes relatives
→ #



 #+x
x0 + y0



x0 + y1
X. Urbain — MPRI
x1 + y0
x×#
x1 × y
→ x
→ (x + y)1
Définition.
Chaîne de dépendance de M sur R :
→ ((x + y) + #1)0
→
→
DP(M )
s1
#
(x × y)0 + y


 hx0×y, x×yi 
DP(M× ) :
 hx1×y, x×yi 
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 11
t1
R
⋆
s2
DP(M )
t2
R
⋆
s3
DP(M )
...
Chaînes minimales : pour toute hs, ti avec sσ = f (u1 , . . . , un ), pour tout i,
ui fortement normalisable (pour R).
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 12
Modules + terminaison CE
Modules + terminaison CE
Théorème 1.
F1
Théorème 1.
R1 (F1 ) ← [F2 | R2 ].
• R1 termine
R1
CE ,
• Aucune chaîne infinie de [F2 | R2 ] sur R1 ∪ R2 ∪ Π,
Alors R1 ∪ R2 termine
CE .
avec F3 ∩ F2 = ∅.
F2
F3
R2
R3
1. R1 ∪ R2 termine
Pas de R2
CE ,
2. Aucune chaîne infinie de [F3 | R3 ] sur R1 ∪ R3 ∪ Π,
Alors R1 ∪ R2 ∪ R3 termine
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 13
X. Urbain — MPRI
≥
X. Urbain — MPRI
CE .
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 14
≥
Lemme.
F1 ∩ F2 = ∅, S1 (F1 ), S2 (F1 ), [F1 | ∅] ← [F2 | S3 ].
≥
≥
DP[F1 | S2 ]
s1
t1
S1 ∪ S2 ∪ S3
DP[F1 | S2 ]
⋆
s2
t2
S1 ∪ S2 ∪ S3
DP[F1 | S2 ]
⋆
...
s3
>
DP[F1 | S2 ]
DP[F1 | S2 ]
⋆
⋆
...
I(t1 )
I(s2 )
I(t2 )
I(s3 )
S1 ∪ S2 ∪ Π
S1 ∪ S2 ∪ Π
DP[F1 | S2 ]
I(s1 )
M6
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 15
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 16
I(x) : T (F1 ∪ F2 , X) → T∞ (F1 ∪ {π : 2} ∪ {⊥ : 0}, X)
I(x)
=
I(f (t1 . . . tn ))
=
où
S(t)
=
⋆
I (∅)
=
I⋆ ({a} ∪ Set )
=
x si x ∈ X,

 f (I(t ) . . . I(t )) si f ∈ F ,
1
n
1
 I⋆ (S(f (t1 . . . tn ))) si f ∈ F2 ,
′
S1 ∪ S2
I(f (a, b)) =
:



 a
b



g(c)
→
c
→
c
→
{I(t )/ t −−−−−−→ t },
⊥,
:
π
′
S1 ∪S2 ∪S3
S3
c

 f (x, y) → x
 f (x, x) → g(x)
π
π(a, I⋆ (Set)) où pour tout e ∈ Set, a < e.
π
⊥
Rq. — Pour t, ∀ti ⊳ t, ti (Λ) ∈ F2 ⇒ ti mortel pour S1 ∪ S2 ∪ S3
⇒ I(t) bien définie.
Bf du calcul par induction bf sur (−−−−−−→+ , ⊲)lex .
S1 ∪S2 ∪S3
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 17
X. Urbain — MPRI
t1 = f (a, h(. . .))
f
I(u1 )
a
I(t1 )
h ∈ F2
t1 −−→ t2
S3
I(u3 )
I(t1 ) −→ −→⋆ I(t2 )
Π1
Π2
π
I(u2 )
π
I(u3 )
X. Urbain — MPRI
t1 = f (a, h(. . .))
f
t1 −−→ t2
π
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 18
h ∈ F2
S3
a
X. Urbain — MPRI
π
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 19
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 20
Notation : I(σ) :
Lemme 3.
∀s, t ∈ T (F1 ∪ F2 , X), l → r ∈ S1 ∪ S2 ,
x ∈ X 7→ I(xσ).
p
s −−→ t ⇒ I(s) −−−−−−→+ I(t).
S1 ∪S2 ∪Π
l→r
Lemme 1.
∀t ∈ T (F1 , X), ∀σ substitution (avec t ∈ Dom(I)) I(tσ) = tI(σ).
Ind. sur t.
Lemme 4.
∀s, t ∈ T (F1 ∪ F2 , X), l → r ∈ S3 ,
Lemme 2.
∀t1 , . . . , tn ∈ T (F1 ∪ F2 , X), ∀C contexte sur F1 à n trous,
I(C[t1 , . . . , tn ]) = C[I(t1 ), . . . , I(tn )].
p
s −−→ t ⇒ I(s) −−−→+ I(t).
l→r
Π
Ind. sur C.
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 21
Lemme.
F1 ∩ F2 = ∅, S1 (F1 ), S2 (F1 ), [F1 | ∅] ← [F2 | S3 ].
DP[F1 | S2 ]
s1
t1
S1 ∪ S2 ∪ S3
DP[F1 | S2 ]
I(s1 )
I(t1 )
DP[F1 | S2 ]
⋆
s2
t2
S1 ∪ S2 ∪ S3
DP[F1 | S2 ]
DP[F1 | S2 ]
⋆
I(s2 )
S1 ∪ S2 ∪ Π
I(t2 )
6=Λ⋆
6=Λ⋆
S1 ∪S2 ∪S3
S1 ∪S2 ∪S3
hui , vi i −−−−−−→hui+1 , vi+1 i −−−−−−→ · · ·
Prendre σ ′ = I(σ)
DP sur F1 donc sans pb.
DP[F1 | S2 ]
⋆
...
s3
⋆
I(s3 )
S1 ∪ S2 ∪ Π
...
σ
(chaîne minimale donc σ ok.)
6=Λ⋆
Par lemmes 3 et 4 : vi σ ′ −−−−−−→ ui+1 σ ′
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 22
X. Urbain — MPRI
Théorème.
R1 (F1 ) ← [F2 | R2 ].
• R1 termine
CE ,
• Aucune chaîne infinie de [F2 | R2 ] sur R1 ∪ R2 ∪ Π,
Alors R1 ∪ R2 termine
CE .
Réduction infinie : chaîne infinie de [F1 ∪ F2 | R1 ∪ R2 ] sur R1 ∪ R2 .
1. Que des paires de [F2 | R2 ] ;
2. Que des paires de [F1 | R1 ] ;
3. Quelques paires de [F2 | R2 ] puis que des paires de [F1 | R1 ].
S1 ∪S2 ∪Π
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 23
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 24
Terminaison : modules et ordres
Théorème.
[F2 | R2 ]
R1 (F1 )
[F3 | R3 ]
• R1 ∪ R2 termine
Définition.
(≥, ≻) compatible CE (sur T (F, X)) : ∃(≥′ , ≻′ ) sur T (F ∪ {π}, X) tel que
F3 ∩ F2 = ∅.
CE ,
• Aucune chaîne infinie de [F3 | R3 ] sur R1 ∪ R3 ∪ Π,
Alors R1 ∪ R2 ∪ R3 termine
CE .
1. Que des paires de [F3 | R3 ] ;
2. Que des paires de [F1 | R1 ] ;
3. Quelques paires de [F2 | R2 ] puis que des paires de [F1 | R1 ].
• (≥′ , ≻′ )|T (F ,X) = (≥, ≻),
•
π(s, t) ≥′ s
π(s, t) ≥′ t
Théorème.
R ⊂≻ pour (≥, ≻) compatible CE , stable, mono. ⇒ R termine
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 25

 R ⊆≥,
(≥, ≻) compatible CE , stable, w. mono. tel que :
 DP(R) ⊆≻,
CE .
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 26
X. Urbain — MPRI
Terminaison : modules et ordres
Terminaison : modules et ordres
Compo lex : OK,
Compo lex : OK,
déf. par AFS : OK
Théorème.
[F2 | R2 ]
R1 (F1 )
[F3 | R3 ]
Théorème.
R1 (F1 ) ← [F2 | R2 ].
• R1 termine
CE ,
• ∃(≥, ≻) compatible CE, stable, w. mono. tel que :
– R1 ∪ R2 ⊆≥,
X. Urbain — MPRI
• R1 ∪ R2 termine
déf. par AFS : OK
F3 ∩ F2 = ∅.
CE ,
• ∃(≥, ≻) compatible CE, stable, w. mono. tel que :
– R1 ∪ R3 ⊆≥,
– DP([F2 | R2 ]) ⊆≻,
Alors R1 ∪ R2 termine
CE .
Théorème.
R termine
X. Urbain — MPRI
∀s, t ∈ T (F ∪ {π}, X).
– DP([F2 | R3 ]) ⊆≻,
CE .
Alors R1 ∪ R2 ∪ R3 termine
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 27
X. Urbain — MPRI
CE .
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 28
Terminaison sous stratégies
• Stratégies globales (innermost, outermost, etc.)
• Stratégies locales (context-sensitive, etc.)
Terminaison sous stratégies : innermost
Appel par valeur en prog. fonctionnelle
Réduction innermost
Λ
s−
→i t ssi ∀sj ⊳ s, sj normalisé
• etc.
R
• Paires : hu, vi inutile si rédexe contenu dans u
• Chaînes : restriction aux étapes innermost
Du bon : contraintes
analyse plus fine
Du moins bon : contraintes
analyse plus technique
{f (0, 1, x) → f (x, x, x),
π(x, y) → x,
π(x, y) → y} termine innermost
6=Λ
hfb(0, 1, x), fb(x, x, x)i −−→i ⋆ hfb(0, 1, y), fb(y, y, y)i impossible
R
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 29
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 30
Terminaison sous stratégies : innermost
Terminaison sous stratégies : innermost
Chaîne innermost : séquence hsi , ti i hsi+1 , ti+1 i avec
Mieux ? oui !
• σ normale (∀x ∈ X , xσ en forme normale)
σ contrainte
règles, paires inutiles
• hu, vi avec v sans symbole défini
6=Λ
• ti σ −−→i ⋆ si+1 σ
R
0 pas
• l → r avec rédexe strictement dans l
Relation s ։D,R t si
• Sous-termes stricts de s et t mortels
6=Λ
Λ
R
D
• σ normale t.q. s −−→i ⋆ s′ ≡ uσ −
→t
• ?
Théorème. (A. & G.)
→R termine innermost ssi ։DPi (R),R termine innermost
inutile
Plus fin : pour Gi = {hs1 , t1 i, . . . , hsn , tn i}
[
{l → r ∈ R|∃σ, τ, C t.q. si σ, sj σ norm., ti σ −
→i ⋆ C[lτ ] −
→i C[rτ ] −
→i ⋆ sj σ}
1≤i,j≤n
Rq. toujours pas décidable...
SNinn (→R ) ⇐⇒ SNinn (։DPi (R),R )
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 31
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 32
Terminaison sous stratégies : innermost
Terminaison sous stratégies : innermost
∀f ∈ F, NR(R, f ) = {l → r ∈ R|l(Λ) = f et pas de redexe ⊳ l}
Théorème.
Si ∀Gi ⊆ G fortement connexe ∃(≥, ≻) (wf, stable, w-mono là où utile)
Règles utilisables pour t dans R :



 UT(R, x) = ∅
Sn
UT(R, f (t1 , . . . , tn )) = NR(R, f ) ∪ j=1 UT(R \ NR(R, f ), tj )


S

∪ l→r∈NR(R,f ) UT(R \ NR(R, f ), r)
1. ∀hs, ti ∈ Gi , s ≥ t et ∀l → r ∈ UT(R, t), l ≥ r
2. ∃hs0 , t0 i ∈ Gi t.q. s ≻ t
alors SNinn (։G,R ).


x−0
→




 s(x) − s(y) →

→
 0 ÷ s(y)



 s(x) ÷ s(y) →
Chaînes :
⋆
hs, ti −−−−−→i ⋆ hs′ , t′ i −−−−−→
···
′ i
UT(R,t)
UT(R,t )
x
x−y
0
s((x − y) ÷ s(y))
cas particulier de preuve modulaire...
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 33
X. Urbain — MPRI
Terminaison sous stratégies : innermost
?
Approximation du graphe : hs, ti −
→i hs′ , t′ i
Sous-termes stricts déf. de t (évt) récrits mais
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 34
Terminaison sous stratégies : innermost
Théorème.
Si arc de G entre hs, ti et hs′ , t′ i alors connectables innermost.
• Pas si sous-termes de s (déjà n.f.)
• Occurrences d’une var non différenciées (dans s donc n.f.)
C AP (s, t)
Unification pas suffisante : sσ, s′ σ n.f. (σ mgu)
Approx. : hs, ti et hs′ , t′ i connectables innermost si
1. mgu(C AP (s, t), s′ ) = µ
2. sµ et s′ µ formes normales
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 35
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 36
Terminaison sous stratégies : innermost
Terminaison sous stratégies : innermost
Bénéfice cas général : classes de systèmes où SNinn (→R ) =⇒ SN(→R ).
Théorème. (Gramlich)
UIN(R) ∨ AICR(R) ⇒ (SN(→R ) ⇔ SNinn (→R )).
Réduction innermost unique :
p
p
→i t2 ⇒ t1 = t2
UIN(R) =déf ∀s, t1 , t2 , p : s −
→i t1 ∧ s −
R
R
p
Innermost non critique : s −−−−→ t t.q.
l→r,σ
• s|p rédexe innermost, ou bien
• Tout rédexe innermost > p dans σ
Pour automatisation, test plus fort :
pas de paire critique SN(→R ) ⇔ SNinn (→R )).
(overlay localement confluent. . . )
Rq. 1. innermost ⇒ non critique
Rq. 2. critique
paire critique



 q(0, s(y), s(z)) → 0
q(s(x), s(y), z) → q(x, y, z)



q(x, 0, s(z))
→ s(q(x, s(z), s(z)))
Innermost critiques évitables :
AICR(R) =déf ∀s, t : s → t ⇒ (s −−→ t ∨ ∃s′ , s −
→i s′ →⋆ t)
inc
Théorème. (Gramlich)
UIN(R) ∨ AICR(R) ⇒ (SN(→R ) ⇔ SNinn (→R )).
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 37
Terminaison sous stratégies : narrowing
Théorème.
Pour toute hs, ti ∈ D ⊆ DPi (R) avec
tµ = si µ (µ mgu) ⇒ tµ ou si µ pas forme normale,
SNinn (։D\{hs,ti}∪{hs′,t′ i|hs,ti
hs′ ,t′ i},R )
⇒ SNinn (։D,R ).
• Moins de UT(R, t),
• Réciproque fausse.
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 39
X. Urbain — MPRI
U N JEU DE SLIDES N ’ EST PAS UN POLY DE RÉFÉRENCE 38