TPTP Problem File: COM003-2.p
View Solutions
- Solve Problem
%--------------------------------------------------------------------------
% File : COM003-2 : TPTP v9.0.0. Released v1.1.0.
% Domain : Computing Theory
% Problem : The halting problem is undecidable
% Version : [Bru91] axioms.
% English :
% Refs : [Bur87b] Burkholder (1987), A 76th Automated Theorem Proving Pr
% : [Bru91] Brushi (1991), The Halting Problem
% Source : [Bru91]
% Names : - [Bru91]
% Status : Unsatisfiable
% Rating : 0.09 v9.0.0, 0.08 v8.2.0, 0.14 v8.1.0, 0.00 v2.0.0
% Syntax : Number of clauses : 43 ( 1 unt; 2 nHn; 35 RR)
% Number of literals : 109 ( 0 equ; 65 neg)
% Maximal clause size : 5 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 17 ( 17 usr; 0 prp; 1-4 aty)
% Number of functors : 10 ( 10 usr; 6 con; 0-1 aty)
% Number of variables : 103 ( 24 sgn)
% SPC : CNF_UNS_RFO_NEQ_NHN
% Comments :
%--------------------------------------------------------------------------
%----Definitions of the new predicates.
% (all X (program_decides(X) <->
% (all Y (program(Y) -> (all Z decides(X,Y,Z)))))).
cnf(program_decides1,axiom,
( ~ program_decides(X)
| ~ program(Y)
| decides(X,Y,Z) ) ).
cnf(program_decides2,axiom,
( program_decides(X)
| program(f2(X)) ) ).
cnf(program_decides3,axiom,
( program_decides(X)
| ~ decides(X,f2(X),f1(X)) ) ).
% (all X (program_program_decides(X) <->
% (program(X) & program_decides(X)))).
cnf(program_program_decides1,axiom,
( ~ program_program_decides(X)
| program(X) ) ).
cnf(program_program_decides2,axiom,
( ~ program_program_decides(X)
| program_decides(X) ) ).
cnf(program_program_decides3,axiom,
( program_program_decides(X)
| ~ program(X)
| ~ program_decides(X) ) ).
% (all X (algorithm_program_decides(X) <->
% (algorithm(X) & program_decides(X)))).
cnf(algorithm_program_decides1,axiom,
( ~ algorithm_program_decides(X)
| algorithm(X) ) ).
cnf(algorithm_program_decides2,axiom,
( ~ algorithm_program_decides(X)
| program_decides(X) ) ).
cnf(algorithm_program_decides3,axiom,
( algorithm_program_decides(X)
| ~ algorithm(X)
| ~ program_decides(X) ) ).
% (all X (all Y (program_halts2(X,Y) <->
% (program(X) & halts2(X,Y))))).
cnf(program_halts1,axiom,
( ~ program_halts2(X,Y)
| program(X) ) ).
cnf(program_halts3a,axiom,
( ~ program_halts2(X,Y)
| halts2(X,Y) ) ).
cnf(program_halts3b,axiom,
( program_halts2(X,Y)
| ~ program(X)
| ~ halts2(X,Y) ) ).
% (all X (all Y (all Z (all W (halts3_outputs(X,Y,Z,W) <->
% (halts3(X,Y,Z) & outputs(X,W))))))).
cnf(halts3_outputs1,axiom,
( ~ halts3_outputs(X,Y,Z,W)
| halts3(X,Y,Z) ) ).
cnf(halts3_outputs2,axiom,
( ~ halts3_outputs(X,Y,Z,W)
| outputs(X,W) ) ).
cnf(halts3_outputs3,axiom,
( halts3_outputs(X,Y,Z,W)
| ~ halts3(X,Y,Z)
| ~ outputs(X,W) ) ).
% (all X (all Y (program_not_halts2(X,Y) <->
% (program(X) & -halts2(X,Y))))).
cnf(program_not_halts1,axiom,
( ~ program_not_halts2(X,Y)
| program(X) ) ).
cnf(program_not_halts3a,axiom,
( ~ program_not_halts2(X,Y)
| ~ halts2(X,Y) ) ).
cnf(program_not_halts3b,axiom,
( program_not_halts2(X,Y)
| ~ program(X)
| halts2(X,Y) ) ).
% (all X (all Y (all W (halts2_outputs(X,Y,W) <->
% (halts2(X,Y) & outputs(X,W)))))).
cnf(halts2_outputs1,axiom,
( ~ halts2_outputs(X,Y,W)
| halts2(X,Y) ) ).
cnf(halts2_outputs2,axiom,
( ~ halts2_outputs(X,Y,W)
| outputs(X,W) ) ).
cnf(halts2_outputs3,axiom,
( halts2_outputs(X,Y,W)
| ~ halts2(X,Y)
| ~ outputs(X,W) ) ).
% (all X (all Y (all Z (all W (program_halts2_halts3_outputs(X,Y,Z,W) <->
% (program_halts2(Y,Z) &
% halts3_outputs(X,Y,Z,W))))))).
cnf(program_halts2_halts3_outputs1,axiom,
( ~ program_halts2_halts3_outputs(X,Y,Z,W)
| program_halts2(Y,Z) ) ).
cnf(program_halts2_halts3_outputs2,axiom,
( ~ program_halts2_halts3_outputs(X,Y,Z,W)
| halts3_outputs(X,Y,Z,W) ) ).
cnf(program_halts2_halts3_outputs3,axiom,
( program_halts2_halts3_outputs(X,Y,Z,W)
| ~ program_halts2(Y,Z)
| ~ halts3_outputs(X,Y,Z,W) ) ).
% (all X (all Y (all Z (all W (program_not_halts2_halts3_outputs(X,Y,Z,W) <->
% (program_not_halts2(Y,Z) &
% halts3_outputs(X,Y,Z,W))))))).
cnf(program_not_halts2_halts3_outputs1,axiom,
( ~ program_not_halts2_halts3_outputs(X,Y,Z,W)
| program_not_halts2(Y,Z) ) ).
cnf(program_not_halts2_halts3_outputs2,axiom,
( ~ program_not_halts2_halts3_outputs(X,Y,Z,W)
| halts3_outputs(X,Y,Z,W) ) ).
cnf(program_not_halts2_halts3_outputs3,axiom,
( program_not_halts2_halts3_outputs(X,Y,Z,W)
| ~ program_not_halts2(Y,Z)
| ~ halts3_outputs(X,Y,Z,W) ) ).
% (all X (all Y (all W (program_halts2_halts2_outputs(X,Y,W) <->
% (program_halts2(Y,Y) & halts2_outputs(X,Y,W)))))).
cnf(program_halts2_halts2_outputs1,axiom,
( ~ program_halts2_halts2_outputs(X,Y,W)
| program_halts2(Y,Y) ) ).
cnf(program_halts2_halts2_outputs2,axiom,
( ~ program_halts2_halts2_outputs(X,Y,W)
| halts2_outputs(X,Y,W) ) ).
cnf(program_halts2_halts2_outputs3,axiom,
( program_halts2_halts2_outputs(X,Y,W)
| ~ program_halts2(Y,Y)
| ~ halts2_outputs(X,Y,W) ) ).
% (all X (all Y (all W (program_not_halts2_halts2_outputs(X,Y,W) <->
% (program_not_halts2(Y,Y) & halts2_outputs(X,Y,W)))))).
cnf(program_not_halts2_halts2_outputs1,axiom,
( ~ program_not_halts2_halts2_outputs(X,Y,W)
| program_not_halts2(Y,Y) ) ).
cnf(program_not_halts2_halts2_outputs2,axiom,
( ~ program_not_halts2_halts2_outputs(X,Y,W)
| halts2_outputs(X,Y,W) ) ).
cnf(program_not_halts2_halts2_outputs3,axiom,
( program_not_halts2_halts2_outputs(X,Y,W)
| ~ program_not_halts2(Y,Y)
| ~ halts2_outputs(X,Y,W) ) ).
% New verions of the original axioms
% ((exists X algorithm_program_decides(X)) ->
% (exists W program_program_decides(W))).
cnf(axiom1_1,hypothesis,
( ~ algorithm_program_decides(X)
| program_program_decides(c1) ) ).
% (all W (program_program_decides(W) ->
% (all Y (all Z (program_halts2_halts3_outputs(W,Y,Z,good) &
% program_not_halts2_halts3_outputs(W,Y,Z,bad)))))).
cnf(axiom2_1,hypothesis,
( ~ program_program_decides(W)
| program_halts2_halts3_outputs(W,Y,Z,good) ) ).
cnf(axiom2_2,hypothesis,
( ~ program_program_decides(W)
| program_not_halts2_halts3_outputs(W,Y,Z,bad) ) ).
% ((exists W (program(W) &
% (all Y (program_halts2_halts3_outputs(W,Y,Y,good) &
% program_not_halts2_halts3_outputs(W,Y,Y,bad))))) ->
% (exists V (program(V) &
% (all Y (program_halts2_halts2_outputs(V,Y,good) &
% program_not_halts2_halts2_outputs(V,Y,bad)))))).
cnf(axiom3_1,hypothesis,
( ~ program(W)
| ~ program_halts2_halts3_outputs(W,f3(W),f3(W),good)
| ~ program_not_halts2_halts3_outputs(W,f3(W),f3(W),bad)
| program(c2) ) ).
cnf(axiom3_2,hypothesis,
( ~ program(W)
| ~ program_halts2_halts3_outputs(W,f3(W),f3(W),good)
| ~ program_not_halts2_halts3_outputs(W,f3(W),f3(W),bad)
| program_halts2_halts2_outputs(c2,Y,good) ) ).
cnf(axiom3_3,hypothesis,
( ~ program(W)
| ~ program_halts2_halts3_outputs(W,f3(W),f3(W),good)
| ~ program_not_halts2_halts3_outputs(W,f3(W),f3(W),bad)
| program_not_halts2_halts2_outputs(c2,Y,bad) ) ).
% ((exists V (program(V) &
% (all Y (program_halts2_halts2_outputs(V,Y,good) &
% program_not_halts2_halts2_outputs(V,Y,bad))))) ->
% (exists U (program(U) &
% (all Y ((program_halts2(Y,Y) -> halts2(U,Y)) &
% program_not_halts2_halts2_outputs(U,Y,bad)))))).
cnf(axiom4_1,hypothesis,
( ~ program(V)
| ~ program_halts2_halts2_outputs(V,f4(V),good)
| ~ program_not_halts2_halts2_outputs(V,f4(V),bad)
| program(c3) ) ).
cnf(axiom4_2,hypothesis,
( ~ program(V)
| ~ program_halts2_halts2_outputs(V,f4(V),good)
| ~ program_not_halts2_halts2_outputs(V,f4(V),bad)
| ~ program_halts2(Y,Y)
| halts2(c3,Y) ) ).
cnf(axiom4_3,hypothesis,
( ~ program(V)
| ~ program_halts2_halts2_outputs(V,f4(V),good)
| ~ program_not_halts2_halts2_outputs(V,f4(V),bad)
| program_not_halts2_halts2_outputs(c3,Y,bad) ) ).
%--- Prove -(exists X algorithm_program_decides(X)).
cnf(prove_algorithm_does_not_exist,negated_conjecture,
algorithm_program_decides(c4) ).
%--------------------------------------------------------------------------