Albert Rubio - UPC
Present and Future of Proving Termination of Rewriting
Albert Rubio Universitat Polit` ecnica de Catalunya Barcelona
RTA 2008– p.1/31
Present and Future of Proving Termination of Rewriting Albert Rubio - - PowerPoint PPT Presentation
Present and Future of Proving Termination of Rewriting Albert Rubio Universitat Polit` ecnica de Catalunya Barcelona Albert Rubio - UPC RTA 2008 p.1/31 Overview of the talk Albert Rubio - UPC RTA 2008 p.1/31 Overview of the talk
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.1/31
Albert Rubio - UPC
RTA 2008– p.2/31
Albert Rubio - UPC
prod(2, 4) = 8 prod(s(s(0)), s(s(s(s(0))))) = s(s(s(s(s(s(s(s(0))))))))
RTA 2008– p.2/31
Albert Rubio - UPC
prod(2, 4) = 8 int prod (int n, int m) { if (n==0) return(0); else return(prod(n-1,m)+m);
}
prod(s(s(0)), s(s(s(s(0))))) = s(s(s(s(s(s(s(s(0)))))))) prod(0,m)
→
prod(s(n′), m)
→
prod(n′, m) + m
RTA 2008– p.2/31
Albert Rubio - UPC
prod(2, 4) = 8 int prod (int n, int m) { if (n==0) return(0); else return(prod(n-1,m)+m);
}
int prod ( int n, int m) { int p= 0; while (n!=0) { p+=m; n- -;
}
return(p);
}
prod(s(s(0)), s(s(s(s(0))))) = s(s(s(s(s(s(s(s(0)))))))) prod(0,m)
→
prod(s(n′), m)
→
prod(n′, m) + m prod(n,m)
→
prod1(n,m, 0) prod1(0,m, p)
→
p prod1(s(n′), m, p)
→
prod1(n′, m, p + m)
RTA 2008– p.2/31
Albert Rubio - UPC
RTA 2008– p.3/31
Albert Rubio - UPC
RTA 2008– p.3/31
Albert Rubio - UPC
RTA 2008– p.3/31
Albert Rubio - UPC
RTA 2008– p.3/31
Albert Rubio - UPC
RTA 2008– p.3/31
Albert Rubio - UPC
RTA 2008– p.3/31
Albert Rubio - UPC
RTA 2008– p.3/31
Albert Rubio - UPC
RTA 2008– p.3/31
Albert Rubio - UPC
RTA 2008– p.4/31
Albert Rubio - UPC
RTA 2008– p.4/31
Albert Rubio - UPC
RTA 2008– p.4/31
Albert Rubio - UPC
RTA 2008– p.4/31
Albert Rubio - UPC
RTA 2008– p.4/31
Albert Rubio - UPC
RTA 2008– p.4/31
Albert Rubio - UPC
RTA 2008– p.4/31
Albert Rubio - UPC
RTA 2008– p.4/31
Albert Rubio - UPC
RTA 2008– p.4/31
Albert Rubio - UPC
RTA 2008– p.4/31
Albert Rubio - UPC
RTA 2008– p.5/31
Albert Rubio - UPC
RTA 2008– p.5/31
Albert Rubio - UPC
RTA 2008– p.5/31
Albert Rubio - UPC
RTA 2008– p.5/31
Albert Rubio - UPC
RTA 2008– p.6/31
Albert Rubio - UPC
RTA 2008– p.6/31
Albert Rubio - UPC
RTA 2008– p.6/31
Albert Rubio - UPC
RTA 2008– p.6/31
Albert Rubio - UPC
RTA 2008– p.6/31
Albert Rubio - UPC
RTA 2008– p.6/31
Albert Rubio - UPC
RTA 2008– p.6/31
Albert Rubio - UPC
RTA 2008– p.6/31
Albert Rubio - UPC
RTA 2008– p.7/31
Albert Rubio - UPC
RTA 2008– p.7/31
Albert Rubio - UPC
RTA 2008– p.7/31
Albert Rubio - UPC
RTA 2008– p.7/31
Albert Rubio - UPC
RTA 2008– p.7/31
Albert Rubio - UPC
RTA 2008– p.8/31
Albert Rubio - UPC
RTA 2008– p.8/31
Albert Rubio - UPC
RTA 2008– p.8/31
Albert Rubio - UPC
RTA 2008– p.8/31
Albert Rubio - UPC
RTA 2008– p.8/31
Albert Rubio - UPC
RTA 2008– p.8/31
Albert Rubio - UPC
RTA 2008– p.8/31
Albert Rubio - UPC
RTA 2008– p.9/31
Albert Rubio - UPC
RTA 2008– p.9/31
Albert Rubio - UPC
RTA 2008– p.9/31
Albert Rubio - UPC
RTA 2008– p.9/31
Albert Rubio - UPC
RTA 2008– p.10/31
Albert Rubio - UPC
RTA 2008– p.10/31
Albert Rubio - UPC
RTA 2008– p.11/31
Albert Rubio - UPC
RTA 2008– p.11/31
Albert Rubio - UPC
RTA 2008– p.11/31
Albert Rubio - UPC
RTA 2008– p.12/31
Albert Rubio - UPC
RTA 2008– p.12/31
Albert Rubio - UPC
RTA 2008– p.12/31
Albert Rubio - UPC
RTA 2008– p.12/31
Albert Rubio - UPC
RTA 2008– p.13/31
Albert Rubio - UPC
RTA 2008– p.13/31
Albert Rubio - UPC
RTA 2008– p.13/31
Albert Rubio - UPC
RTA 2008– p.13/31
Albert Rubio - UPC
RTA 2008– p.14/31
Albert Rubio - UPC
RTA 2008– p.14/31
Albert Rubio - UPC
RTA 2008– p.14/31
Albert Rubio - UPC
RTA 2008– p.14/31
Albert Rubio - UPC
RTA 2008– p.14/31
Albert Rubio - UPC
RTA 2008– p.14/31
Albert Rubio - UPC
RTA 2008– p.14/31
Albert Rubio - UPC
RTA 2008– p.15/31
Albert Rubio - UPC
RTA 2008– p.15/31
Albert Rubio - UPC
RTA 2008– p.16/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) PROD(s(n),m)
⇒
SUM(prod(n,m), m) PROD(s(n),m)
⇒
PROD(n,m) SUM(s(n),m)
⇒
SUM(n,m)
RTA 2008– p.16/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) PROD(s(n),m)
⇒
SUM(prod(n,m), m) PROD(s(n),m)
⇒
PROD(n,m) SUM(s(n),m)
⇒
SUM(n,m)
PROD(s(n),m) PROD(s(n),m) PROD(n,m) SUM(PROD(n,m)) SUM(n,m) SUM(s(n),m)
RTA 2008– p.16/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0,m)
⇒
ZERO PROD(s(n),m)
⇒
SUM(prod(n,m), m) PROD(s(n),m)
⇒
PROD(n,m) SUM(s(n),m)
⇒
SUM(n,m) SUM(s(n),m)
⇒
SUC(n + m)
RTA 2008– p.16/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0,m)
⇒
ZERO PROD(s(n),m)
⇒
SUM(prod(n,m), m) PROD(s(n),m)
⇒
PROD(n,m) SUM(s(n),m)
⇒
SUM(n,m) SUM(s(n),m)
⇒
SUC(n + m)
PROD(s(n),m) PROD(s(n),m) PROD(n,m) ZERO SUM(prod(n,m)) SUM(n,m) SUM(s(n),m) SUM(s(n),m) SUC(n+m) PROD(s(n),m)
RTA 2008– p.16/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0,m)
⇒
ZERO PROD(s(n),m)
⇒
SUM(prod(n,m), m) PROD(s(n),m)
⇒
PROD(n,m) SUM(s(n),m)
⇒
SUM(n,m) SUM(s(n),m)
⇒
SUC(n + m)
PROD(s(n),m) PROD(s(n),m) PROD(n,m) ZERO SUM(prod(n,m)) SUM(n,m) SUM(s(n),m) SUM(s(n),m) SUC(n+m) PROD(s(n),m)
RTA 2008– p.16/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0,m)
⇒
ZERO PROD(s(n),m)
⇒
SUM(prod(n,m), m) PROD(s(n),m)
⇒
PROD(n,m) SUM(s(n),m)
⇒
SUM(n,m) SUM(s(n),m)
⇒
SUC(n + m)
PROD(s(n),m) PROD(s(n),m) PROD(n,m) ZERO SUM(prod(n,m)) SUM(n,m) SUM(s(n),m) SUM(s(n),m) SUC(n+m) PROD(s(n),m)
RTA 2008– p.16/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0,m)
⇒
ZERO PROD(s(n),m)
⇒
SUM(prod(n,m), m) PROD(s(n),m)
⇒
PROD(n,m) SUM(s(n),m)
⇒
SUM(n,m) SUM(s(n),m)
⇒
SUC(n + m)
PROD(s(n),m) PROD(s(n),m) PROD(n,m) SUM(PROD(n,m)) SUM(n,m) SUM(s(n),m)
RTA 2008– p.16/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) PROD(s(n),m)
⇒
SUM(prod(n,m), m) PROD(s(n),m)
⇒
PROD(n,m) SUM(s(n),m)
⇒
SUM(n,m)
PROD(s(n),m) PROD(s(n),m) PROD(n,m) SUM(PROD(n,m)) SUM(n,m) SUM(s(n),m)
RTA 2008– p.16/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) PROD(s(n),m)
⇒
SUM(prod(n,m), m) PROD(s(n),m)
⇒
PROD(n,m) SUM(s(n),m)
⇒
SUM(n,m)
PROD(s(n),m) PROD(s(n),m) PROD(n,m) SUM(prod(n,m)) SUM(n,m) SUM(s(n),m)
RTA 2008– p.16/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) PROD(s(n),m)
⇒
SUM(prod(n,m), m) PROD(s(n),m)
⇒
PROD(n,m) SUM(s(n),m)
⇒
SUM(n,m)
PROD(s(n),m) PROD(n,m) SUM(n,m) SUM(s(n),m)
RTA 2008– p.16/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) PROD(s(n),m)
⇒
SUM(prod(n,m), m) PROD(s(n),m)
⇒
PROD(n,m) SUM(s(n),m)
⇒
SUM(n,m)
RTA 2008– p.16/31
Albert Rubio - UPC
RTA 2008– p.17/31
Albert Rubio - UPC
RTA 2008– p.18/31
Albert Rubio - UPC
RTA 2008– p.18/31
Albert Rubio - UPC
RTA 2008– p.18/31
Albert Rubio - UPC
RTA 2008– p.18/31
Albert Rubio - UPC
RTA 2008– p.18/31
Albert Rubio - UPC
RTA 2008– p.19/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0, m) ❂ ZERO PROD(s(n),m) ❂ SUM(prod(n,m), m) PROD(s(n),m) ❂ PROD(n,m) SUM(s(n),m) ❂ SUM(n,m) SUM(s(n),m) ❂ SUC(n + m)
RTA 2008– p.19/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0, m) ❂ ZERO PROD(s(n),m) ❂ SUM(prod(n,m), m) PROD(s(n),m) ❂ PROD(n,m) SUM(s(n),m) ❂ SUM(n,m) SUM(s(n),m) ❂ SUC(n + m)
PROD(s(n),m) PROD(s(n),m) ZERO SUM(n,m) SUM(s(n),m) SUM(s(n),m) SUC(n+m) PROD(s(n),m) PROD(n,m) SUM(prod(n,m))
RTA 2008– p.19/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0, m) ❂ ZERO PROD(s(n),m) ❂ SUM(prod(n,m), m) PROD(s(n),m) ❂ PROD(n,m) SUM(s(n),m) ❂ SUM(n,m) SUM(s(n),m) ❂ SUC(n + m)
PROD(s(n),m) PROD(s(n),m) ZERO SUM(n,m) SUM(s(n),m) SUM(s(n),m) SUC(n+m) PROD(s(n),m) PROD(n,m) SUM(prod(n,m))
RTA 2008– p.19/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0, m) ❂ ZERO PROD(s(n),m) ❂ SUM(prod(n,m), m) PROD(s(n),m) ❂ PROD(n,m) SUM(s(n),m) ❂ SUM(n,m) SUM(s(n),m) ❂ SUC(n + m)
PROD(s(n),m) SUM(n,m) SUM(s(n),m) PROD(n,m)
RTA 2008– p.19/31
Albert Rubio - UPC
RTA 2008– p.20/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0,m) ❂ ZERO PROD(s(n),m) ❂ SUM(prod(n,m), m) PROD(s(n),m)
⊒
PROD(n,m) SUM(s(n),m) ❂ SUM(n,m) SUM(s(n),m)
⊒
SUC(n + m)
RTA 2008– p.20/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0,m) ❂ ZERO PROD(s(n),m) ❂ SUM(prod(n,m), m) PROD(s(n),m)
⊒
PROD(n,m) SUM(s(n),m) ❂ SUM(n,m) SUM(s(n),m)
⊒
SUC(n + m)
PROD(s(n),m) PROD(s(n),m) ZERO SUM(n,m) SUM(s(n),m) SUM(s(n),m) SUC(n+m) PROD(s(n),m) PROD(n,m) SUM(prod(n,m))
RTA 2008– p.20/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0,m) ❂ ZERO PROD(s(n),m) ❂ SUM(prod(n,m), m) PROD(s(n),m)
⊒
PROD(n,m) SUM(s(n),m) ❂ SUM(n,m) SUM(s(n),m)
⊒
SUC(n + m)
PROD(s(n),m) SUM(n,m) SUM(s(n),m) PROD(n,m)
RTA 2008– p.20/31
Albert Rubio - UPC
prod(0,m)
→
prod(s(n),m)
→
prod(n,m) + m 0 + m
→
m s(n) + m
→
s(n + m) prod(0,m) ❂ ZERO PROD(s(n),m) ❂ SUM(prod(n,m), m) PROD(s(n),m)
⊒
PROD(n,m) SUM(s(n),m) ❂ SUM(n,m) SUM(s(n),m)
⊒
SUC(n + m)
RTA 2008– p.20/31
Albert Rubio - UPC
RTA 2008– p.21/31
Albert Rubio - UPC
RTA 2008– p.22/31
Albert Rubio - UPC
RTA 2008– p.23/31
Albert Rubio - UPC
RTA 2008– p.23/31
Albert Rubio - UPC
RTA 2008– p.23/31
Albert Rubio - UPC
RTA 2008– p.23/31
Albert Rubio - UPC
RTA 2008– p.24/31
Albert Rubio - UPC
RTA 2008– p.24/31
Albert Rubio - UPC
RTA 2008– p.24/31
Albert Rubio - UPC
RTA 2008– p.24/31
Albert Rubio - UPC
RTA 2008– p.24/31
Albert Rubio - UPC
RTA 2008– p.25/31
Albert Rubio - UPC
RTA 2008– p.25/31
Albert Rubio - UPC
RTA 2008– p.25/31
Albert Rubio - UPC
RTA 2008– p.26/31
Albert Rubio - UPC
RTA 2008– p.27/31
Albert Rubio - UPC
RTA 2008– p.27/31
Albert Rubio - UPC
RTA 2008– p.27/31
Albert Rubio - UPC
RTA 2008– p.27/31
Albert Rubio - UPC
RTA 2008– p.27/31
Albert Rubio - UPC
RTA 2008– p.28/31
Albert Rubio - UPC
RTA 2008– p.28/31
Albert Rubio - UPC
RTA 2008– p.28/31
Albert Rubio - UPC
RTA 2008– p.29/31
Albert Rubio - UPC
RTA 2008– p.30/31
Albert Rubio - UPC
RTA 2008– p.31/31
Albert Rubio - UPC
RTA 2008– p.31/31
Albert Rubio - UPC
RTA 2008– p.31/31
Albert Rubio - UPC
RTA 2008– p.31/31
Albert Rubio - UPC
RTA 2008– p.31/31
Albert Rubio - UPC
RTA 2008– p.31/31
Albert Rubio - UPC
RTA 2008– p.31/31