A = B C. B = DD ( AA ( BB ( CC)), F(C, CC), G). C = BL. D = F(G). G =. F(X) = X(X). X =. List(S) ~ S {S}. Alt(X1, Y1) : Alt1(X1, Y1) | Alt2(X1, Y1). List2(X2, Y2) ~ Alt2(X2,Y2) {Alt1(X2,Y2)}. Alt1(X1, Y1) = X1(Y1). Alt2(X1, Y1) =. AA(S, SS) =. BB(S) =. CC(S) =. DD(N,O,P) =. A =. F =.