13.06/11.11 MAYBE 13.06/11.11 We consider the system theBenchmark. 13.06/11.11 13.06/11.11 Alphabet: 13.06/11.11 13.06/11.11 !plus : [nat * nat] --> nat 13.06/11.11 0 : [] --> nat 13.06/11.11 dec : [nat * nat] --> nat 13.06/11.11 p : [nat * nat] --> nat 13.06/11.11 quad : [nat] --> nat 13.06/11.11 rec : [nat * nat * nat * nat -> nat -> nat] --> nat 13.06/11.11 s : [nat] --> nat 13.06/11.11 sqr : [nat] --> nat 13.06/11.11 sumsqr : [nat] --> nat 13.06/11.11 13.06/11.11 Rules: 13.06/11.11 13.06/11.11 dec(0, x) => 0 13.06/11.11 dec(x, 0) => x 13.06/11.11 dec(s(x), s(y)) => dec(x, y) 13.06/11.11 rec(0, x, y, f) => y 13.06/11.11 rec(s(x), s(y), z, f) => rec(dec(x, y), s(y), f z x, f) 13.06/11.11 sumsqr(x) => rec(x, s(0), 0, /\y./\z.!plus(sqr(p(s(z), 0)), y)) 13.06/11.11 !plus(0, x) => x 13.06/11.11 !plus(s(x), y) => s(!plus(x, y)) 13.06/11.11 quad(0) => 0 13.06/11.11 quad(s(x)) => s(s(s(s(quad(x))))) 13.06/11.11 sqr(p(0, 0)) => 0 13.06/11.11 sqr(p(s(s(x)), y)) => sqr(p(x, s(y))) 13.06/11.11 sqr(p(s(0), x)) => !plus(quad(sqr(p(x, 0))), s(quad(x))) 13.06/11.11 sqr(p(0, s(x))) => quad(sqr(p(s(x), 0))) 13.06/11.11 13.06/11.11 This AFS is converted to an AFSM simply by replacing all free variables by meta-variables (with arity 0). 13.06/11.11 13.06/11.13 EOF