dbg
This commit is contained in:
@@ -1,125 +1,86 @@
|
||||
%, copy_term(X,Y), writeln('....'), writeln(X), writeln(Y).
|
||||
|
||||
:- linitialization(main).
|
||||
:- use_module(library(terms)).
|
||||
|
||||
:- initialization(main).
|
||||
|
||||
:- op(700, xfx, :=: ).
|
||||
|
||||
main :-
|
||||
main( cyclic_term(X), X).
|
||||
main :-
|
||||
writeln('--- cyclic_term/1 --------------------'),
|
||||
fail.
|
||||
main :-
|
||||
main( ground(X), X).
|
||||
main :-
|
||||
writeln('--- ground/1 ------------------'),
|
||||
fail.
|
||||
main :-
|
||||
main2( (terms:variables_in_term(X, O), writeln(X=O) ), X, L, O).
|
||||
main :-
|
||||
writeln('--------variables_in_term/2, writeln/1 ---------------'),
|
||||
fail.
|
||||
|
||||
main :-
|
||||
main2( (terms:new_variables_in_term(L,X, O), writeln(X+L=O) ), X, L, O).
|
||||
main :-
|
||||
writeln('-----------------------'),
|
||||
fail.
|
||||
main :-
|
||||
main2( (terms:variables_within_term(L,X, O), writeln(X+L=O) ), X, L, O).
|
||||
main :-
|
||||
writeln('-----------------------'),
|
||||
fail.
|
||||
main :-
|
||||
main( writeln(X), X).
|
||||
main :-
|
||||
writeln('------rational_term_to_tree(X,A,B,[]),\
|
||||
writeln((A->B) -----------------'),
|
||||
fail.
|
||||
main :-
|
||||
main((rational_term_to_tree(X,A,B,[]),
|
||||
writeln((A->B))), X).
|
||||
main :-
|
||||
writeln('------ numbervars(A+B,1,_),\
|
||||
writeln((A->B) -----------------'),
|
||||
fail.
|
||||
main :-
|
||||
main(( numbervars(A+B,1,_),
|
||||
writeln((A->B))), X).
|
||||
main :-
|
||||
writeln('------rational_term_to_tree(X,A,B,[]), numbervars(A+B,1,_),\
|
||||
writeln((A->B) -----------------'),
|
||||
fail.
|
||||
main :-
|
||||
main((rational_term_to_tree(X,A,B,[]), numbervars(A+B,1,_),
|
||||
writeln((A->B))), X).
|
||||
main.
|
||||
|
||||
main(G, X) :-
|
||||
d(X),
|
||||
m(G).
|
||||
|
||||
|
||||
main2(G, X, L, O) :-
|
||||
e(X,L),
|
||||
m(G).
|
||||
|
||||
m( G ) :-
|
||||
G,
|
||||
!,
|
||||
writeln(yes),
|
||||
end.
|
||||
m( G ) :-
|
||||
writeln(no),
|
||||
end.
|
||||
|
||||
d(X) :- X :=: [_A].
|
||||
d(X) :- X :=: [a,_A].
|
||||
d(X) :- X :=: [X].
|
||||
d(X) :- X :=: [_|X].
|
||||
d(X) :- X :=: [_,X].
|
||||
d(X) :- X :=: [_,x].
|
||||
d(X) :- X :=: [_,x(X)].
|
||||
d(X) :- X:=: f(X).
|
||||
d(X) :- X:=: f(X,X).
|
||||
d(X) :- X:=: f(_,X).
|
||||
d(X) :- X:=: f(A,A,X).
|
||||
d(X) :- X:=: f(A,A,g(A)).
|
||||
d(X) :- X:=: f(A,g(X,[A|A]),X).
|
||||
d(X) :- X:=: f(X,[X,X]).
|
||||
d(X) :- X:=: f(X,[X,g(X)]).
|
||||
d(X) :- X:=: f(_,X/[X]).
|
||||
d(X) :- X:=: f(_,A/[A]), A:=: f(X,[X,g(X)]).
|
||||
d(X) :- X:=: f(_,A/[A]), A:=: f(X,[A,g(X)]).
|
||||
d(X) :- X:=: f(_,A/[A]), A:=: f(B,[X,g(A)]), B:=:[C|B], C:=:[X].
|
||||
|
||||
end :- writeln('....'), fail.
|
||||
|
||||
e(X,Y) :- X :=: t(_A,B,_C,D), Y :=: [B,E].
|
||||
e(X,Y) :- X :=: t(_A,_B,_C,_D), Y :=: [_,_E].
|
||||
e(X,Y) :- X :=: t(A,_B,C,_D), Y :=: [ A,C].
|
||||
e(X,Y) :- X :=: t(A,[X,_D]), Y :=: [A,_C,_E].
|
||||
e(X,Y) :- X :=: t(A,[X,C]), Y :=: [A,C,_E].
|
||||
e(X,Y) :- X :=: t(A,X,_B,[X,C,_D]), Y :=: [A,C,_E].
|
||||
|
||||
a(no, no).
|
||||
a(no, no).
|
||||
a(yes, yes).
|
||||
a(yes, no).
|
||||
a(yes, no).
|
||||
a( no, no).
|
||||
a(yes, no).
|
||||
a(yes, yes).
|
||||
a(yes, yes).
|
||||
a(yes, no).
|
||||
a(yes, no).
|
||||
a( no, no).
|
||||
a(yes, no).
|
||||
a(yes, yes).
|
||||
a(yes, yes).
|
||||
a(yes, no).
|
||||
a(yes, no).
|
||||
|
||||
X :-: Y :- writeln(X), fail.
|
||||
X :=: X.
|
||||
|
||||
main :-
|
||||
exec.
|
||||
|
||||
test( cyclic_term(X), [X]).
|
||||
test( ground(X), [X]).
|
||||
test( (variables_in_term(X, O), writeln(X=O) ), [X, [], O]).
|
||||
test( (new_variables_in_term(L,X, O), writeln(X+L=O) ), [X, L, O]).
|
||||
test( (variables_within_term(L,X, O), writeln(X+L=O) ), [X, L, O]).
|
||||
test( writeln(X), [X]).
|
||||
test((rational_term_to_tree(X,A,B,[]),
|
||||
writeln((A->B))), [X, A, B]).
|
||||
test(( numbervars(A+B,1,_)), [A, B]).
|
||||
test((rational_term_to_tree(X,A,B,[]), numbervars(A+B,1,_),
|
||||
writeln((A->B))), [X,A,B]).
|
||||
|
||||
:- dynamic i/1.
|
||||
i(0).
|
||||
|
||||
id(I) :-
|
||||
retract(i(I)),
|
||||
I1 is I+1,
|
||||
assert(i(I1)).
|
||||
|
||||
exec :-
|
||||
test( G, [X|Ps] ),
|
||||
functors(G, Fs),
|
||||
format('**** ~w:~n',[Fs]),
|
||||
d(X, GX),
|
||||
id(I),
|
||||
m(I, GX, G, [X|Ps]),
|
||||
fail.
|
||||
exec.
|
||||
|
||||
functors((X,Y),(GX -> GY)) :-
|
||||
!,
|
||||
functors(X, GX),
|
||||
functors(Y, GY).
|
||||
functors(X, GX) :-
|
||||
functor(X, GX, _).
|
||||
|
||||
m( I, GX, G, Ps ) :-
|
||||
%trace,
|
||||
GX,
|
||||
G,
|
||||
!,
|
||||
format( '~d. ~w: ~a.~n', [I, G,yes]).
|
||||
m( I, GX, G, _Ps ) :-
|
||||
GX,
|
||||
format( '~d. ~w: ~a.~n',[I,G,no]).
|
||||
|
||||
d(X, X = [_A] ).
|
||||
d(X, ( X = [a,_A]) ).
|
||||
d(X, ( X = [X]) ).
|
||||
d(X, ( X = [_|X]) ).
|
||||
d(X, ( X = [_,X]) ).
|
||||
d(X, ( X = [_,x]) ).
|
||||
d(X, ( X = [_,x(X)]) ).
|
||||
d(X, ( X= f(X)) ).
|
||||
d(X, ( X= f(X,X)) ).
|
||||
d(X, ( X= f(_,X)) ).
|
||||
d(X, ( X= f(A,A,X)) ).
|
||||
d(X, ( X= f(A,A,g(A))) ).
|
||||
d(X, ( X= f(A,g(X,[A|A]),X)) ).
|
||||
d(X, ( X= f(X,[X,X])) ).
|
||||
d(X, ( X= f(X,[X,g(X)])) ).
|
||||
d(X, ( X= f(_,X/[X])) ).
|
||||
d(X, ( X= f(_,A/[A]), A= f(X,[X,g(X)])) ).
|
||||
d(X, ( X= f(_,A/[A]), A= f(X,[A,g(X)])) ).
|
||||
d(X, ( X= f(_,A/[A]), A= f(B,[X,g(A)]), B=[C|B], C=[X]) ).
|
||||
|
||||
e(X,Y, ( X = t(_A,B,_C,D), Y = [B,E]) ).
|
||||
e(X,Y, ( X = t(_A,_B,_C,_D), Y = [_,_E]) ).
|
||||
e(X,Y, ( X = t(A,_B,C,_D), Y = [ A,C]) ).
|
||||
e(X,Y, ( X = t(A,[X,_D]), Y = [A,_C,_E]) ).
|
||||
e(X,Y, ( X = t(A,[X,C]), Y = [A,C,_E]) ).
|
||||
e(X,Y, ( X = t(A,X,_B,[X,C,_D]), Y = [A,C,_E]) ).
|
||||
|
Reference in New Issue
Block a user