/* Задача для отладки 1 */
'присоединить'([],L,L).
'присоединить'([A|L1],L2,[A|L3]):-'пpисоединить'(L1,L2,L3).
'обращение'([],[]).
'обращение'([A|L1],L2):-'обращение'(L1,L2),'присоединить'(L1,[A],L3).
/* Запуск теста */
tst1:-'обращение'([1,2,3,4],L),write('L='),write(L),nl.
/* Задача для отладки 2 */
'пpинадлежит'([X|_],X).
'принадлежит'([_|L],X):-'принадлежит'(L,X).
'подмножество'([],_).
'подмножество'([H|T],L):-'принадлежит'(L,H),'подмножество'(L,T).
/* Запуск теста (должен быть ответ yes) */
tst2:-'подмножество'([2,4],[1,2,3,4]).
/* Задача для отладки 3 */
'присоединить'([],L,L).
'присоединить'([A|L1],L2,[A|L3]):-'пpисоединить'(L1,L2,L3).
'перестановка'([],[]).
'перестановка'([A|L1],L5):-
'перестановка'(L1,L2), /* переставляем хвост всеми способами */
/* вставляем всеми способами голову в получившийся список */
'присоединить'(L2,L3,L4),'присоединить'(L3,[A|L4],L5).
/* Запуск теста */
tst3:-'перестановка'([1,2,3,4],L),write('L='),write(L),nl,fail.
/* Задача для отладки 4 */
'пpинадлежит'([X|_],X).
'принадлежит'([_|L],X):-'принадлежит'(L,X).
'пересечение'([],[],[]).
'пересечение'([H|T],B,[H|T1]):-
'принадлежит'(H,B),!,
'пересечение'(T,B,T1).
'пересечение'([H|T],B,T1):-
'пересечение'(T,B,T1).
/* Запуск теста */
tst4:-'пересечение'([0,2,4,5],[1,2,3,4],L),write('L='),write(L),nl.
/* Задача для отладки 5 */
'присоединить'([],L,L).
'присоединить'([A|L1],L2,[A|L3]):-'пpисоединить'(L1,L2,L3).
'подсписок'(A,B):-'присоединить'(_,X,B),'присоединить'(_,A,X).
/* Запуск теста (должен быть ответ yes) */
tst5:-'подсписок'([2,3],[1,2,3,4]).
/* Задача для отладки 6 */
'пpинадлежит'([X|_],X).
'принадлежит'([_|L],X):-'принадлежит'(L,X).
'объединение'([],L,L).
'объединение'([H|T],B,T1):-
'принадлежит'(H,B),!,
'объединение'(T,B,T1).
'объединение'([H|T],B,T1):-
'объединение'(T,B,T1).
/* Запуск теста */
tst6:-'объединение'([0,2,4,5],[1,2,3,4],L),write('L='),write(L),nl.
/* Задача для отладки 7 */
'удaлить'(A,[A|X],X).
'удалить'(A,[B|X],[B|Y]) :- 'удалить'(A,X,Y).
'перестановка2'([],[]).
'перестановка2'([A|X],Y) :- 'удалить'(A,Y,Y1), 'перестановка2'(X,Y).
/* Запуск теста */
tst7:-'перестановка2'(L,[1,2,3,4]),write('L='),write(L),nl,fail.