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