TSTP Solution File: COM003_1 by SnakeForV-SAT---1.0

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : SnakeForV-SAT---1.0
% Problem  : COM003_1 : TPTP v8.1.0. Released v5.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_tptp_sat --cores 0 -t %d %s

% Computer : n003.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Wed Aug 31 15:53:32 EDT 2022

% Result   : Theorem 0.19s 0.53s
% Output   : Refutation 0.19s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   24
%            Number of leaves      :   34
% Syntax   : Number of formulae    :  108 (  18 unt;  20 typ;   0 def)
%            Number of atoms       :  361 (   0 equ)
%            Maximal formula atoms :   12 (   4 avg)
%            Number of connectives :  441 ( 168   ~; 149   |;  89   &)
%                                         (   0 <=>;  35  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   10 (   5 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of types       :    5 (   4 usr)
%            Number of type conns  :   16 (  10   >;   6   *;   0   +;   0  <<)
%            Number of predicates  :    7 (   6 usr;   3 prp; 0-3 aty)
%            Number of functors    :   12 (  12 usr;   6 con; 0-1 aty)
%            Number of variables   :  180 ( 140   !;  40   ?; 180   :)

% Comments : 
%------------------------------------------------------------------------------
tff(type_def_5,type,
    program: $tType ).

tff(type_def_6,type,
    algorithm: $tType ).

tff(type_def_7,type,
    input: $tType ).

tff(type_def_8,type,
    output: $tType ).

tff(func_def_0,type,
    bad: output ).

tff(func_def_1,type,
    good: output ).

tff(func_def_2,type,
    algorithm_of: program > algorithm ).

tff(func_def_3,type,
    as_input: program > input ).

tff(func_def_4,type,
    sK2: program > program ).

tff(func_def_5,type,
    sK3: program ).

tff(func_def_6,type,
    sK4: program ).

tff(func_def_7,type,
    sK5: program > program ).

tff(func_def_8,type,
    sK6: algorithm ).

tff(func_def_9,type,
    sK7: algorithm > input ).

tff(func_def_10,type,
    sK8: algorithm > program ).

tff(func_def_11,type,
    sK9: program ).

tff(pred_def_1,type,
    decides: ( algorithm * program * input ) > $o ).

tff(pred_def_2,type,
    halts2: ( program * input ) > $o ).

tff(pred_def_3,type,
    halts3: ( program * program * input ) > $o ).

tff(pred_def_4,type,
    outputs: ( program * output ) > $o ).

tff(f140,plain,
    $false,
    inference(subsumption_resolution,[],[f136,f134]) ).

tff(f134,plain,
    ~ outputs(sK4,bad),
    inference(subsumption_resolution,[],[f133,f66]) ).

tff(f66,plain,
    sP0,
    inference(subsumption_resolution,[],[f65,f46]) ).

tff(f46,plain,
    ! [X1: program] :
      ( ~ halts2(sK3,as_input(X1))
      | ~ halts2(X1,as_input(X1))
      | sP0 ),
    inference(cnf_transformation,[],[f26]) ).

tff(f26,plain,
    ( ! [X1: program] :
        ( ( ~ halts2(X1,as_input(X1))
          | ~ halts2(sK3,as_input(X1)) )
        & ( ( halts2(sK3,as_input(X1))
            & outputs(sK3,bad) )
          | halts2(X1,as_input(X1)) ) )
    | sP0 ),
    inference(skolemisation,[status(esa),new_symbols(skolem,[sK3])],[f24,f25]) ).

tff(f25,plain,
    ( ? [X0: program] :
      ! [X1: program] :
        ( ( ~ halts2(X1,as_input(X1))
          | ~ halts2(X0,as_input(X1)) )
        & ( ( halts2(X0,as_input(X1))
            & outputs(X0,bad) )
          | halts2(X1,as_input(X1)) ) )
   => ! [X1: program] :
        ( ( ~ halts2(X1,as_input(X1))
          | ~ halts2(sK3,as_input(X1)) )
        & ( ( halts2(sK3,as_input(X1))
            & outputs(sK3,bad) )
          | halts2(X1,as_input(X1)) ) ) ),
    introduced(choice_axiom,[]) ).

tff(f24,plain,
    ( ? [X0: program] :
      ! [X1: program] :
        ( ( ~ halts2(X1,as_input(X1))
          | ~ halts2(X0,as_input(X1)) )
        & ( ( halts2(X0,as_input(X1))
            & outputs(X0,bad) )
          | halts2(X1,as_input(X1)) ) )
    | sP0 ),
    inference(rectify,[],[f18]) ).

tff(f18,plain,
    ( ? [X2: program] :
      ! [X3: program] :
        ( ( ~ halts2(X3,as_input(X3))
          | ~ halts2(X2,as_input(X3)) )
        & ( ( halts2(X2,as_input(X3))
            & outputs(X2,bad) )
          | halts2(X3,as_input(X3)) ) )
    | sP0 ),
    inference(definition_folding,[],[f16,f17]) ).

tff(f17,plain,
    ( ! [X0: program] :
      ? [X1: program] :
        ( ( ( ~ outputs(X0,good)
            | ~ halts2(X0,as_input(X1)) )
          & halts2(X1,as_input(X1)) )
        | ( ~ halts2(X1,as_input(X1))
          & ( ~ halts2(X0,as_input(X1))
            | ~ outputs(X0,bad) ) ) )
    | ~ sP0 ),
    introduced(predicate_definition_introduction,[new_symbols(naming,[sP0])]) ).

tff(f16,plain,
    ( ? [X2: program] :
      ! [X3: program] :
        ( ( ~ halts2(X3,as_input(X3))
          | ~ halts2(X2,as_input(X3)) )
        & ( ( halts2(X2,as_input(X3))
            & outputs(X2,bad) )
          | halts2(X3,as_input(X3)) ) )
    | ! [X0: program] :
      ? [X1: program] :
        ( ( ( ~ outputs(X0,good)
            | ~ halts2(X0,as_input(X1)) )
          & halts2(X1,as_input(X1)) )
        | ( ~ halts2(X1,as_input(X1))
          & ( ~ halts2(X0,as_input(X1))
            | ~ outputs(X0,bad) ) ) ) ),
    inference(ennf_transformation,[],[f7]) ).

tff(f7,plain,
    ( ? [X0: program] :
      ! [X1: program] :
        ( ( ~ halts2(X1,as_input(X1))
         => ( halts2(X0,as_input(X1))
            & outputs(X0,bad) ) )
        & ( halts2(X1,as_input(X1))
         => ( outputs(X0,good)
            & halts2(X0,as_input(X1)) ) ) )
   => ? [X2: program] :
      ! [X3: program] :
        ( ( ~ halts2(X3,as_input(X3))
         => ( halts2(X2,as_input(X3))
            & outputs(X2,bad) ) )
        & ( halts2(X3,as_input(X3))
         => ~ halts2(X2,as_input(X3)) ) ) ),
    inference(rectify,[],[f4]) ).

tff(f4,axiom,
    ( ? [X4: program] :
      ! [X1: program] :
        ( ( halts2(X1,as_input(X1))
         => ( outputs(X4,good)
            & halts2(X4,as_input(X1)) ) )
        & ( ~ halts2(X1,as_input(X1))
         => ( halts2(X4,as_input(X1))
            & outputs(X4,bad) ) ) )
   => ? [X5: program] :
      ! [X1: program] :
        ( ( halts2(X1,as_input(X1))
         => ~ halts2(X5,as_input(X1)) )
        & ( ~ halts2(X1,as_input(X1))
         => ( outputs(X5,bad)
            & halts2(X5,as_input(X1)) ) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',p4) ).

tff(f65,plain,
    ( sP0
    | halts2(sK3,as_input(sK3)) ),
    inference(factoring,[],[f45]) ).

tff(f45,plain,
    ! [X1: program] :
      ( halts2(X1,as_input(X1))
      | halts2(sK3,as_input(X1))
      | sP0 ),
    inference(cnf_transformation,[],[f26]) ).

tff(f133,plain,
    ( ~ outputs(sK4,bad)
    | ~ sP0 ),
    inference(subsumption_resolution,[],[f131,f109]) ).

tff(f109,plain,
    ! [X0: program] : halts2(sK4,as_input(X0)),
    inference(resolution,[],[f105,f63]) ).

tff(f63,plain,
    ! [X1: program] :
      ( ~ sP1
      | halts2(sK4,as_input(X1)) ),
    inference(subsumption_resolution,[],[f48,f50]) ).

tff(f50,plain,
    ! [X1: program] :
      ( ~ sP1
      | halts2(sK4,as_input(X1))
      | halts2(X1,as_input(X1)) ),
    inference(cnf_transformation,[],[f30]) ).

tff(f30,plain,
    ( ! [X1: program] :
        ( ( ( halts2(sK4,as_input(X1))
            & outputs(sK4,bad) )
          | halts2(X1,as_input(X1)) )
        & ( ( halts2(sK4,as_input(X1))
            & outputs(sK4,good) )
          | ~ halts2(X1,as_input(X1)) ) )
    | ~ sP1 ),
    inference(skolemisation,[status(esa),new_symbols(skolem,[sK4])],[f28,f29]) ).

tff(f29,plain,
    ( ? [X0: program] :
      ! [X1: program] :
        ( ( ( halts2(X0,as_input(X1))
            & outputs(X0,bad) )
          | halts2(X1,as_input(X1)) )
        & ( ( halts2(X0,as_input(X1))
            & outputs(X0,good) )
          | ~ halts2(X1,as_input(X1)) ) )
   => ! [X1: program] :
        ( ( ( halts2(sK4,as_input(X1))
            & outputs(sK4,bad) )
          | halts2(X1,as_input(X1)) )
        & ( ( halts2(sK4,as_input(X1))
            & outputs(sK4,good) )
          | ~ halts2(X1,as_input(X1)) ) ) ),
    introduced(choice_axiom,[]) ).

tff(f28,plain,
    ( ? [X0: program] :
      ! [X1: program] :
        ( ( ( halts2(X0,as_input(X1))
            & outputs(X0,bad) )
          | halts2(X1,as_input(X1)) )
        & ( ( halts2(X0,as_input(X1))
            & outputs(X0,good) )
          | ~ halts2(X1,as_input(X1)) ) )
    | ~ sP1 ),
    inference(rectify,[],[f27]) ).

tff(f27,plain,
    ( ? [X2: program] :
      ! [X3: program] :
        ( ( ( halts2(X2,as_input(X3))
            & outputs(X2,bad) )
          | halts2(X3,as_input(X3)) )
        & ( ( halts2(X2,as_input(X3))
            & outputs(X2,good) )
          | ~ halts2(X3,as_input(X3)) ) )
    | ~ sP1 ),
    inference(nnf_transformation,[],[f19]) ).

tff(f19,plain,
    ( ? [X2: program] :
      ! [X3: program] :
        ( ( ( halts2(X2,as_input(X3))
            & outputs(X2,bad) )
          | halts2(X3,as_input(X3)) )
        & ( ( halts2(X2,as_input(X3))
            & outputs(X2,good) )
          | ~ halts2(X3,as_input(X3)) ) )
    | ~ sP1 ),
    introduced(predicate_definition_introduction,[new_symbols(naming,[sP1])]) ).

tff(f48,plain,
    ! [X1: program] :
      ( ~ halts2(X1,as_input(X1))
      | ~ sP1
      | halts2(sK4,as_input(X1)) ),
    inference(cnf_transformation,[],[f30]) ).

tff(f105,plain,
    sP1,
    inference(subsumption_resolution,[],[f104,f74]) ).

tff(f74,plain,
    ! [X0: program,X1: input] : halts3(sK9,X0,X1),
    inference(resolution,[],[f73,f64]) ).

tff(f64,plain,
    ! [X2: program,X3: program,X0: input,X1: program,X4: input] :
      ( ~ decides(algorithm_of(X2),X1,X0)
      | halts3(X2,X3,X4) ),
    inference(subsumption_resolution,[],[f59,f57]) ).

tff(f57,plain,
    ! [X2: program,X3: program,X0: input,X1: program,X4: input] :
      ( ~ decides(algorithm_of(X2),X1,X0)
      | halts2(X3,X4)
      | halts3(X2,X3,X4) ),
    inference(cnf_transformation,[],[f39]) ).

tff(f39,plain,
    ! [X0: input,X1: program,X2: program] :
      ( ~ decides(algorithm_of(X2),X1,X0)
      | ! [X3: program,X4: input] :
          ( ( ( outputs(X2,good)
              & halts3(X2,X3,X4) )
            | ~ halts2(X3,X4) )
          & ( ( outputs(X2,bad)
              & halts3(X2,X3,X4) )
            | halts2(X3,X4) ) ) ),
    inference(rectify,[],[f13]) ).

tff(f13,plain,
    ! [X2: input,X1: program,X0: program] :
      ( ~ decides(algorithm_of(X0),X1,X2)
      | ! [X4: program,X3: input] :
          ( ( ( outputs(X0,good)
              & halts3(X0,X4,X3) )
            | ~ halts2(X4,X3) )
          & ( ( outputs(X0,bad)
              & halts3(X0,X4,X3) )
            | halts2(X4,X3) ) ) ),
    inference(ennf_transformation,[],[f12]) ).

tff(f12,plain,
    ! [X2: input,X1: program,X0: program] :
      ( decides(algorithm_of(X0),X1,X2)
     => ! [X4: program,X3: input] :
          ( ( ~ halts2(X4,X3)
           => ( outputs(X0,bad)
              & halts3(X0,X4,X3) ) )
          & ( halts2(X4,X3)
           => ( outputs(X0,good)
              & halts3(X0,X4,X3) ) ) ) ),
    inference(rectify,[],[f2]) ).

tff(f2,axiom,
    ! [X3: program,X1: program,X2: input] :
      ( decides(algorithm_of(X3),X1,X2)
     => ! [X2: input,X1: program] :
          ( ( ~ halts2(X1,X2)
           => ( halts3(X3,X1,X2)
              & outputs(X3,bad) ) )
          & ( halts2(X1,X2)
           => ( outputs(X3,good)
              & halts3(X3,X1,X2) ) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',p2) ).

tff(f59,plain,
    ! [X2: program,X3: program,X0: input,X1: program,X4: input] :
      ( halts3(X2,X3,X4)
      | ~ halts2(X3,X4)
      | ~ decides(algorithm_of(X2),X1,X0) ),
    inference(cnf_transformation,[],[f39]) ).

tff(f73,plain,
    ! [X0: program,X1: input] : decides(algorithm_of(sK9),X0,X1),
    inference(resolution,[],[f56,f55]) ).

tff(f55,plain,
    ! [X2: program,X1: input] : decides(sK6,X2,X1),
    inference(cnf_transformation,[],[f35]) ).

tff(f35,plain,
    ! [X1: input,X2: program] : decides(sK6,X2,X1),
    inference(skolemisation,[status(esa),new_symbols(skolem,[sK6])],[f33,f34]) ).

tff(f34,plain,
    ( ? [X0: algorithm] :
      ! [X1: input,X2: program] : decides(X0,X2,X1)
   => ! [X2: program,X1: input] : decides(sK6,X2,X1) ),
    introduced(choice_axiom,[]) ).

tff(f33,plain,
    ? [X0: algorithm] :
    ! [X1: input,X2: program] : decides(X0,X2,X1),
    inference(rectify,[],[f10]) ).

tff(f10,plain,
    ? [X0: algorithm] :
    ! [X2: input,X1: program] : decides(X0,X1,X2),
    inference(flattening,[],[f9]) ).

tff(f9,plain,
    ~ ~ ? [X0: algorithm] :
        ! [X2: input,X1: program] : decides(X0,X1,X2),
    inference(rectify,[],[f6]) ).

tff(f6,negated_conjecture,
    ~ ~ ? [X6: algorithm] :
        ! [X7: program,X8: input] : decides(X6,X7,X8),
    inference(negated_conjecture,[],[f5]) ).

tff(f5,conjecture,
    ~ ? [X6: algorithm] :
      ! [X7: program,X8: input] : decides(X6,X7,X8),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',prove_this) ).

tff(f56,plain,
    ! [X0: algorithm,X4: input,X5: program] :
      ( ~ decides(X0,sK8(X0),sK7(X0))
      | decides(algorithm_of(sK9),X5,X4) ),
    inference(cnf_transformation,[],[f38]) ).

tff(f38,plain,
    ( ! [X0: algorithm] : ~ decides(X0,sK8(X0),sK7(X0))
    | ! [X4: input,X5: program] : decides(algorithm_of(sK9),X5,X4) ),
    inference(skolemisation,[status(esa),new_symbols(skolem,[sK7,sK8,sK9])],[f14,f37,f36]) ).

tff(f36,plain,
    ! [X0: algorithm] :
      ( ? [X1: input,X2: program] : ~ decides(X0,X2,X1)
     => ~ decides(X0,sK8(X0),sK7(X0)) ),
    introduced(choice_axiom,[]) ).

tff(f37,plain,
    ( ? [X3: program] :
      ! [X4: input,X5: program] : decides(algorithm_of(X3),X5,X4)
   => ! [X5: program,X4: input] : decides(algorithm_of(sK9),X5,X4) ),
    introduced(choice_axiom,[]) ).

tff(f14,plain,
    ( ! [X0: algorithm] :
      ? [X1: input,X2: program] : ~ decides(X0,X2,X1)
    | ? [X3: program] :
      ! [X4: input,X5: program] : decides(algorithm_of(X3),X5,X4) ),
    inference(ennf_transformation,[],[f8]) ).

tff(f8,plain,
    ( ? [X0: algorithm] :
      ! [X2: program,X1: input] : decides(X0,X2,X1)
   => ? [X3: program] :
      ! [X4: input,X5: program] : decides(algorithm_of(X3),X5,X4) ),
    inference(rectify,[],[f1]) ).

tff(f1,axiom,
    ( ? [X0: algorithm] :
      ! [X2: input,X1: program] : decides(X0,X1,X2)
   => ? [X3: program] :
      ! [X2: input,X1: program] : decides(algorithm_of(X3),X1,X2) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',p1) ).

tff(f104,plain,
    ( sP1
    | ~ halts3(sK9,sK5(sK9),as_input(sK5(sK9))) ),
    inference(subsumption_resolution,[],[f103,f94]) ).

tff(f94,plain,
    outputs(sK9,bad),
    inference(subsumption_resolution,[],[f93,f76]) ).

tff(f76,plain,
    ! [X0: program,X1: input] :
      ( halts2(X0,X1)
      | outputs(sK9,bad) ),
    inference(resolution,[],[f58,f73]) ).

tff(f58,plain,
    ! [X2: program,X3: program,X0: input,X1: program,X4: input] :
      ( ~ decides(algorithm_of(X2),X1,X0)
      | outputs(X2,bad)
      | halts2(X3,X4) ),
    inference(cnf_transformation,[],[f39]) ).

tff(f93,plain,
    ( outputs(sK9,bad)
    | ~ halts2(sK9,as_input(sK2(sK9))) ),
    inference(subsumption_resolution,[],[f92,f76]) ).

tff(f92,plain,
    ( outputs(sK9,bad)
    | ~ halts2(sK2(sK9),as_input(sK2(sK9)))
    | ~ halts2(sK9,as_input(sK2(sK9))) ),
    inference(resolution,[],[f88,f83]) ).

tff(f83,plain,
    ( outputs(sK9,good)
    | outputs(sK9,bad) ),
    inference(resolution,[],[f77,f76]) ).

tff(f77,plain,
    ! [X0: program,X1: input] :
      ( ~ halts2(X0,X1)
      | outputs(sK9,good) ),
    inference(resolution,[],[f60,f73]) ).

tff(f60,plain,
    ! [X2: program,X3: program,X0: input,X1: program,X4: input] :
      ( ~ decides(algorithm_of(X2),X1,X0)
      | ~ halts2(X3,X4)
      | outputs(X2,good) ),
    inference(cnf_transformation,[],[f39]) ).

tff(f88,plain,
    ! [X0: program] :
      ( ~ outputs(X0,good)
      | ~ halts2(sK2(X0),as_input(sK2(X0)))
      | ~ halts2(X0,as_input(sK2(X0))) ),
    inference(resolution,[],[f43,f66]) ).

tff(f43,plain,
    ! [X0: program] :
      ( ~ sP0
      | ~ halts2(X0,as_input(sK2(X0)))
      | ~ outputs(X0,good)
      | ~ halts2(sK2(X0),as_input(sK2(X0))) ),
    inference(cnf_transformation,[],[f23]) ).

tff(f23,plain,
    ( ! [X0: program] :
        ( ( ( ~ outputs(X0,good)
            | ~ halts2(X0,as_input(sK2(X0))) )
          & halts2(sK2(X0),as_input(sK2(X0))) )
        | ( ~ halts2(sK2(X0),as_input(sK2(X0)))
          & ( ~ halts2(X0,as_input(sK2(X0)))
            | ~ outputs(X0,bad) ) ) )
    | ~ sP0 ),
    inference(skolemisation,[status(esa),new_symbols(skolem,[sK2])],[f21,f22]) ).

tff(f22,plain,
    ! [X0: program] :
      ( ? [X1: program] :
          ( ( ( ~ outputs(X0,good)
              | ~ halts2(X0,as_input(X1)) )
            & halts2(X1,as_input(X1)) )
          | ( ~ halts2(X1,as_input(X1))
            & ( ~ halts2(X0,as_input(X1))
              | ~ outputs(X0,bad) ) ) )
     => ( ( ( ~ outputs(X0,good)
            | ~ halts2(X0,as_input(sK2(X0))) )
          & halts2(sK2(X0),as_input(sK2(X0))) )
        | ( ~ halts2(sK2(X0),as_input(sK2(X0)))
          & ( ~ halts2(X0,as_input(sK2(X0)))
            | ~ outputs(X0,bad) ) ) ) ),
    introduced(choice_axiom,[]) ).

tff(f21,plain,
    ( ! [X0: program] :
      ? [X1: program] :
        ( ( ( ~ outputs(X0,good)
            | ~ halts2(X0,as_input(X1)) )
          & halts2(X1,as_input(X1)) )
        | ( ~ halts2(X1,as_input(X1))
          & ( ~ halts2(X0,as_input(X1))
            | ~ outputs(X0,bad) ) ) )
    | ~ sP0 ),
    inference(nnf_transformation,[],[f17]) ).

tff(f103,plain,
    ( ~ outputs(sK9,bad)
    | sP1
    | ~ halts3(sK9,sK5(sK9),as_input(sK5(sK9))) ),
    inference(duplicate_literal_removal,[],[f100]) ).

tff(f100,plain,
    ( sP1
    | ~ halts3(sK9,sK5(sK9),as_input(sK5(sK9)))
    | sP1
    | ~ outputs(sK9,bad) ),
    inference(resolution,[],[f97,f61]) ).

tff(f61,plain,
    ! [X0: program] :
      ( ~ outputs(X0,good)
      | ~ outputs(X0,bad)
      | ~ halts3(X0,sK5(X0),as_input(sK5(X0)))
      | sP1 ),
    inference(duplicate_literal_removal,[],[f53]) ).

tff(f53,plain,
    ! [X0: program] :
      ( sP1
      | ~ halts3(X0,sK5(X0),as_input(sK5(X0)))
      | ~ outputs(X0,bad)
      | ~ outputs(X0,good)
      | ~ halts3(X0,sK5(X0),as_input(sK5(X0))) ),
    inference(cnf_transformation,[],[f32]) ).

tff(f32,plain,
    ( ! [X0: program] :
        ( ( ( ~ outputs(X0,bad)
            | ~ halts3(X0,sK5(X0),as_input(sK5(X0))) )
          & ~ halts2(sK5(X0),as_input(sK5(X0))) )
        | ( halts2(sK5(X0),as_input(sK5(X0)))
          & ( ~ halts3(X0,sK5(X0),as_input(sK5(X0)))
            | ~ outputs(X0,good) ) ) )
    | sP1 ),
    inference(skolemisation,[status(esa),new_symbols(skolem,[sK5])],[f20,f31]) ).

tff(f31,plain,
    ! [X0: program] :
      ( ? [X1: program] :
          ( ( ( ~ outputs(X0,bad)
              | ~ halts3(X0,X1,as_input(X1)) )
            & ~ halts2(X1,as_input(X1)) )
          | ( halts2(X1,as_input(X1))
            & ( ~ halts3(X0,X1,as_input(X1))
              | ~ outputs(X0,good) ) ) )
     => ( ( ( ~ outputs(X0,bad)
            | ~ halts3(X0,sK5(X0),as_input(sK5(X0))) )
          & ~ halts2(sK5(X0),as_input(sK5(X0))) )
        | ( halts2(sK5(X0),as_input(sK5(X0)))
          & ( ~ halts3(X0,sK5(X0),as_input(sK5(X0)))
            | ~ outputs(X0,good) ) ) ) ),
    introduced(choice_axiom,[]) ).

tff(f20,plain,
    ( ! [X0: program] :
      ? [X1: program] :
        ( ( ( ~ outputs(X0,bad)
            | ~ halts3(X0,X1,as_input(X1)) )
          & ~ halts2(X1,as_input(X1)) )
        | ( halts2(X1,as_input(X1))
          & ( ~ halts3(X0,X1,as_input(X1))
            | ~ outputs(X0,good) ) ) )
    | sP1 ),
    inference(definition_folding,[],[f15,f19]) ).

tff(f15,plain,
    ( ! [X0: program] :
      ? [X1: program] :
        ( ( ( ~ outputs(X0,bad)
            | ~ halts3(X0,X1,as_input(X1)) )
          & ~ halts2(X1,as_input(X1)) )
        | ( halts2(X1,as_input(X1))
          & ( ~ halts3(X0,X1,as_input(X1))
            | ~ outputs(X0,good) ) ) )
    | ? [X2: program] :
      ! [X3: program] :
        ( ( ( halts2(X2,as_input(X3))
            & outputs(X2,bad) )
          | halts2(X3,as_input(X3)) )
        & ( ( halts2(X2,as_input(X3))
            & outputs(X2,good) )
          | ~ halts2(X3,as_input(X3)) ) ) ),
    inference(ennf_transformation,[],[f11]) ).

tff(f11,plain,
    ( ? [X0: program] :
      ! [X1: program] :
        ( ( ~ halts2(X1,as_input(X1))
         => ( outputs(X0,bad)
            & halts3(X0,X1,as_input(X1)) ) )
        & ( halts2(X1,as_input(X1))
         => ( halts3(X0,X1,as_input(X1))
            & outputs(X0,good) ) ) )
   => ? [X2: program] :
      ! [X3: program] :
        ( ( halts2(X3,as_input(X3))
         => ( halts2(X2,as_input(X3))
            & outputs(X2,good) ) )
        & ( ~ halts2(X3,as_input(X3))
         => ( halts2(X2,as_input(X3))
            & outputs(X2,bad) ) ) ) ),
    inference(rectify,[],[f3]) ).

tff(f3,axiom,
    ( ? [X3: program] :
      ! [X1: program] :
        ( ( ~ halts2(X1,as_input(X1))
         => ( halts3(X3,X1,as_input(X1))
            & outputs(X3,bad) ) )
        & ( halts2(X1,as_input(X1))
         => ( halts3(X3,X1,as_input(X1))
            & outputs(X3,good) ) ) )
   => ? [X4: program] :
      ! [X1: program] :
        ( ( halts2(X1,as_input(X1))
         => ( halts2(X4,as_input(X1))
            & outputs(X4,good) ) )
        & ( ~ halts2(X1,as_input(X1))
         => ( outputs(X4,bad)
            & halts2(X4,as_input(X1)) ) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',p3) ).

tff(f97,plain,
    ( outputs(sK9,good)
    | sP1 ),
    inference(resolution,[],[f96,f77]) ).

tff(f96,plain,
    ( halts2(sK5(sK9),as_input(sK5(sK9)))
    | sP1 ),
    inference(subsumption_resolution,[],[f95,f94]) ).

tff(f95,plain,
    ( ~ outputs(sK9,bad)
    | sP1
    | halts2(sK5(sK9),as_input(sK5(sK9))) ),
    inference(resolution,[],[f54,f74]) ).

tff(f54,plain,
    ! [X0: program] :
      ( ~ halts3(X0,sK5(X0),as_input(sK5(X0)))
      | halts2(sK5(X0),as_input(sK5(X0)))
      | sP1
      | ~ outputs(X0,bad) ),
    inference(cnf_transformation,[],[f32]) ).

tff(f131,plain,
    ( ~ halts2(sK4,as_input(sK2(sK4)))
    | ~ outputs(sK4,bad)
    | ~ sP0 ),
    inference(resolution,[],[f124,f62]) ).

tff(f62,plain,
    ! [X0: program] :
      ( ~ outputs(X0,good)
      | ~ halts2(X0,as_input(sK2(X0)))
      | ~ outputs(X0,bad)
      | ~ sP0 ),
    inference(duplicate_literal_removal,[],[f42]) ).

tff(f42,plain,
    ! [X0: program] :
      ( ~ halts2(X0,as_input(sK2(X0)))
      | ~ outputs(X0,good)
      | ~ halts2(X0,as_input(sK2(X0)))
      | ~ sP0
      | ~ outputs(X0,bad) ),
    inference(cnf_transformation,[],[f23]) ).

tff(f124,plain,
    outputs(sK4,good),
    inference(resolution,[],[f108,f109]) ).

tff(f108,plain,
    ! [X0: program] :
      ( ~ halts2(X0,as_input(X0))
      | outputs(sK4,good) ),
    inference(resolution,[],[f105,f47]) ).

tff(f47,plain,
    ! [X1: program] :
      ( ~ sP1
      | ~ halts2(X1,as_input(X1))
      | outputs(sK4,good) ),
    inference(cnf_transformation,[],[f30]) ).

tff(f136,plain,
    outputs(sK4,bad),
    inference(resolution,[],[f132,f107]) ).

tff(f107,plain,
    ! [X0: program] :
      ( halts2(X0,as_input(X0))
      | outputs(sK4,bad) ),
    inference(resolution,[],[f105,f49]) ).

tff(f49,plain,
    ! [X1: program] :
      ( ~ sP1
      | outputs(sK4,bad)
      | halts2(X1,as_input(X1)) ),
    inference(cnf_transformation,[],[f30]) ).

tff(f132,plain,
    ~ halts2(sK2(sK4),as_input(sK2(sK4))),
    inference(subsumption_resolution,[],[f128,f109]) ).

tff(f128,plain,
    ( ~ halts2(sK4,as_input(sK2(sK4)))
    | ~ halts2(sK2(sK4),as_input(sK2(sK4))) ),
    inference(resolution,[],[f124,f88]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.08/0.13  % Problem    : COM003_1 : TPTP v8.1.0. Released v5.0.0.
% 0.08/0.14  % Command    : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_tptp_sat --cores 0 -t %d %s
% 0.13/0.35  % Computer : n003.cluster.edu
% 0.13/0.35  % Model    : x86_64 x86_64
% 0.13/0.35  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.35  % Memory   : 8042.1875MB
% 0.13/0.35  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.13/0.35  % CPULimit   : 300
% 0.13/0.35  % WCLimit    : 300
% 0.13/0.35  % DateTime   : Mon Aug 29 17:01:22 EDT 2022
% 0.13/0.35  % CPUTime    : 
% 0.19/0.52  % (4635)ott+11_2:3_av=off:fde=unused:nwc=5.0:tgt=ground:i=75:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/75Mi)
% 0.19/0.52  % (4620)fmb+10_1:1_bce=on:fmbsr=1.5:nm=4:skr=on:i=191324:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/191324Mi)
% 0.19/0.52  TRYING [1]
% 0.19/0.53  % (4643)ott+11_1:1_drc=off:nwc=5.0:slsq=on:slsqc=1:spb=goal_then_units:to=lpo:i=467:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/467Mi)
% 0.19/0.53  TRYING [2]
% 0.19/0.53  % (4641)ott+3_1:1_gsp=on:lcm=predicate:i=138:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/138Mi)
% 0.19/0.53  % (4635)First to succeed.
% 0.19/0.53  TRYING [3]
% 0.19/0.53  % (4635)Refutation found. Thanks to Tanya!
% 0.19/0.53  % SZS status Theorem for theBenchmark
% 0.19/0.53  % SZS output start Proof for theBenchmark
% See solution above
% 0.19/0.53  % (4635)------------------------------
% 0.19/0.53  % (4635)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.19/0.53  % (4635)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.19/0.53  % (4635)Termination reason: Refutation
% 0.19/0.53  
% 0.19/0.53  % (4635)Memory used [KB]: 895
% 0.19/0.53  % (4635)Time elapsed: 0.126 s
% 0.19/0.53  % (4635)Instructions burned: 3 (million)
% 0.19/0.53  % (4635)------------------------------
% 0.19/0.53  % (4635)------------------------------
% 0.19/0.53  % (4619)Success in time 0.177 s
%------------------------------------------------------------------------------