C A RIB OO An Induction Based Proof Tool for Termination with Strategies O. Fissore, I. Gnaedig, H. Kirchner PROTHEO Project Nancy-Saarbruecken Workshop on Logic, Proofs and Programs June 17–18, 2004 1
Overview 1. Introduction: Motivations and goals 2. Theory: An induction-based method for proving termination 3. C A RIB OO : An induction-based tool for proving termination 4. Conclusion: Going further 2
Proof and validation tools for rule-based languages Goal: to provide programmers with adapted and accessible tools for confluence, sufficient completeness, termination, . . . For this: finer proof techniques and algorithms than those existing: • specific to the working domain (ground term algebras) • specific to the evaluation strategies: innermost, outermost, lazy evaluation, local strategies, . . . And: to make them easily accessible to non specialists: • “expertise-encapsulated” tools avoiding the user to know the underlined theory • avoiding user interaction (as often as possible) 3
Termination for rule based languages The universal termination problem: a lot of techniques • Syntactic and semantic methods (applying directly to the TRS) Path orderings, polynomial interpretations... • Transformational approaches (transforming one TRS into another) Semantic labelling, dependency pairs... Rule based languages: one needs more specific tools • termination specific to the ground term algebra • termination with strategies when the standard rewriting relation diverges 4
Overview 1. Introduction: Motivations and goals 2. Theory: An induction-based method for proving termination 3. C A RIB OO : An induction-based tool for proving termination 4. Conclusion: Going further 5
An original approach: explicit induction on the termination property ● t ● ● t terminates ⇐ ⇒ there is no infinite rewrite chain starting from t • t ∈ T ( F ) • > : noetherian ordering on T ( F ) • ( ∀ t ′ < t, t ′ terminates = ⇒ t terminates ) • > is incrementally constructed along the inductive proof 6
� � � � � � Simulating the derivation trees f (0 , 1 , x ) → f ( x, x, x ) g ( x, y ) → x g ( x, y ) → y f ( t, u, v ) g ( t, u ) f ( t ↓ , u ↓ , v ↓ ) g ( t ↓ , u ↓ ) � � ����������� � � � t ↓ =0 u ↓ =1 � � � � � � � t ↓ u ↓ f ( v ↓ , v ↓ , v ↓ ) 7
� Explicit induction on the termination property: a double mechanism (1/2) abstraction (simulating normalization) applying the induction hypothesis on the direct subterms g ( t 1 , . . . , t m ) g ( X 1 , . . . , X m ) if t ref ≻ t 1 , . . . , t m ordering constraints ( t ref > t i ) stored in C abstraction constraints ( t i ↓ = X i ) stored in A 8
� Explicit induction on the termination property: a double mechanism (2/2) narrowing (simulating reduction) top narrowing in all possible ways in one step ( { g ( X 1 , . . . , X m ) } , A, C ) � � ����������������� � � � � � � � � � � � � � � � � . . . ( { t ′ ( { t ′ 1 } , σ 1 A, C ) l } , σ l A, C ) if g ( X 1 , . . . , X m ) � ǫ σ i t ′ i and σ i compatible with A 9
� � � � � � � � � � � � Simulation of the derivation trees by induction detection of a normal form t StopN . . . • u = f ( u 1 , . . . , u n ) v = g ( v 1 , . . . , v m ) � � Abstract t ≻ u 1 ,...,u n t ≻ v � branch cut � f ( u 1 ↓ , . . . , u n ↓ ) × by induction � � � � � � � � � � � � Stop � � ������������������� � � � � � � � � Narrow � � � � � � � � � � . . . . . . • 10
Overview 1. Introduction: Motivations and goals 2. Theory: An induction-based method for proving termination 3. C A RIB OO : An induction-based tool for proving termination 4. Conclusion: Going further 11
C A RIB OO : From theory to practice • C A RIB OO implements our techniques for the: – innermost strategy – outermost strategy – local strategies • C A RIB OO is written in ELAN for ELAN • C A RIB OO is a clickable tool, accessible to non specialists • C A RIB OO is a proof assistant , accessible to specialists • C A RIB OO connects to other proof tools 12
� � � � � � � � � � C A RIB OO : A user-friendly tool specification file signature variables TRS user’s answers ELAN proof procedure inference rules � delegated queries + features strategies proof tree (internal file) Java GUI � � ������������������ � � ����������������� � � � � � � � � � � � � � � � � proof options proof tree edition tool rewriting strategy (display) for the specification file interaction level 13
C A RIB OO : ELAN proof procedure Integrated features Inference rules Delegated features Abstract embedding ordering ordering constraints solving StopA usable rules termination property of a term StopN narrowing Narrow satisfiability of A unsatisfiability of A Stop Strategies ELAN strategy operators 14
Related work • The innermost case: [Gnaedig, Kirchner & Fissore 2001] Related work: the dependency pair method [Arts & Giesl 1996, 2000]: – no other strategies • Local strategies on operators: [Fissore, Gnaedig & Kirchner 2001] Related work: context-sensitive rewriting [Lucas 1996, 2001, 2002, Zantema 1997, Giesl & Middeldorp 1999] • Lazy evaluation: Related work: – also studied for functional languages [Panitz & Schmidt-Schauss 1997] – on-demand strategy annotations [Alpuente, Escobar, Gramlich & Lucas 2002] – lazy rewriting inspired by graph rewriting with labels [Lucas 2002] 15
Overview 1. Introduction: Motivations and goals 2. Theory: An induction-based method for proving termination 3. CARIBOO: An induction-based tool for proving termination 4. Conclusion: Going further 16
Termination of rewriting with strategies – future work – • Extensions of the inductive proof method: – To other rewriting strategies (lazy, needed reductions, . . . ) – To equational theories (AC) – To conditional rewriting – To the caracterisation of terminating subsets – To a proof of non-termination • Evolutions of C A RIB OO : – Connection with other proof tools – Automatic criterion for (un)satisfiability of constraints – Deduction of good strategies 17
Recommend
More recommend