36.19/36.28 MAYBE 36.19/36.28 We consider the system theBenchmark. 36.19/36.28 36.19/36.28 Alphabet: 36.19/36.28 36.19/36.28 lk : [] --> (W -> E) -> E 36.19/36.28 ud : [] --> W -> E -> E 36.19/36.28 36.19/36.28 Rules: 36.19/36.28 36.19/36.28 lk (/\x.ud x y) => y 36.19/36.28 ud x (ud y z) => ud y z 36.19/36.28 ud x (lk (/\y.f y)) => ud x (f x) 36.19/36.28 lk (/\x.lk (/\y.f y x)) => lk (/\z.f z z) 36.19/36.28 36.19/36.28 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. 36.19/36.28 36.19/36.28 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: 36.19/36.28 36.19/36.28 Alphabet: 36.19/36.28 36.19/36.28 lk : [W -> E] --> E 36.19/36.28 ud : [W * E] --> E 36.19/36.28 ~AP1 : [W -> E * W] --> E 36.19/36.28 ~AP2 : [W -> W -> E * W] --> W -> E 36.19/36.28 36.19/36.28 Rules: 36.19/36.28 36.19/36.28 lk(/\x.ud(x, X)) => X 36.19/36.28 ud(X, ud(Y, Z)) => ud(Y, Z) 36.19/36.28 ud(X, lk(/\x.~AP1(F, x))) => ud(X, ~AP1(F, X)) 36.19/36.28 lk(/\x.lk(/\y.~AP1(~AP2(F, y), x))) => lk(/\z.~AP1(~AP2(F, z), z)) 36.19/36.28 ~AP1(F, X) => F X 36.19/36.28 ~AP2(F, X) => F X 36.19/36.28 36.19/36.28 36.19/36.28 +++ Citations +++ 36.19/36.28 36.19/36.28 [Kop11] C. Kop. Simplifying Algebraic Functional Systems. In Proceedings of CAI 2011, volume 6742 of LNCS. 201--215, Springer, 2011. 36.39/36.41 EOF