% -*- Prolog -*-
%
% Test the redo code of retract/1.
%
% $Id: 023,v 1.2 2000/09/15 15:11:35 peteg Exp $

:- dynamic(test/1).

asserta_test :-
	asserta( ( test(X) :- write(test(X)), nl ) ),
	asserta( ( test(X) :- X1 is X - 1, write(test(X1)), nl ) ),
	assertz( ( test(X) :- X1 is X + 1, write(test(X1)), nl ) ).

write_test :-
	test(2),
	fail.
write_test.

retract_test :-
	retract( ( test(X) :- B ) ),
	X = 1,
	write( ( test(X) :- B) ),
	nl,
	fail.
retract_test.

main :-
	asserta_test,
	write_test,
	retract_test.
