%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Learning a recursive definition for appending lists. :- set(posonly), unset(cover), unset(condition)? :- set(c,1)? % :- set(h,15)? :- modeh(1,append([+const|+clist],+clist,[-const|-clist]))? :- modeh(1,append(+clist,+clist,-clist))? :- modeb(1,+clist = [])? :- modeb(1,append(+clist,+clist,-clist))? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Types clist([]). clist([H|T]) :- const(H), clist(T). const(a). const(b). const(c). const(d). const(e). const(f). const(g). const(h). const(i). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Positive examples append([],[d],[d]). append([],[a,b],[a,b]). append([a,b],[f,c],[a,b,f,c]). append([],[c],[c]). append([],[i,h],[i,h]). append([],[h],[h]). append([c,f],[c],[c,f,c]). append([],[],[]). append([g,e],[c,d,a,c],[g,e,c,d,a,c]). append([h],[d,a,h,d,g],[h,d,a,h,d,g]). append([b,a],[],[b,a]). append([e,c,g],[g],[e,c,g,g]). append([],[],[]). append([],[g,h],[g,h]). append([],[],[]). append([],[e],[e]). append([a,c],[i,e],[a,c,i,e]). append([c],[],[c]). append([],[],[]). append([],[],[]). append([],[b,a],[b,a]). append([],[],[]). append([],[d],[d]). append([],[a,a],[a,a]). append([],[i],[i]). append([g,e],[g,g,g,c,f],[g,e,g,g,g,c,f]). append([],[b],[b]). append([a,a,c,d],[],[a,a,c,d]). append([c],[],[c]). append([b],[c,c,h,f],[b,c,c,h,f]). append([c,h,d,a,f,d,d,i],[a,a],[c,h,d,a,f,d,d,i,a,a]). append([c,f,e],[],[c,f,e]). append([],[],[]). append([],[],[]). append([f],[b],[f,b]). append([g,h],[],[g,h]). append([],[],[]). append([c],[a],[c,a]). append([],[c,e],[c,e]). append([],[i],[i]). % append([c],[e,d,i],[c,e,d,i]). % append([],[],[]). % append([],[],[]). % append([],[],[]). % append([a,c],[a,g,b,g,f,e,a,a,d,c],[a,c,a,g,b,g,f,e,a,a,d,c]). % append([g],[],[g]). % append([],[f,d,a],[f,d,a]). % append([i,d],[c],[i,d,c]). % append([g],[g],[g,g]). % append([],[],[]). % append([],[],[]). % append([g],[h,b],[g,h,b]). % append([g],[d],[g,d]). % append([a,b],[],[a,b]). % append([b,g],[],[b,g]). % append([e,d],[c],[e,d,c]). % append([],[],[]). % append([f,i],[a],[f,i,a]). % append([],[b],[b]). % append([],[],[]). % append([h],[],[h]). % append([h],[],[h]). % append([],[e,b],[e,b]). % append([a],[],[a]). % append([h],[],[h]). % append([],[],[]). % append([b,d],[d],[b,d,d]). % append([b],[],[b]). % append([b],[a,d,c],[b,a,d,c]). % append([g],[],[g]). % append([],[],[]). % append([c,h,a],[],[c,h,a]). % append([b],[],[b]). % append([f,e],[e,c,d],[f,e,e,c,d]). % append([c,h],[],[c,h]). % append([],[d,h],[d,h]). % append([a],[g],[a,g]). % append([i,i,i],[],[i,i,i]). % append([h],[b,g],[h,b,g]). % append([a],[],[a]). % append([e,f],[],[e,f]). % append([],[i],[i]). % append([c,f],[e],[c,f,e]). % append([b],[],[b]). % append([],[b,f],[b,f]). % append([],[d],[d]). % append([g],[g],[g,g]). % append([b],[i,h,i,f],[b,i,h,i,f]). % append([b],[],[b]). % append([],[h,f,b,g],[h,f,b,g]). % append([],[],[]). % append([c],[a,b,g],[c,a,b,g]). % append([e],[],[e]). % append([e],[i],[e,i]). % append([a,f],[d,f],[a,f,d,f]). % append([e],[h],[e,h]). % append([f,d],[],[f,d]). % append([h,a],[f,h,f,f],[h,a,f,h,f,f]). % append([d,a],[i,a,c,a],[d,a,i,a,c,a]). % append([],[],[]).