/* Learning permutation/2 - permutations of the elements of a list */ background([permutation/2,insert/3,components/3]). propositional([[]]). /* Examples of the target predicate */ permutation([],[]). permutation('[c,b,a]','[a,b,c]'). permutation('[a,b,c]','[a,b,c]'). permutation('[b,a,c]','[a,b,c]'). permutation('[a,c,b]','[a,b,c]'). permutation('[c,a,b]','[a,b,c]'). permutation('[b,c,a]','[a,b,c]'). /* Background knowledge */ insert(a,'[b,c]','[a,b,c]'). insert(b,'[a,c]','[a,b,c]'). insert(c,'[a,b]','[a,b,c]'). insert(b,'[a,c]','[b,a,c]'). insert(a,'[b,c]','[b,a,c]'). insert(c,'[b,a]','[b,a,c]'). insert(c,'[b,a]','[c,b,a]'). insert(b,'[c,a]','[c,b,a]'). insert(a,'[c,b]','[c,b,a]'). insert(c,'[a,b]','[c,a,b]'). insert(a,'[c,b]','[c,a,b]'). insert(b,'[c,a]','[c,a,b]'). insert(b,'[c,a]','[b,c,a]'). insert(c,'[b,a]','[b,c,a]'). insert(a,'[b,c]','[b,c,a]'). insert(a,'[c,b]','[a,c,b]'). insert(c,'[a,b]','[a,c,b]'). insert(b,'[a,c]','[a,c,b]'). insert(a,'[b]','[a,b]'). insert(a,'[c]','[a,c]'). insert(b,'[a]','[a,b]'). insert(b,'[c]','[b,c]'). insert(c,'[a]','[a,c]'). insert(c,'[b]','[b,c]'). insert(b,'[a]','[b,a]'). insert(c,'[a]','[c,a]'). insert(a,'[b]','[b,a]'). insert(c,'[b]','[c,b]'). insert(a,'[c]','[c,a]'). insert(b,'[c]','[c,b]'). insert(a,[],'[a]'). insert(b,[],'[b]'). insert(c,[],'[c]'). components('[a,b,c]',a,'[b,c]'). components('[b,a,c]',b,'[a,c]'). components('[a,c,b]',a,'[c,b]'). components('[c,a,b]',c,'[a,b]'). components('[b,c,a]',b,'[c,a]'). components('[c,b,a]',c,'[b,a]'). components('[a,b]',a,'[b]'). components('[b,a]',b,'[a]'). components('[c,a]',c,'[a]'). components('[c,b]',c,'[b]'). components('[b,c]',b,'[c]'). components('[a,c]',a,'[c]'). components('[a]',a,[]). components('[b]',b,[]). components('[c]',c,[]).