TSTP Solution File: SWV233+1 by SInE---0.4

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : SInE---0.4
% Problem  : SWV233+1 : TPTP v5.0.0. Released v3.2.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : Source/sine.py -e eprover -t %d %s

% Computer : art09.cs.miami.edu
% Model    : i686 i686
% CPU      : Intel(R) Pentium(R) 4 CPU 2.80GHz @ 2793MHz
% Memory   : 2018MB
% OS       : Linux 2.6.26.8-57.fc8
% CPULimit : 300s
% DateTime : Sun Dec 26 12:25:59 EST 2010

% Result   : Theorem 0.47s
% Output   : CNFRefutation 0.47s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   51
%            Number of leaves      :   24
% Syntax   : Number of formulae    :  170 (  48 unt;   0 def)
%            Number of atoms       :  558 (  65 equ)
%            Maximal formula atoms :   21 (   3 avg)
%            Number of connectives :  766 ( 378   ~; 325   |;  46   &)
%                                         (  10 <=>;   7  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   13 (   4 avg)
%            Maximal term depth    :    8 (   2 avg)
%            Number of predicates  :   13 (  11 usr;  11 prp; 0-2 aty)
%            Number of functors    :   22 (  22 usr;   9 con; 0-2 aty)
%            Number of variables   :  255 (  48 sgn  81   !;   0   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(1,axiom,
    ! [X1,X2] :
      ( ( knows(encrypt(X1,X2))
        & knows(inverse(X2)) )
     => knows(X1) ),
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',encrypt_equation) ).

fof(2,axiom,
    ! [X1,X2] :
      ( ( knows(X1)
        & knows(X2) )
     => ( knows(concatenate(X1,X2))
        & knows(encrypt(X1,X2))
        & knows(symmetric_encrypt(X1,X2))
        & knows(decrypt(X1,X2))
        & knows(symmetric_decrypt(X1,X2))
        & knows(extract(X1,X2))
        & knows(sign(X1,X2)) ) ),
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',construct_message_1) ).

fof(3,axiom,
    ! [X3,X4] :
      ( ( knows(sign(X3,inverse(X4)))
        & knows(X4) )
     => knows(X3) ),
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',sign_equation) ).

fof(5,axiom,
    ! [X1,X2] :
      ( knows(concatenate(X1,X2))
     => ( knows(X1)
        & knows(X2) ) ),
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',construct_message_2) ).

fof(6,axiom,
    ! [X5,X6] : tail(concatenate(X5,X6)) = X6,
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',tail_axiom) ).

fof(7,axiom,
    ! [X3,X4] : decrypt(encrypt(X3,X4),inverse(X4)) = X3,
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',decrypt_axiom) ).

fof(8,axiom,
    ! [X3,X4] : extract(sign(X3,inverse(X4)),X4) = X3,
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',sign_axiom) ).

fof(9,conjecture,
    knows(secret),
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',attack) ).

fof(10,axiom,
    ! [X7,X8,X9,X10,X11] :
      ( knows(concatenate(n,concatenate(k_c,sign(concatenate(c,concatenate(k_c,eol)),inverse(k_c)))))
      & ( ( knows(X10)
          & knows(X11)
          & first(extract(X11,k_ca)) = s
          & second(extract(decrypt(X10,inverse(k_c)),second(extract(X11,k_ca)))) = n )
       => knows(symmetric_encrypt(secret,first(extract(decrypt(X10,inverse(k_c)),second(extract(X11,k_ca)))))) )
      & ( ( knows(X7)
          & knows(X8)
          & knows(X9)
          & second(extract(X9,X8)) = X8 )
       => knows(concatenate(encrypt(sign(concatenate(kgen(X8),concatenate(X7,eol)),inverse(k_s)),X8),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca)))) ) ),
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',protocol) ).

fof(12,axiom,
    ! [X5] : first(X5) = head(X5),
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',first_axiom) ).

fof(14,axiom,
    ! [X1,X2] :
      ( ( knows(symmetric_encrypt(X1,X2))
        & knows(X2) )
     => knows(X1) ),
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',symmetric_encrypt_equation) ).

fof(16,axiom,
    ! [X5,X6] : head(concatenate(X5,X6)) = X5,
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',head_axiom) ).

fof(17,axiom,
    ( knows(k_ca)
    & knows(inverse(k_a))
    & knows(k_a) ),
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',previous_knowledge) ).

fof(18,axiom,
    ! [X5] : second(X5) = head(tail(X5)),
    file('/tmp/tmpN77VOv/sel_SWV233+1.p_1',second_axiom) ).

fof(20,negated_conjecture,
    ~ knows(secret),
    inference(assume_negation,[status(cth)],[9]) ).

fof(21,negated_conjecture,
    ~ knows(secret),
    inference(fof_simplification,[status(thm)],[20,theory(equality)]) ).

fof(22,plain,
    ! [X1,X2] :
      ( ~ knows(encrypt(X1,X2))
      | ~ knows(inverse(X2))
      | knows(X1) ),
    inference(fof_nnf,[status(thm)],[1]) ).

fof(23,plain,
    ! [X3,X4] :
      ( ~ knows(encrypt(X3,X4))
      | ~ knows(inverse(X4))
      | knows(X3) ),
    inference(variable_rename,[status(thm)],[22]) ).

cnf(24,plain,
    ( knows(X1)
    | ~ knows(inverse(X2))
    | ~ knows(encrypt(X1,X2)) ),
    inference(split_conjunct,[status(thm)],[23]) ).

fof(25,plain,
    ! [X1,X2] :
      ( ~ knows(X1)
      | ~ knows(X2)
      | ( knows(concatenate(X1,X2))
        & knows(encrypt(X1,X2))
        & knows(symmetric_encrypt(X1,X2))
        & knows(decrypt(X1,X2))
        & knows(symmetric_decrypt(X1,X2))
        & knows(extract(X1,X2))
        & knows(sign(X1,X2)) ) ),
    inference(fof_nnf,[status(thm)],[2]) ).

fof(26,plain,
    ! [X3,X4] :
      ( ~ knows(X3)
      | ~ knows(X4)
      | ( knows(concatenate(X3,X4))
        & knows(encrypt(X3,X4))
        & knows(symmetric_encrypt(X3,X4))
        & knows(decrypt(X3,X4))
        & knows(symmetric_decrypt(X3,X4))
        & knows(extract(X3,X4))
        & knows(sign(X3,X4)) ) ),
    inference(variable_rename,[status(thm)],[25]) ).

fof(27,plain,
    ! [X3,X4] :
      ( ( knows(concatenate(X3,X4))
        | ~ knows(X3)
        | ~ knows(X4) )
      & ( knows(encrypt(X3,X4))
        | ~ knows(X3)
        | ~ knows(X4) )
      & ( knows(symmetric_encrypt(X3,X4))
        | ~ knows(X3)
        | ~ knows(X4) )
      & ( knows(decrypt(X3,X4))
        | ~ knows(X3)
        | ~ knows(X4) )
      & ( knows(symmetric_decrypt(X3,X4))
        | ~ knows(X3)
        | ~ knows(X4) )
      & ( knows(extract(X3,X4))
        | ~ knows(X3)
        | ~ knows(X4) )
      & ( knows(sign(X3,X4))
        | ~ knows(X3)
        | ~ knows(X4) ) ),
    inference(distribute,[status(thm)],[26]) ).

cnf(28,plain,
    ( knows(sign(X2,X1))
    | ~ knows(X1)
    | ~ knows(X2) ),
    inference(split_conjunct,[status(thm)],[27]) ).

cnf(33,plain,
    ( knows(encrypt(X2,X1))
    | ~ knows(X1)
    | ~ knows(X2) ),
    inference(split_conjunct,[status(thm)],[27]) ).

cnf(34,plain,
    ( knows(concatenate(X2,X1))
    | ~ knows(X1)
    | ~ knows(X2) ),
    inference(split_conjunct,[status(thm)],[27]) ).

fof(35,plain,
    ! [X3,X4] :
      ( ~ knows(sign(X3,inverse(X4)))
      | ~ knows(X4)
      | knows(X3) ),
    inference(fof_nnf,[status(thm)],[3]) ).

fof(36,plain,
    ! [X5,X6] :
      ( ~ knows(sign(X5,inverse(X6)))
      | ~ knows(X6)
      | knows(X5) ),
    inference(variable_rename,[status(thm)],[35]) ).

cnf(37,plain,
    ( knows(X1)
    | ~ knows(X2)
    | ~ knows(sign(X1,inverse(X2))) ),
    inference(split_conjunct,[status(thm)],[36]) ).

fof(44,plain,
    ! [X1,X2] :
      ( ~ knows(concatenate(X1,X2))
      | ( knows(X1)
        & knows(X2) ) ),
    inference(fof_nnf,[status(thm)],[5]) ).

fof(45,plain,
    ! [X3,X4] :
      ( ~ knows(concatenate(X3,X4))
      | ( knows(X3)
        & knows(X4) ) ),
    inference(variable_rename,[status(thm)],[44]) ).

fof(46,plain,
    ! [X3,X4] :
      ( ( knows(X3)
        | ~ knows(concatenate(X3,X4)) )
      & ( knows(X4)
        | ~ knows(concatenate(X3,X4)) ) ),
    inference(distribute,[status(thm)],[45]) ).

cnf(47,plain,
    ( knows(X2)
    | ~ knows(concatenate(X1,X2)) ),
    inference(split_conjunct,[status(thm)],[46]) ).

cnf(48,plain,
    ( knows(X1)
    | ~ knows(concatenate(X1,X2)) ),
    inference(split_conjunct,[status(thm)],[46]) ).

fof(49,plain,
    ! [X7,X8] : tail(concatenate(X7,X8)) = X8,
    inference(variable_rename,[status(thm)],[6]) ).

cnf(50,plain,
    tail(concatenate(X1,X2)) = X2,
    inference(split_conjunct,[status(thm)],[49]) ).

fof(51,plain,
    ! [X5,X6] : decrypt(encrypt(X5,X6),inverse(X6)) = X5,
    inference(variable_rename,[status(thm)],[7]) ).

cnf(52,plain,
    decrypt(encrypt(X1,X2),inverse(X2)) = X1,
    inference(split_conjunct,[status(thm)],[51]) ).

fof(53,plain,
    ! [X5,X6] : extract(sign(X5,inverse(X6)),X6) = X5,
    inference(variable_rename,[status(thm)],[8]) ).

cnf(54,plain,
    extract(sign(X1,inverse(X2)),X2) = X1,
    inference(split_conjunct,[status(thm)],[53]) ).

cnf(55,negated_conjecture,
    ~ knows(secret),
    inference(split_conjunct,[status(thm)],[21]) ).

fof(56,plain,
    ! [X7,X8,X9,X10,X11] :
      ( knows(concatenate(n,concatenate(k_c,sign(concatenate(c,concatenate(k_c,eol)),inverse(k_c)))))
      & ( ~ knows(X10)
        | ~ knows(X11)
        | first(extract(X11,k_ca)) != s
        | second(extract(decrypt(X10,inverse(k_c)),second(extract(X11,k_ca)))) != n
        | knows(symmetric_encrypt(secret,first(extract(decrypt(X10,inverse(k_c)),second(extract(X11,k_ca)))))) )
      & ( ~ knows(X7)
        | ~ knows(X8)
        | ~ knows(X9)
        | second(extract(X9,X8)) != X8
        | knows(concatenate(encrypt(sign(concatenate(kgen(X8),concatenate(X7,eol)),inverse(k_s)),X8),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca)))) ) ),
    inference(fof_nnf,[status(thm)],[10]) ).

fof(57,plain,
    ! [X12,X13,X14,X15,X16] :
      ( knows(concatenate(n,concatenate(k_c,sign(concatenate(c,concatenate(k_c,eol)),inverse(k_c)))))
      & ( ~ knows(X15)
        | ~ knows(X16)
        | first(extract(X16,k_ca)) != s
        | second(extract(decrypt(X15,inverse(k_c)),second(extract(X16,k_ca)))) != n
        | knows(symmetric_encrypt(secret,first(extract(decrypt(X15,inverse(k_c)),second(extract(X16,k_ca)))))) )
      & ( ~ knows(X12)
        | ~ knows(X13)
        | ~ knows(X14)
        | second(extract(X14,X13)) != X13
        | knows(concatenate(encrypt(sign(concatenate(kgen(X13),concatenate(X12,eol)),inverse(k_s)),X13),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca)))) ) ),
    inference(variable_rename,[status(thm)],[56]) ).

cnf(58,plain,
    ( knows(concatenate(encrypt(sign(concatenate(kgen(X1),concatenate(X2,eol)),inverse(k_s)),X1),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca))))
    | second(extract(X3,X1)) != X1
    | ~ knows(X3)
    | ~ knows(X1)
    | ~ knows(X2) ),
    inference(split_conjunct,[status(thm)],[57]) ).

cnf(59,plain,
    ( knows(symmetric_encrypt(secret,first(extract(decrypt(X1,inverse(k_c)),second(extract(X2,k_ca))))))
    | second(extract(decrypt(X1,inverse(k_c)),second(extract(X2,k_ca)))) != n
    | first(extract(X2,k_ca)) != s
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(split_conjunct,[status(thm)],[57]) ).

cnf(60,plain,
    knows(concatenate(n,concatenate(k_c,sign(concatenate(c,concatenate(k_c,eol)),inverse(k_c))))),
    inference(split_conjunct,[status(thm)],[57]) ).

fof(64,plain,
    ! [X6] : first(X6) = head(X6),
    inference(variable_rename,[status(thm)],[12]) ).

cnf(65,plain,
    first(X1) = head(X1),
    inference(split_conjunct,[status(thm)],[64]) ).

fof(68,plain,
    ! [X1,X2] :
      ( ~ knows(symmetric_encrypt(X1,X2))
      | ~ knows(X2)
      | knows(X1) ),
    inference(fof_nnf,[status(thm)],[14]) ).

fof(69,plain,
    ! [X3,X4] :
      ( ~ knows(symmetric_encrypt(X3,X4))
      | ~ knows(X4)
      | knows(X3) ),
    inference(variable_rename,[status(thm)],[68]) ).

cnf(70,plain,
    ( knows(X1)
    | ~ knows(X2)
    | ~ knows(symmetric_encrypt(X1,X2)) ),
    inference(split_conjunct,[status(thm)],[69]) ).

fof(73,plain,
    ! [X7,X8] : head(concatenate(X7,X8)) = X7,
    inference(variable_rename,[status(thm)],[16]) ).

cnf(74,plain,
    head(concatenate(X1,X2)) = X1,
    inference(split_conjunct,[status(thm)],[73]) ).

cnf(75,plain,
    knows(k_a),
    inference(split_conjunct,[status(thm)],[17]) ).

cnf(76,plain,
    knows(inverse(k_a)),
    inference(split_conjunct,[status(thm)],[17]) ).

cnf(77,plain,
    knows(k_ca),
    inference(split_conjunct,[status(thm)],[17]) ).

fof(78,plain,
    ! [X6] : second(X6) = head(tail(X6)),
    inference(variable_rename,[status(thm)],[18]) ).

cnf(79,plain,
    second(X1) = head(tail(X1)),
    inference(split_conjunct,[status(thm)],[78]) ).

cnf(82,plain,
    ( knows(symmetric_encrypt(secret,head(extract(decrypt(X1,inverse(k_c)),second(extract(X2,k_ca))))))
    | head(extract(X2,k_ca)) != s
    | second(extract(decrypt(X1,inverse(k_c)),second(extract(X2,k_ca)))) != n
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(rw,[status(thm)],[inference(rw,[status(thm)],[59,65,theory(equality)]),65,theory(equality)]),
    [unfolding] ).

cnf(83,plain,
    ( knows(concatenate(encrypt(sign(concatenate(kgen(X1),concatenate(X2,eol)),inverse(k_s)),X1),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca))))
    | head(tail(extract(X3,X1))) != X1
    | ~ knows(X3)
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(rw,[status(thm)],[58,79,theory(equality)]),
    [unfolding] ).

cnf(84,plain,
    ( knows(symmetric_encrypt(secret,head(extract(decrypt(X1,inverse(k_c)),head(tail(extract(X2,k_ca)))))))
    | head(extract(X2,k_ca)) != s
    | head(tail(extract(decrypt(X1,inverse(k_c)),head(tail(extract(X2,k_ca)))))) != n
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[82,79,theory(equality)]),79,theory(equality)]),79,theory(equality)]),
    [unfolding] ).

cnf(95,plain,
    knows(concatenate(k_c,sign(concatenate(c,concatenate(k_c,eol)),inverse(k_c)))),
    inference(spm,[status(thm)],[47,60,theory(equality)]) ).

cnf(96,plain,
    knows(n),
    inference(spm,[status(thm)],[48,60,theory(equality)]) ).

cnf(97,plain,
    ( knows(concatenate(encrypt(sign(concatenate(kgen(X1),concatenate(X2,eol)),inverse(k_s)),X1),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca))))
    | head(tail(X3)) != X1
    | ~ knows(sign(X3,inverse(X1)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[83,54,theory(equality)]) ).

cnf(100,plain,
    ( knows(secret)
    | ~ knows(head(extract(decrypt(X1,inverse(k_c)),head(tail(extract(X2,k_ca))))))
    | head(tail(extract(decrypt(X1,inverse(k_c)),head(tail(extract(X2,k_ca)))))) != n
    | head(extract(X2,k_ca)) != s
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[70,84,theory(equality)]) ).

cnf(101,plain,
    ( ~ knows(head(extract(decrypt(X1,inverse(k_c)),head(tail(extract(X2,k_ca))))))
    | head(tail(extract(decrypt(X1,inverse(k_c)),head(tail(extract(X2,k_ca)))))) != n
    | head(extract(X2,k_ca)) != s
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(sr,[status(thm)],[100,55,theory(equality)]) ).

cnf(102,plain,
    ( head(tail(extract(X1,head(tail(extract(X2,k_ca)))))) != n
    | head(extract(X2,k_ca)) != s
    | ~ knows(head(extract(X1,head(tail(extract(X2,k_ca))))))
    | ~ knows(X2)
    | ~ knows(encrypt(X1,k_c)) ),
    inference(spm,[status(thm)],[101,52,theory(equality)]) ).

cnf(105,plain,
    ( head(tail(X1)) != n
    | head(extract(X2,k_ca)) != s
    | ~ knows(head(X1))
    | ~ knows(encrypt(sign(X1,inverse(head(tail(extract(X2,k_ca))))),k_c))
    | ~ knows(X2) ),
    inference(spm,[status(thm)],[102,54,theory(equality)]) ).

cnf(106,plain,
    ( head(X1) != s
    | head(tail(X2)) != n
    | ~ knows(encrypt(sign(X2,inverse(head(tail(X1)))),k_c))
    | ~ knows(head(X2))
    | ~ knows(sign(X1,inverse(k_ca))) ),
    inference(spm,[status(thm)],[105,54,theory(equality)]) ).

cnf(109,plain,
    ( head(tail(X1)) != n
    | head(X2) != s
    | ~ knows(sign(X2,inverse(k_ca)))
    | ~ knows(head(X1))
    | ~ knows(sign(X1,inverse(head(tail(X2)))))
    | ~ knows(k_c) ),
    inference(spm,[status(thm)],[106,33,theory(equality)]) ).

cnf(124,plain,
    knows(sign(concatenate(c,concatenate(k_c,eol)),inverse(k_c))),
    inference(spm,[status(thm)],[47,95,theory(equality)]) ).

cnf(125,plain,
    knows(k_c),
    inference(spm,[status(thm)],[48,95,theory(equality)]) ).

cnf(137,plain,
    ( head(tail(X1)) != n
    | head(X2) != s
    | ~ knows(sign(X1,inverse(head(tail(X2)))))
    | ~ knows(sign(X2,inverse(k_ca)))
    | ~ knows(head(X1))
    | $false ),
    inference(rw,[status(thm)],[109,125,theory(equality)]) ).

cnf(138,plain,
    ( head(tail(X1)) != n
    | head(X2) != s
    | ~ knows(sign(X1,inverse(head(tail(X2)))))
    | ~ knows(sign(X2,inverse(k_ca)))
    | ~ knows(head(X1)) ),
    inference(cn,[status(thm)],[137,theory(equality)]) ).

cnf(173,plain,
    ( head(tail(X1)) != n
    | head(concatenate(X2,X3)) != s
    | ~ knows(sign(X1,inverse(head(X3))))
    | ~ knows(sign(concatenate(X2,X3),inverse(k_ca)))
    | ~ knows(head(X1)) ),
    inference(spm,[status(thm)],[138,50,theory(equality)]) ).

cnf(175,plain,
    ( head(tail(X1)) != n
    | X2 != s
    | ~ knows(sign(X1,inverse(head(X3))))
    | ~ knows(sign(concatenate(X2,X3),inverse(k_ca)))
    | ~ knows(head(X1)) ),
    inference(rw,[status(thm)],[173,74,theory(equality)]) ).

cnf(176,plain,
    ( knows(concatenate(encrypt(sign(concatenate(kgen(k_c),concatenate(X1,eol)),inverse(k_s)),k_c),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca))))
    | head(tail(concatenate(c,concatenate(k_c,eol)))) != k_c
    | ~ knows(X1)
    | ~ knows(k_c) ),
    inference(spm,[status(thm)],[97,124,theory(equality)]) ).

cnf(177,plain,
    ( knows(concatenate(encrypt(sign(concatenate(kgen(X1),concatenate(X2,eol)),inverse(k_s)),X1),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca))))
    | head(tail(X3)) != X1
    | ~ knows(X2)
    | ~ knows(X1)
    | ~ knows(X3)
    | ~ knows(inverse(X1)) ),
    inference(spm,[status(thm)],[97,28,theory(equality)]) ).

cnf(178,plain,
    ( knows(concatenate(encrypt(sign(concatenate(kgen(k_c),concatenate(X1,eol)),inverse(k_s)),k_c),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca))))
    | $false
    | ~ knows(X1)
    | ~ knows(k_c) ),
    inference(rw,[status(thm)],[inference(rw,[status(thm)],[176,50,theory(equality)]),74,theory(equality)]) ).

cnf(179,plain,
    ( knows(concatenate(encrypt(sign(concatenate(kgen(k_c),concatenate(X1,eol)),inverse(k_s)),k_c),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca))))
    | $false
    | ~ knows(X1)
    | $false ),
    inference(rw,[status(thm)],[178,125,theory(equality)]) ).

cnf(180,plain,
    ( knows(concatenate(encrypt(sign(concatenate(kgen(k_c),concatenate(X1,eol)),inverse(k_s)),k_c),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca))))
    | ~ knows(X1) ),
    inference(cn,[status(thm)],[179,theory(equality)]) ).

cnf(380,plain,
    ( knows(sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca)))
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[47,180,theory(equality)]) ).

cnf(391,plain,
    ( knows(concatenate(encrypt(sign(concatenate(kgen(head(tail(X1))),concatenate(X2,eol)),inverse(k_s)),head(tail(X1))),sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca))))
    | ~ knows(inverse(head(tail(X1))))
    | ~ knows(X2)
    | ~ knows(head(tail(X1)))
    | ~ knows(X1) ),
    inference(er,[status(thm)],[177,theory(equality)]) ).

cnf(435,plain,
    knows(sign(concatenate(s,concatenate(k_s,eol)),inverse(k_ca))),
    inference(spm,[status(thm)],[380,77,theory(equality)]) ).

cnf(463,plain,
    ( knows(concatenate(s,concatenate(k_s,eol)))
    | ~ knows(k_ca) ),
    inference(spm,[status(thm)],[37,435,theory(equality)]) ).

cnf(466,plain,
    ( head(tail(X1)) != n
    | ~ knows(sign(X1,inverse(head(concatenate(k_s,eol)))))
    | ~ knows(head(X1)) ),
    inference(spm,[status(thm)],[175,435,theory(equality)]) ).

cnf(472,plain,
    ( knows(concatenate(s,concatenate(k_s,eol)))
    | $false ),
    inference(rw,[status(thm)],[463,77,theory(equality)]) ).

cnf(473,plain,
    knows(concatenate(s,concatenate(k_s,eol))),
    inference(cn,[status(thm)],[472,theory(equality)]) ).

cnf(478,plain,
    ( head(tail(X1)) != n
    | ~ knows(sign(X1,inverse(k_s)))
    | ~ knows(head(X1)) ),
    inference(rw,[status(thm)],[466,74,theory(equality)]) ).

cnf(490,plain,
    knows(concatenate(k_s,eol)),
    inference(spm,[status(thm)],[47,473,theory(equality)]) ).

cnf(541,plain,
    knows(k_s),
    inference(spm,[status(thm)],[48,490,theory(equality)]) ).

cnf(897,plain,
    ( knows(encrypt(sign(concatenate(kgen(head(tail(X1))),concatenate(X2,eol)),inverse(k_s)),head(tail(X1))))
    | ~ knows(inverse(head(tail(X1))))
    | ~ knows(head(tail(X1)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[48,391,theory(equality)]) ).

cnf(1230,plain,
    ( knows(sign(concatenate(kgen(head(tail(X1))),concatenate(X2,eol)),inverse(k_s)))
    | ~ knows(inverse(head(tail(X1))))
    | ~ knows(head(tail(X1)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[24,897,theory(equality)]) ).

cnf(1293,plain,
    ( knows(concatenate(kgen(head(tail(X1))),concatenate(X2,eol)))
    | ~ knows(k_s)
    | ~ knows(inverse(head(tail(X1))))
    | ~ knows(head(tail(X1)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[37,1230,theory(equality)]) ).

cnf(1295,plain,
    ( head(tail(concatenate(kgen(head(tail(X1))),concatenate(X2,eol)))) != n
    | ~ knows(head(concatenate(kgen(head(tail(X1))),concatenate(X2,eol))))
    | ~ knows(inverse(head(tail(X1))))
    | ~ knows(head(tail(X1)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[478,1230,theory(equality)]) ).

cnf(1300,plain,
    ( knows(concatenate(kgen(head(tail(X1))),concatenate(X2,eol)))
    | $false
    | ~ knows(inverse(head(tail(X1))))
    | ~ knows(head(tail(X1)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(rw,[status(thm)],[1293,541,theory(equality)]) ).

cnf(1301,plain,
    ( knows(concatenate(kgen(head(tail(X1))),concatenate(X2,eol)))
    | ~ knows(inverse(head(tail(X1))))
    | ~ knows(head(tail(X1)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(cn,[status(thm)],[1300,theory(equality)]) ).

cnf(1305,plain,
    ( X2 != n
    | ~ knows(head(concatenate(kgen(head(tail(X1))),concatenate(X2,eol))))
    | ~ knows(inverse(head(tail(X1))))
    | ~ knows(head(tail(X1)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(rw,[status(thm)],[inference(rw,[status(thm)],[1295,50,theory(equality)]),74,theory(equality)]) ).

cnf(1306,plain,
    ( X2 != n
    | ~ knows(kgen(head(tail(X1))))
    | ~ knows(inverse(head(tail(X1))))
    | ~ knows(head(tail(X1)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(rw,[status(thm)],[1305,74,theory(equality)]) ).

fof(1321,plain,
    ( ~ epred17_0
  <=> ! [X2] :
        ( ~ knows(X2)
        | X2 != n ) ),
    introduced(definition),
    [split] ).

cnf(1322,plain,
    ( epred17_0
    | ~ knows(X2)
    | X2 != n ),
    inference(split_equiv,[status(thm)],[1321]) ).

fof(1323,plain,
    ( ~ epred18_0
  <=> ! [X1] :
        ( ~ knows(X1)
        | ~ knows(head(tail(X1)))
        | ~ knows(inverse(head(tail(X1))))
        | ~ knows(kgen(head(tail(X1)))) ) ),
    introduced(definition),
    [split] ).

cnf(1324,plain,
    ( epred18_0
    | ~ knows(X1)
    | ~ knows(head(tail(X1)))
    | ~ knows(inverse(head(tail(X1))))
    | ~ knows(kgen(head(tail(X1)))) ),
    inference(split_equiv,[status(thm)],[1323]) ).

cnf(1325,plain,
    ( ~ epred18_0
    | ~ epred17_0 ),
    inference(apply_def,[status(esa)],[inference(apply_def,[status(esa)],[1306,1321,theory(equality)]),1323,theory(equality)]),
    [split] ).

cnf(1330,plain,
    epred17_0,
    inference(spm,[status(thm)],[1322,96,theory(equality)]) ).

cnf(1378,plain,
    ( ~ epred18_0
    | $false ),
    inference(rw,[status(thm)],[1325,1330,theory(equality)]) ).

cnf(1379,plain,
    ~ epred18_0,
    inference(cn,[status(thm)],[1378,theory(equality)]) ).

cnf(1380,plain,
    ( epred18_0
    | ~ knows(inverse(head(X2)))
    | ~ knows(kgen(head(X2)))
    | ~ knows(head(X2))
    | ~ knows(concatenate(X1,X2)) ),
    inference(spm,[status(thm)],[1324,50,theory(equality)]) ).

cnf(1381,plain,
    ( epred18_0
    | ~ knows(inverse(X1))
    | ~ knows(kgen(X1))
    | ~ knows(concatenate(X3,concatenate(X1,X2)))
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[1380,74,theory(equality)]) ).

cnf(1385,plain,
    ( epred18_0
    | ~ knows(inverse(X2))
    | ~ knows(kgen(X2))
    | ~ knows(X2)
    | ~ knows(X1)
    | ~ knows(concatenate(X2,X3)) ),
    inference(spm,[status(thm)],[1381,34,theory(equality)]) ).

cnf(1404,plain,
    ( ~ knows(inverse(X2))
    | ~ knows(kgen(X2))
    | ~ knows(X2)
    | ~ knows(X1)
    | ~ knows(concatenate(X2,X3)) ),
    inference(sr,[status(thm)],[1385,1379,theory(equality)]) ).

cnf(1405,plain,
    ( ~ knows(concatenate(X2,X3))
    | ~ knows(inverse(X2))
    | ~ knows(kgen(X2))
    | ~ knows(X1) ),
    inference(csr,[status(thm)],[1404,48]) ).

fof(1406,plain,
    ( ~ epred19_0
  <=> ! [X3,X2] :
        ( ~ knows(kgen(X2))
        | ~ knows(inverse(X2))
        | ~ knows(concatenate(X2,X3)) ) ),
    introduced(definition),
    [split] ).

cnf(1407,plain,
    ( epred19_0
    | ~ knows(kgen(X2))
    | ~ knows(inverse(X2))
    | ~ knows(concatenate(X2,X3)) ),
    inference(split_equiv,[status(thm)],[1406]) ).

fof(1408,plain,
    ( ~ epred20_0
  <=> ! [X1] : ~ knows(X1) ),
    introduced(definition),
    [split] ).

cnf(1409,plain,
    ( epred20_0
    | ~ knows(X1) ),
    inference(split_equiv,[status(thm)],[1408]) ).

cnf(1410,plain,
    ( ~ epred20_0
    | ~ epred19_0 ),
    inference(apply_def,[status(esa)],[inference(apply_def,[status(esa)],[1405,1406,theory(equality)]),1408,theory(equality)]),
    [split] ).

cnf(1411,plain,
    epred20_0,
    inference(spm,[status(thm)],[1409,77,theory(equality)]) ).

cnf(1470,plain,
    ( epred19_0
    | ~ knows(kgen(X1))
    | ~ knows(inverse(X1))
    | ~ knows(X1)
    | ~ knows(X2) ),
    inference(spm,[status(thm)],[1407,34,theory(equality)]) ).

cnf(1476,plain,
    ( $false
    | ~ epred19_0 ),
    inference(rw,[status(thm)],[1410,1411,theory(equality)]) ).

cnf(1477,plain,
    ~ epred19_0,
    inference(cn,[status(thm)],[1476,theory(equality)]) ).

cnf(1484,plain,
    ( ~ knows(kgen(X1))
    | ~ knows(inverse(X1))
    | ~ knows(X1)
    | ~ knows(X2) ),
    inference(sr,[status(thm)],[1470,1477,theory(equality)]) ).

fof(1485,plain,
    ( ~ epred21_0
  <=> ! [X1] :
        ( ~ knows(X1)
        | ~ knows(inverse(X1))
        | ~ knows(kgen(X1)) ) ),
    introduced(definition),
    [split] ).

cnf(1486,plain,
    ( epred21_0
    | ~ knows(X1)
    | ~ knows(inverse(X1))
    | ~ knows(kgen(X1)) ),
    inference(split_equiv,[status(thm)],[1485]) ).

fof(1487,plain,
    ( ~ epred22_0
  <=> ! [X2] : ~ knows(X2) ),
    introduced(definition),
    [split] ).

cnf(1488,plain,
    ( epred22_0
    | ~ knows(X2) ),
    inference(split_equiv,[status(thm)],[1487]) ).

cnf(1489,plain,
    ( ~ epred22_0
    | ~ epred21_0 ),
    inference(apply_def,[status(esa)],[inference(apply_def,[status(esa)],[1484,1485,theory(equality)]),1487,theory(equality)]),
    [split] ).

cnf(1501,plain,
    epred22_0,
    inference(spm,[status(thm)],[1488,77,theory(equality)]) ).

cnf(1555,plain,
    ( $false
    | ~ epred21_0 ),
    inference(rw,[status(thm)],[1489,1501,theory(equality)]) ).

cnf(1556,plain,
    ~ epred21_0,
    inference(cn,[status(thm)],[1555,theory(equality)]) ).

cnf(1557,plain,
    ( ~ knows(X1)
    | ~ knows(inverse(X1))
    | ~ knows(kgen(X1)) ),
    inference(sr,[status(thm)],[1486,1556,theory(equality)]) ).

cnf(2229,plain,
    ( knows(concatenate(X1,eol))
    | ~ knows(inverse(head(tail(X2))))
    | ~ knows(head(tail(X2)))
    | ~ knows(X1)
    | ~ knows(X2) ),
    inference(spm,[status(thm)],[47,1301,theory(equality)]) ).

cnf(2230,plain,
    ( knows(kgen(head(tail(X1))))
    | ~ knows(inverse(head(tail(X1))))
    | ~ knows(head(tail(X1)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[48,1301,theory(equality)]) ).

cnf(2255,plain,
    ( knows(concatenate(X1,eol))
    | ~ knows(inverse(head(X3)))
    | ~ knows(head(X3))
    | ~ knows(X1)
    | ~ knows(concatenate(X2,X3)) ),
    inference(spm,[status(thm)],[2229,50,theory(equality)]) ).

cnf(2256,plain,
    ( knows(concatenate(X1,eol))
    | ~ knows(inverse(X2))
    | ~ knows(concatenate(X4,concatenate(X2,X3)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[2255,74,theory(equality)]) ).

cnf(2260,plain,
    ( knows(concatenate(X1,eol))
    | ~ knows(inverse(X3))
    | ~ knows(X3)
    | ~ knows(X1)
    | ~ knows(X2)
    | ~ knows(concatenate(X3,X4)) ),
    inference(spm,[status(thm)],[2256,34,theory(equality)]) ).

cnf(2446,plain,
    ( knows(concatenate(X1,eol))
    | ~ knows(concatenate(X3,X4))
    | ~ knows(inverse(X3))
    | ~ knows(X1)
    | ~ knows(X2) ),
    inference(csr,[status(thm)],[2260,48]) ).

cnf(2453,plain,
    ( knows(concatenate(X1,eol))
    | ~ knows(inverse(X2))
    | ~ knows(X1)
    | ~ knows(X4)
    | ~ knows(X2)
    | ~ knows(X3) ),
    inference(spm,[status(thm)],[2446,34,theory(equality)]) ).

cnf(2577,plain,
    ( knows(concatenate(X1,eol))
    | ~ knows(X1)
    | ~ knows(X2)
    | ~ knows(k_a)
    | ~ knows(X3) ),
    inference(spm,[status(thm)],[2453,76,theory(equality)]) ).

cnf(2578,plain,
    ( knows(concatenate(X1,eol))
    | ~ knows(X1)
    | ~ knows(X2)
    | $false
    | ~ knows(X3) ),
    inference(rw,[status(thm)],[2577,75,theory(equality)]) ).

cnf(2579,plain,
    ( knows(concatenate(X1,eol))
    | ~ knows(X1)
    | ~ knows(X2)
    | ~ knows(X3) ),
    inference(cn,[status(thm)],[2578,theory(equality)]) ).

cnf(2580,plain,
    ( knows(concatenate(X1,eol))
    | ~ knows(X1)
    | ~ knows(X2) ),
    inference(spm,[status(thm)],[2579,77,theory(equality)]) ).

cnf(2641,plain,
    ( knows(concatenate(X1,eol))
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[2580,77,theory(equality)]) ).

cnf(2745,plain,
    ( ~ knows(inverse(head(tail(X1))))
    | ~ knows(head(tail(X1)))
    | ~ knows(X2)
    | ~ knows(X1) ),
    inference(csr,[status(thm)],[2230,1557]) ).

fof(2746,plain,
    ( ~ epred33_0
  <=> ! [X1] :
        ( ~ knows(X1)
        | ~ knows(head(tail(X1)))
        | ~ knows(inverse(head(tail(X1)))) ) ),
    introduced(definition),
    [split] ).

cnf(2747,plain,
    ( epred33_0
    | ~ knows(X1)
    | ~ knows(head(tail(X1)))
    | ~ knows(inverse(head(tail(X1)))) ),
    inference(split_equiv,[status(thm)],[2746]) ).

fof(2748,plain,
    ( ~ epred34_0
  <=> ! [X2] : ~ knows(X2) ),
    introduced(definition),
    [split] ).

cnf(2749,plain,
    ( epred34_0
    | ~ knows(X2) ),
    inference(split_equiv,[status(thm)],[2748]) ).

cnf(2750,plain,
    ( ~ epred34_0
    | ~ epred33_0 ),
    inference(apply_def,[status(esa)],[inference(apply_def,[status(esa)],[2745,2746,theory(equality)]),2748,theory(equality)]),
    [split] ).

cnf(2751,plain,
    epred34_0,
    inference(spm,[status(thm)],[2749,77,theory(equality)]) ).

cnf(2816,plain,
    ( $false
    | ~ epred33_0 ),
    inference(rw,[status(thm)],[2750,2751,theory(equality)]) ).

cnf(2817,plain,
    ~ epred33_0,
    inference(cn,[status(thm)],[2816,theory(equality)]) ).

cnf(2824,plain,
    ( ~ knows(X1)
    | ~ knows(head(tail(X1)))
    | ~ knows(inverse(head(tail(X1)))) ),
    inference(sr,[status(thm)],[2747,2817,theory(equality)]) ).

cnf(2825,plain,
    ( ~ knows(inverse(head(X2)))
    | ~ knows(head(X2))
    | ~ knows(concatenate(X1,X2)) ),
    inference(spm,[status(thm)],[2824,50,theory(equality)]) ).

cnf(2831,plain,
    ( ~ knows(inverse(X1))
    | ~ knows(concatenate(X3,concatenate(X1,X2)))
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[2825,74,theory(equality)]) ).

cnf(2897,plain,
    ( ~ knows(inverse(X2))
    | ~ knows(X2)
    | ~ knows(X1)
    | ~ knows(concatenate(X2,X3)) ),
    inference(spm,[status(thm)],[2831,34,theory(equality)]) ).

cnf(2913,plain,
    ( ~ knows(concatenate(X2,X3))
    | ~ knows(inverse(X2))
    | ~ knows(X1) ),
    inference(csr,[status(thm)],[2897,48]) ).

fof(2914,plain,
    ( ~ epred35_0
  <=> ! [X3,X2] :
        ( ~ knows(inverse(X2))
        | ~ knows(concatenate(X2,X3)) ) ),
    introduced(definition),
    [split] ).

cnf(2915,plain,
    ( epred35_0
    | ~ knows(inverse(X2))
    | ~ knows(concatenate(X2,X3)) ),
    inference(split_equiv,[status(thm)],[2914]) ).

fof(2916,plain,
    ( ~ epred36_0
  <=> ! [X1] : ~ knows(X1) ),
    introduced(definition),
    [split] ).

cnf(2917,plain,
    ( epred36_0
    | ~ knows(X1) ),
    inference(split_equiv,[status(thm)],[2916]) ).

cnf(2918,plain,
    ( ~ epred36_0
    | ~ epred35_0 ),
    inference(apply_def,[status(esa)],[inference(apply_def,[status(esa)],[2913,2914,theory(equality)]),2916,theory(equality)]),
    [split] ).

cnf(2919,plain,
    epred36_0,
    inference(spm,[status(thm)],[2917,77,theory(equality)]) ).

cnf(2982,plain,
    ( $false
    | ~ epred35_0 ),
    inference(rw,[status(thm)],[2918,2919,theory(equality)]) ).

cnf(2983,plain,
    ~ epred35_0,
    inference(cn,[status(thm)],[2982,theory(equality)]) ).

cnf(2984,plain,
    ( ~ knows(inverse(X2))
    | ~ knows(concatenate(X2,X3)) ),
    inference(sr,[status(thm)],[2915,2983,theory(equality)]) ).

cnf(2996,plain,
    ( ~ knows(inverse(X1))
    | ~ knows(X1) ),
    inference(spm,[status(thm)],[2984,2641,theory(equality)]) ).

cnf(3012,plain,
    ~ knows(k_a),
    inference(spm,[status(thm)],[2996,76,theory(equality)]) ).

cnf(3013,plain,
    $false,
    inference(rw,[status(thm)],[3012,75,theory(equality)]) ).

cnf(3014,plain,
    $false,
    inference(cn,[status(thm)],[3013,theory(equality)]) ).

cnf(3015,plain,
    $false,
    3014,
    [proof] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% % SZS status Started for /home/graph/tptp/TPTP/Problems/SWV/SWV233+1.p
% --creating new selector for []
% -running prover on /tmp/tmpN77VOv/sel_SWV233+1.p_1 with time limit 29
% -prover status Theorem
% Problem SWV233+1.p solved in phase 0.
% % SZS status Theorem for /home/graph/tptp/TPTP/Problems/SWV/SWV233+1.p
% % SZS status Ended for /home/graph/tptp/TPTP/Problems/SWV/SWV233+1.p
% Solved 1 out of 1.
% # Problem is unsatisfiable (or provable), constructing proof object
% # SZS status Theorem
% # SZS output start CNFRefutation.
% See solution above
% # SZS output end CNFRefutation
% 
%------------------------------------------------------------------------------