S(a,b):-  A(a,b).
S(a,b):-  C(a,b).
A(a,b):-  A0(c,b),C2(a,c).
A(a,b):-  A1(c,b),C2(a,c).
C2(a,b):- c(a,b) .
C2(a,b):- c(c,b) , C2(a,c).
A0(a,b):- a(a,b) .
A0(a,b):- a(c,b) , A0(a,c).
A0(a,b):- a(c,b),b(a,d) , A0(d,c).
A1(a,b):- b(a,b) .
A1(a,b):- b(a,c) , A1(c,b).
A1(a,b):- a(c,b),c(a,d) , A1(d,c).
C(a,b):-  A2(c,b),C0(a,c).
C(a,b):-  A2(c,b),C1(a,c).
A2(a,b):- a(a,b) .
A2(a,b):- a(c,b) , A2(a,c).
C0(a,b):- c(a,b) .
C0(a,b):- c(a,c) , C0(c,b).
C0(a,b):- b(c,b),c(a,d) , C0(d,c).
C1(a,b):- b(a,b) .
C1(a,b):- b(c,b) , C1(a,c).
C1(a,b):- b(c,b),c(a,d) , C1(d,c).
