I am trying to create a search space with state transitions that take which number of balls you are putting to a weighing machine then I want to eliminate some of the balls according to if they have the a bit heavier ball. Although my code is still missing some restrictions when I try to input a some true queries I get false as answer.
isMember([A|_],A).
isMember([_|X],A):-
isMember(X,A).
removeOrderedList(X,[],X).
removeOrderedList([B|X], [A|Y], [B|Z]):-
removeOrderedList(X, [A|Y], Z).
removeOrderedList([A|X], [A|Y], Z):-
removeOrderedList(X, Y , Z).
statechange(Secret, left, right, _, left):-
isMember(left,Secret),
!.
statechange(Secret, left, right, _, right):-
isMember(right,Secret),
!.
statechange(_, left, right, X, N):-
removeOrderedList(X,left,inter),
removeOrderedList(inter,right,N).
the query I tried to execute was statechange(1,[1,2,3,4],[5,6,7,8],[1,2,3,4,5,6,7,8,9,10],A). My isMember and removeOrderedList is working.