Spaces
Explore
Communities
Statistics
Reports
Cluster
Status
Help
Logic Progr 19030 pair #381920019
details
property
value
status
complete
benchmark
tictactoe.pl
ran by
Akihisa Yamada
cpu timeout
1200 seconds
wallclock timeout
300 seconds
memory limit
137438953472 bytes
execution host
n050.star.cs.uiowa.edu
space
talp_maria
run statistics
property
value
solver
AProVE
configuration
standard
runtime (wallclock)
2.21206307411 seconds
cpu usage
5.256725006
max memory
2.94023168E8
stage attributes
key
value
output-size
215418
starexec-result
MAYBE
output
/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.pl /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- Graph construction failed Graph construction failed Graph construction failed MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern play(g,g,a) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) NotTransformerProof [EQUIVALENT, 0 ms] (2) Prolog (3) CallTransformerProof [EQUIVALENT, 0 ms] (4) Prolog (5) CutEliminatorProof [SOUND, 0 ms] (6) Prolog (7) FailTransformerProof [EQUIVALENT, 0 ms] (8) Prolog (9) UnifyTransformerProof [EQUIVALENT, 0 ms] (10) Prolog (11) UndefinedPredicateHandlerProof [SOUND, 0 ms] (12) Prolog (13) IntegerArithmeticTransformerProof [SOUND, 0 ms] (14) Prolog (15) NotTransformerProof [EQUIVALENT, 0 ms] (16) Prolog (17) CallTransformerProof [EQUIVALENT, 0 ms] (18) Prolog (19) CutEliminatorProof [SOUND, 0 ms] (20) Prolog (21) FailTransformerProof [EQUIVALENT, 0 ms] (22) Prolog (23) UnifyTransformerProof [EQUIVALENT, 0 ms] (24) Prolog (25) OrTransformerProof [EQUIVALENT, 0 ms] (26) Prolog (27) UndefinedPredicateHandlerProof [SOUND, 0 ms] (28) Prolog ---------------------------------------- (0) Obligation: Clauses: play(Game) :- ','(initialize(Game, Position, Player), ','(display_game(Position), play(Position, Player, Result))). play(Position, Player, Result) :- ','(game_over(Position, Player, Result), ','(!, ','(write(Result), abolish0(player)))). play(Position, Player, Result) :- ','(choose(Position, Player, Move), ','(move(Move, Player, Position, Position1), ','(display_game(Position1), ','(next_player(Player, Player1), ','(!, play(Position1, Player1, Result)))))). choose(Position, computer, Move) :- ','(write('Computer is thinking...'), ','(nl, alpha_beta(computer, Position, -1, 1, Move, Value))). choose(Position, Player, Move) :- ','(write(Player), ','(write(', enter move (followed by a period and return) --> '), ','(read(Move1), legal(Position, Player, Move1, Move)))). alpha_beta(Player, Position, Alpha, Beta, Move, Value) :- ','(==(Player, computer), ','(game_win_o(Position), is(Value, 1))). alpha_beta(Player, Position, Alpha, Beta, Move, Value) :- ','(player(Player), ','(game_win_x(Position), is(Value, 1))). alpha_beta(Player, Position, Alpha, Beta, Move, Value) :- ','(game_tie(Position), is(Value, 0)). alpha_beta(Player, Position, Alpha, Beta, Move, Value) :- ','(==(Player, computer), ','(game_win_x(Position), is(Value, -1))). alpha_beta(Player, Position, Alpha, Beta, Move, Value) :- ','(player(Player), ','(game_win_o(Position), is(Value, -1))). alpha_beta(Player, Position, Alpha, Beta, Move, Value) :- ','(setof(Move1, move(Position, Move1), Moves), ','(is(Alpha1, -(Beta)), ','(is(Beta1, -(Alpha)), evaluate(Player, Moves, Position, Alpha1, Beta1, nil, ','(Move, Value))))). evaluate(Player, .(Move, Moves), Position, Alpha, Beta, Move1, Best) :- ','(move(Move, Player, Position, Position1), ','(next_player(Player, Player1), ','(alpha_beta(Player1, Position1, Alpha, Beta, MoveX, Value), ','(is(Value1, -(Value)), ','(cutoff(Player, Move, Value1, Alpha, Beta, Moves, Position, Move1, Best), !))))). evaluate(Player, [], Position, Alpha, Beta, Move, ','(Move, Alpha)). cutoff(Player, Move, Value, Alpha, Beta, Moves, Position, Move1, ','(Move, Value)) :- ','(>=(Value, Beta), !). cutoff(Player, Move, Value, Alpha, Beta, Moves, Position, Move1, Best) :- ','(<(Alpha, Value), ','(<(Value, Beta), ','(!, evaluate(Player, Moves, Position, Value, Beta, Move, Best)))). cutoff(Player, Move, Value, Alpha, Beta, Moves, Position, Move1, Best) :- ','(=<(Value, Alpha), ','(!, evaluate(Player, Moves, Position, Alpha, Beta, Move1, Best))). initialize(tictactoe, ','(','(' ', ','(' ', ' ')), ','(','(' ', ','(' ', ' ')), ','(' ', ','(' ', ' ')))), Player) :- ','(write('Enter player`s name (followed by a period and return) --> '), ','(read(Player), ','(write(Player), ','(write(', you will go first and use the symbol "x".'), ','(nl, assert(player(Player))))))). display_game(','(','(R1C1, ','(R1C2, R1C3)), ','(','(R2C1, ','(R2C2, R2C3)), ','(R3C1, ','(R3C2, R3C3))))) :- ','(nl, ','(write(' '), ','(write(R1C1), ','(write(' '), ','(write('|'), ','(write(' '), ','(write(R1C2), ','(write(' '), ','(write('|'), ','(write(' '), ','(write(R1C3), ','(write(' '), ','(tab(3), ','(write('u-l = upper left, u-c = upper center, u-r = upper right'), ','(nl, ','(write(' --+---+-- '), ','(nl, ','(write(' '), ','(write(R2C1), ','(write(' '), ','(write('|'), ','(write(' '), ','(write(R2C2), ','(write(' '), ','(write('|'), ','(write(' '), ','(write(R2C3), ','(write(' '), ','(tab(3), ','(write('c-l = center left, c-c = center center, c-r = center right'), ','(nl, ','(write(' --+---+-- '), ','(nl, ','(write(' '), ','(write(R3C1), ','(write(' '), ','(write('|'), ','(write(' '), ','(write(R3C2), ','(write(' '), ','(write('|'), ','(write(' '), ','(write(R3C3), ','(write(' '), ','(tab(3), ','(write('l-l = lower left, l-c = lower center, l-r = lower right'), ','(nl, nl))))))))))))))))))))))))))))))))))))))))))))))). next_player(Player, computer) :- player(Player). next_player(computer, Player1) :- player(Player1). legal(Position, Player, Move, Move) :- move(Position, Move). legal(Position, Player, Move1, Move) :- ','(write('Illegal move! '), ','(!, choose(Position, Player, Move))). game_over(Position, Player, ','(Player1, ' you win!')) :- ','(game_win_x(Position), player(Player1)). game_over(Position, Player, 'Computer wins!') :- game_win_o(Position). game_over(Position, Player, 'It is a tie!') :- game_tie(Position). game_tie(','(','(R1C1, ','(R1C2, R1C3)), ','(','(R2C1, ','(R2C2, R2C3)), ','(R3C1, ','(R3C2, R3C3))))) :- ','(\+(game_win_x(','(','(R1C1, ','(R1C2, R1C3)), ','(','(R2C1, ','(R2C2, R2C3)), ','(R3C1, ','(R3C2, R3C3)))))), ','(\+(game_win_o(','(','(R1C1, ','(R1C2, R1C3)), ','(','(R2C1, ','(R2C2, R2C3)), ','(R3C1, ','(R3C2, R3C3)))))), ','(\==(R1C1, ' '), ','(\==(R1C2, ' '), ','(\==(R1C3, ' '), ','(\==(R2C1, ' '), ','(\==(R2C2, ' '), ','(\==(R2C3, ' '), ','(\==(R3C1, ' '), ','(\==(R3C2, ' '), \==(R3C3, ' '))))))))))). game_win_x(','(','(x, ','(x, x)), ','(','(X1, ','(X2, X3)), ','(X4, ','(X5, X6))))). game_win_x(','(','(X7, ','(X8, X9)), ','(','(x, ','(x, x)), ','(X10, ','(X11, X12))))). game_win_x(','(','(X13, ','(X14, X15)), ','(','(X16, ','(X17, X18)), ','(x, ','(x, x))))). game_win_x(','(','(x, ','(X19, X20)), ','(','(x, ','(X21, X22)), ','(x, ','(X23, X24))))). game_win_x(','(','(X25, ','(x, X26)), ','(','(X27, ','(x, X28)), ','(X29, ','(x, X30))))). game_win_x(','(','(X31, ','(X32, x)), ','(','(X33, ','(X34, x)), ','(X35, ','(X36, x))))). game_win_x(','(','(x, ','(X37, X38)), ','(','(X39, ','(x, X40)), ','(X41, ','(X42, x))))). game_win_x(','(','(X43, ','(X44, x)), ','(','(X45, ','(x, X46)), ','(x, ','(X47, X48))))). game_win_o(','(','(o, ','(o, o)), ','(','(X49, ','(X50, X51)), ','(X52, ','(X53, X54))))). game_win_o(','(','(X55, ','(X56, X57)), ','(','(o, ','(o, o)), ','(X58, ','(X59, X60))))). game_win_o(','(','(X61, ','(X62, X63)), ','(','(X64, ','(X65, X66)), ','(o, ','(o, o))))). game_win_o(','(','(o, ','(X67, X68)), ','(','(o, ','(X69, X70)), ','(o, ','(X71, X72))))). game_win_o(','(','(X73, ','(o, X74)), ','(','(X75, ','(o, X76)), ','(X77, ','(o, X78))))). game_win_o(','(','(X79, ','(X80, o)), ','(','(X81, ','(X82, o)), ','(X83, ','(X84, o))))). game_win_o(','(','(o, ','(X85, X86)), ','(','(X87, ','(o, X88)), ','(X89, ','(X90, o))))). game_win_o(','(','(X91, ','(X92, o)), ','(','(X93, ','(o, X94)), ','(o, ','(X95, X96))))). move(','(','(' ', ','(X97, X98)), ','(','(X99, ','(X100, X101)), ','(X102, ','(X103, X104)))), -(u, l)).
popout
output may be truncated. 'popout' for the full output.
job log
popout
actions
all output
return to Logic Progr 19030