% В тази програма се разглеждат случаите, % когато един член на Закона за висшето % образование цитира друг. Константите % а8, а6, а26v и пр. в нея следва да се % четат "чл. 8", "чл. 6", "чл. 26в" и % т.н.; изразът q(X,Y) може да се чете % "X цитира Y". q(a8,a6). q(a10,a9). q(a11,a6). q(a26,a50). q(a26,a58). q(a26v,a26). q(a26v,a26g). q(a30,a9). q(a30,a6). q(a31,a35). q(a34a,a58a). q(a42,a7). q(a46,a78). q(a47,a46). q(a47,a67). q(a47,a70). q(a49,a48). q(a50,a48). q(a50,a51). q(a54,a48). q(a55,a51). q(a55,a52). q(a55,a48). q(a64,a90). q(a64,a91). q(a65a,a61). q(a65a,a62). q(a65a,a63). q(a65a,a64). q(a65a,a65). q(a68,a9). q(a78,a7). q(a78,a47). q(a78,a9). q(a78,a82). q(a78,a81). q(a79,a47). q(a79,a14). q(a79,a87). q(a81,a77). q(a85,a84). q(a95,a91). % Можем да четем израза o(X,V) по-долу % като "X е вън от списъка V". o(X,[]). o(X,[A|V]) :- X \= A, o(X,V). % Нека G е ориентираният граф, изобра- % зяващ дадената в началото информация. % Един път в G да наречем прост, ако % всеки два върха с различни поредни % номера по него с евентуално изключение % на началния и крайния са различни % помежду си. Изразите по-долу, имащи % вид p(L,A,B,V), можем да четем по % следния начин: "L е списък на последо- % вателните върхове по такъв прост път в % G с начален връх A и краен връх B, че % всеки връх по този път с евентуално % изключение на A и на B е вън от % списъка V". p([A,B],A,B,V) :- q(A,B). p([A|L],A,B,V) :- q(A,C), o(C,[A|V]), p(L,C,B,[A|V]), B \= C. % Изпълнението на програмата върху целта % по-долу дава всички прости цикли в G, % представени чрез списъците на последова- % телните им върхове. ?- p(L,X,X,[]), write(L). % Забележка. Частта ", write(L)" от тази % цел може да се пропусне при използване % на реализация на Пролог, която при % всяко удовлетворяване на цел показва % намереното удовлетворяващо я заместване % на нейните променливи. % Последно изменение: 12.02.2001 г.