MAYBE We consider the system theBenchmark. Alphabet: 0 : [] --> N false : [] --> B g : [] --> N -> B g2 : [] --> N -> B geq : [] --> N -> N -> B h : [] --> N -> (N -> B) -> N -> B h2 : [] --> N -> (N -> B) -> N -> B iszero : [] --> N -> N -> B pred : [] --> N -> N rec : [] --> (N -> (N -> B) -> N -> B) -> B -> N -> B s : [] --> N -> N true : [] --> B Rules: rec f (i 0) => i g x => true h x f y => false iszero x y => rec h (g x) y pred 0 => 0 pred (s x) => x g2 x => iszero x 0 h2 x f y => f (pred y) geq x y => rec h2 (g2 x) y Using the transformations described in [Kop11], this system can be brought in a form without leading free variables in the left-hand side, and where the left-hand side of a variable is always a functional term or application headed by a functional term. We now transform the resulting AFS into an AFSM by replacing all free variables by meta-variables (with arity 0). This leads to the following AFSM: Alphabet: 0 : [] --> N false : [] --> B g : [] --> N -> B g2 : [] --> N -> B geq : [N] --> N -> B h : [] --> N -> (N -> B) -> N -> B h2 : [] --> N -> (N -> B) -> N -> B iszero : [N] --> N -> B pred : [N] --> N rec : [N -> (N -> B) -> N -> B * B] --> N -> B s : [N] --> N true : [] --> B ~AP1 : [N -> B * N] --> B Rules: rec(F, ~AP1(G, 0)) => G g X => true h X F Y => false iszero(X) Y => ~AP1(rec(h, g X), Y) pred(0) => 0 pred(s(X)) => X g2 X => iszero(X) 0 h2 X F Y => ~AP1(F, pred(Y)) geq(X) Y => ~AP1(rec(h2, g2 X), Y) rec(F, g 0) => g rec(F, g2 0) => g2 rec(F, geq(X) 0) => geq(X) rec(F, h X G 0) => h X G rec(F, h2 X G 0) => h2 X G rec(F, iszero(X) 0) => iszero(X) ~AP1(F, X) => F X +++ Citations +++ [Kop11] C. Kop. Simplifying Algebraic Functional Systems. In Proceedings of CAI 2011, volume 6742 of LNCS. 201--215, Springer, 2011.