/* Learning palindrome/1 using reverse/2 */ background([palindrome/1,reverse/2,components/3]). propositional([[]]). /* Examples of the target predicate */ palindrome('[a,b,a]'). palindrome('[a,a]'). palindrome('[b,b]'). palindrome('[a]'). palindrome('[b]'). /* Background knowledge */ reverse('[a,b,a]','[a,b,a]'). reverse('[a,b]','[b,a]'). reverse('[b,a]','[a,b]'). reverse('[a,a]','[a,a]'). reverse('[b,b]','[b,b]'). reverse('[b]','[b]'). reverse('[a]','[a]'). components('[a,b,a]',a,'[b,a]'). components('[b,a]',b,'[a]'). components('[a,b]',a,'[b]'). components('[a,a]',a,'[a]'). components('[b,b]',b,'[b]'). components('[a]',a,[]). components('[b]',b,[]).