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

View Problem - Process Solution

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

% Computer : art05.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 11:49:12 EST 2010

% Result   : Theorem 0.17s
% Output   : CNFRefutation 0.17s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   25
%            Number of leaves      :   14
% Syntax   : Number of formulae    :   85 (  19 unt;   0 def)
%            Number of atoms       :  221 (   0 equ)
%            Maximal formula atoms :    6 (   2 avg)
%            Number of connectives :  235 (  99   ~; 101   |;  26   &)
%                                         (   0 <=>;   9  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    8 (   4 avg)
%            Maximal term depth    :    6 (   2 avg)
%            Number of predicates  :    8 (   7 usr;   1 prp; 0-1 aty)
%            Number of functors    :   12 (  12 usr;   5 con; 0-3 aty)
%            Number of variables   :  123 (   8 sgn  78   !;   2   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(1,axiom,
    ! [X1,X2] :
      ( ( message(sent(X1,b,pair(X1,X2)))
        & fresh_to_b(X2) )
     => ( message(sent(b,t,triple(b,generate_b_nonce(X2),encrypt(triple(X1,X2,generate_expiration_time(X2)),bt))))
        & b_stored(pair(X1,X2)) ) ),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',b_creates_freash_nonces_in_time) ).

fof(2,axiom,
    ! [X1,X2,X3] :
      ( ( intruder_message(X1)
        & intruder_holds(key(X2,X3))
        & party_of_protocol(X3) )
     => intruder_message(encrypt(X1,X2)) ),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',intruder_key_encrypts) ).

fof(7,axiom,
    fresh_to_b(an_a_nonce),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',nonce_a_is_fresh_to_b) ).

fof(9,conjecture,
    ? [X1] :
      ( intruder_holds(key(X1,b))
      & b_holds(key(X1,a)) ),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',co1) ).

fof(10,axiom,
    ! [X1,X2,X3] :
      ( message(sent(X1,X2,X3))
     => intruder_message(X3) ),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',intruder_can_record) ).

fof(11,axiom,
    ! [X1,X2,X3] :
      ( intruder_message(triple(X1,X2,X3))
     => ( intruder_message(X1)
        & intruder_message(X2)
        & intruder_message(X3) ) ),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',intruder_decomposes_triples) ).

fof(14,axiom,
    party_of_protocol(b),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',b_is_party_of_protocol) ).

fof(15,axiom,
    ! [X2,X3] :
      ( ( intruder_message(X2)
        & party_of_protocol(X3) )
     => intruder_holds(key(X2,X3)) ),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',intruder_holds_key) ).

fof(16,axiom,
    ! [X2,X4,X5] :
      ( ( message(sent(X4,b,pair(encrypt(triple(X4,X2,generate_expiration_time(X5)),bt),encrypt(generate_b_nonce(X5),X2))))
        & b_stored(pair(X4,X5)) )
     => b_holds(key(X2,X4)) ),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',b_accepts_secure_session_key) ).

fof(17,axiom,
    message(sent(a,b,pair(a,an_a_nonce))),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',a_sent_message_i_to_b) ).

fof(18,axiom,
    ! [X1,X2] :
      ( ( intruder_message(X1)
        & intruder_message(X2) )
     => intruder_message(pair(X1,X2)) ),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',intruder_composes_pairs) ).

fof(19,axiom,
    party_of_protocol(a),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',a_is_party_of_protocol) ).

fof(27,axiom,
    ! [X1,X2] :
      ( intruder_message(pair(X1,X2))
     => ( intruder_message(X1)
        & intruder_message(X2) ) ),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',intruder_decomposes_pairs) ).

fof(29,axiom,
    ! [X1,X2,X3] :
      ( ( intruder_message(X1)
        & party_of_protocol(X2)
        & party_of_protocol(X3) )
     => message(sent(X2,X3,X1)) ),
    file('/tmp/tmpgHQHHb/sel_SWV014+1.p_1',intruder_message_sent) ).

fof(30,negated_conjecture,
    ~ ? [X1] :
        ( intruder_holds(key(X1,b))
        & b_holds(key(X1,a)) ),
    inference(assume_negation,[status(cth)],[9]) ).

fof(32,plain,
    ! [X1,X2] :
      ( ~ message(sent(X1,b,pair(X1,X2)))
      | ~ fresh_to_b(X2)
      | ( message(sent(b,t,triple(b,generate_b_nonce(X2),encrypt(triple(X1,X2,generate_expiration_time(X2)),bt))))
        & b_stored(pair(X1,X2)) ) ),
    inference(fof_nnf,[status(thm)],[1]) ).

fof(33,plain,
    ! [X3,X4] :
      ( ~ message(sent(X3,b,pair(X3,X4)))
      | ~ fresh_to_b(X4)
      | ( message(sent(b,t,triple(b,generate_b_nonce(X4),encrypt(triple(X3,X4,generate_expiration_time(X4)),bt))))
        & b_stored(pair(X3,X4)) ) ),
    inference(variable_rename,[status(thm)],[32]) ).

fof(34,plain,
    ! [X3,X4] :
      ( ( message(sent(b,t,triple(b,generate_b_nonce(X4),encrypt(triple(X3,X4,generate_expiration_time(X4)),bt))))
        | ~ message(sent(X3,b,pair(X3,X4)))
        | ~ fresh_to_b(X4) )
      & ( b_stored(pair(X3,X4))
        | ~ message(sent(X3,b,pair(X3,X4)))
        | ~ fresh_to_b(X4) ) ),
    inference(distribute,[status(thm)],[33]) ).

cnf(35,plain,
    ( b_stored(pair(X2,X1))
    | ~ fresh_to_b(X1)
    | ~ message(sent(X2,b,pair(X2,X1))) ),
    inference(split_conjunct,[status(thm)],[34]) ).

cnf(36,plain,
    ( message(sent(b,t,triple(b,generate_b_nonce(X1),encrypt(triple(X2,X1,generate_expiration_time(X1)),bt))))
    | ~ fresh_to_b(X1)
    | ~ message(sent(X2,b,pair(X2,X1))) ),
    inference(split_conjunct,[status(thm)],[34]) ).

fof(37,plain,
    ! [X1,X2,X3] :
      ( ~ intruder_message(X1)
      | ~ intruder_holds(key(X2,X3))
      | ~ party_of_protocol(X3)
      | intruder_message(encrypt(X1,X2)) ),
    inference(fof_nnf,[status(thm)],[2]) ).

fof(38,plain,
    ! [X4,X5,X6] :
      ( ~ intruder_message(X4)
      | ~ intruder_holds(key(X5,X6))
      | ~ party_of_protocol(X6)
      | intruder_message(encrypt(X4,X5)) ),
    inference(variable_rename,[status(thm)],[37]) ).

cnf(39,plain,
    ( intruder_message(encrypt(X1,X2))
    | ~ party_of_protocol(X3)
    | ~ intruder_holds(key(X2,X3))
    | ~ intruder_message(X1) ),
    inference(split_conjunct,[status(thm)],[38]) ).

cnf(48,plain,
    fresh_to_b(an_a_nonce),
    inference(split_conjunct,[status(thm)],[7]) ).

fof(51,negated_conjecture,
    ! [X1] :
      ( ~ intruder_holds(key(X1,b))
      | ~ b_holds(key(X1,a)) ),
    inference(fof_nnf,[status(thm)],[30]) ).

fof(52,negated_conjecture,
    ! [X2] :
      ( ~ intruder_holds(key(X2,b))
      | ~ b_holds(key(X2,a)) ),
    inference(variable_rename,[status(thm)],[51]) ).

cnf(53,negated_conjecture,
    ( ~ b_holds(key(X1,a))
    | ~ intruder_holds(key(X1,b)) ),
    inference(split_conjunct,[status(thm)],[52]) ).

fof(54,plain,
    ! [X1,X2,X3] :
      ( ~ message(sent(X1,X2,X3))
      | intruder_message(X3) ),
    inference(fof_nnf,[status(thm)],[10]) ).

fof(55,plain,
    ! [X4,X5,X6] :
      ( ~ message(sent(X4,X5,X6))
      | intruder_message(X6) ),
    inference(variable_rename,[status(thm)],[54]) ).

cnf(56,plain,
    ( intruder_message(X1)
    | ~ message(sent(X2,X3,X1)) ),
    inference(split_conjunct,[status(thm)],[55]) ).

fof(57,plain,
    ! [X1,X2,X3] :
      ( ~ intruder_message(triple(X1,X2,X3))
      | ( intruder_message(X1)
        & intruder_message(X2)
        & intruder_message(X3) ) ),
    inference(fof_nnf,[status(thm)],[11]) ).

fof(58,plain,
    ! [X4,X5,X6] :
      ( ~ intruder_message(triple(X4,X5,X6))
      | ( intruder_message(X4)
        & intruder_message(X5)
        & intruder_message(X6) ) ),
    inference(variable_rename,[status(thm)],[57]) ).

fof(59,plain,
    ! [X4,X5,X6] :
      ( ( intruder_message(X4)
        | ~ intruder_message(triple(X4,X5,X6)) )
      & ( intruder_message(X5)
        | ~ intruder_message(triple(X4,X5,X6)) )
      & ( intruder_message(X6)
        | ~ intruder_message(triple(X4,X5,X6)) ) ),
    inference(distribute,[status(thm)],[58]) ).

cnf(60,plain,
    ( intruder_message(X3)
    | ~ intruder_message(triple(X1,X2,X3)) ),
    inference(split_conjunct,[status(thm)],[59]) ).

cnf(61,plain,
    ( intruder_message(X2)
    | ~ intruder_message(triple(X1,X2,X3)) ),
    inference(split_conjunct,[status(thm)],[59]) ).

cnf(65,plain,
    party_of_protocol(b),
    inference(split_conjunct,[status(thm)],[14]) ).

fof(66,plain,
    ! [X2,X3] :
      ( ~ intruder_message(X2)
      | ~ party_of_protocol(X3)
      | intruder_holds(key(X2,X3)) ),
    inference(fof_nnf,[status(thm)],[15]) ).

fof(67,plain,
    ! [X4,X5] :
      ( ~ intruder_message(X4)
      | ~ party_of_protocol(X5)
      | intruder_holds(key(X4,X5)) ),
    inference(variable_rename,[status(thm)],[66]) ).

cnf(68,plain,
    ( intruder_holds(key(X1,X2))
    | ~ party_of_protocol(X2)
    | ~ intruder_message(X1) ),
    inference(split_conjunct,[status(thm)],[67]) ).

fof(69,plain,
    ! [X2,X4,X5] :
      ( ~ message(sent(X4,b,pair(encrypt(triple(X4,X2,generate_expiration_time(X5)),bt),encrypt(generate_b_nonce(X5),X2))))
      | ~ b_stored(pair(X4,X5))
      | b_holds(key(X2,X4)) ),
    inference(fof_nnf,[status(thm)],[16]) ).

fof(70,plain,
    ! [X6,X7,X8] :
      ( ~ message(sent(X7,b,pair(encrypt(triple(X7,X6,generate_expiration_time(X8)),bt),encrypt(generate_b_nonce(X8),X6))))
      | ~ b_stored(pair(X7,X8))
      | b_holds(key(X6,X7)) ),
    inference(variable_rename,[status(thm)],[69]) ).

cnf(71,plain,
    ( b_holds(key(X1,X2))
    | ~ b_stored(pair(X2,X3))
    | ~ message(sent(X2,b,pair(encrypt(triple(X2,X1,generate_expiration_time(X3)),bt),encrypt(generate_b_nonce(X3),X1)))) ),
    inference(split_conjunct,[status(thm)],[70]) ).

cnf(72,plain,
    message(sent(a,b,pair(a,an_a_nonce))),
    inference(split_conjunct,[status(thm)],[17]) ).

fof(73,plain,
    ! [X1,X2] :
      ( ~ intruder_message(X1)
      | ~ intruder_message(X2)
      | intruder_message(pair(X1,X2)) ),
    inference(fof_nnf,[status(thm)],[18]) ).

fof(74,plain,
    ! [X3,X4] :
      ( ~ intruder_message(X3)
      | ~ intruder_message(X4)
      | intruder_message(pair(X3,X4)) ),
    inference(variable_rename,[status(thm)],[73]) ).

cnf(75,plain,
    ( intruder_message(pair(X1,X2))
    | ~ intruder_message(X2)
    | ~ intruder_message(X1) ),
    inference(split_conjunct,[status(thm)],[74]) ).

cnf(76,plain,
    party_of_protocol(a),
    inference(split_conjunct,[status(thm)],[19]) ).

fof(96,plain,
    ! [X1,X2] :
      ( ~ intruder_message(pair(X1,X2))
      | ( intruder_message(X1)
        & intruder_message(X2) ) ),
    inference(fof_nnf,[status(thm)],[27]) ).

fof(97,plain,
    ! [X3,X4] :
      ( ~ intruder_message(pair(X3,X4))
      | ( intruder_message(X3)
        & intruder_message(X4) ) ),
    inference(variable_rename,[status(thm)],[96]) ).

fof(98,plain,
    ! [X3,X4] :
      ( ( intruder_message(X3)
        | ~ intruder_message(pair(X3,X4)) )
      & ( intruder_message(X4)
        | ~ intruder_message(pair(X3,X4)) ) ),
    inference(distribute,[status(thm)],[97]) ).

cnf(99,plain,
    ( intruder_message(X2)
    | ~ intruder_message(pair(X1,X2)) ),
    inference(split_conjunct,[status(thm)],[98]) ).

fof(106,plain,
    ! [X1,X2,X3] :
      ( ~ intruder_message(X1)
      | ~ party_of_protocol(X2)
      | ~ party_of_protocol(X3)
      | message(sent(X2,X3,X1)) ),
    inference(fof_nnf,[status(thm)],[29]) ).

fof(107,plain,
    ! [X4,X5,X6] :
      ( ~ intruder_message(X4)
      | ~ party_of_protocol(X5)
      | ~ party_of_protocol(X6)
      | message(sent(X5,X6,X4)) ),
    inference(variable_rename,[status(thm)],[106]) ).

cnf(108,plain,
    ( message(sent(X1,X2,X3))
    | ~ party_of_protocol(X2)
    | ~ party_of_protocol(X1)
    | ~ intruder_message(X3) ),
    inference(split_conjunct,[status(thm)],[107]) ).

cnf(111,plain,
    intruder_message(pair(a,an_a_nonce)),
    inference(spm,[status(thm)],[56,72,theory(equality)]) ).

cnf(112,plain,
    ( intruder_message(encrypt(X1,X2))
    | ~ party_of_protocol(X3)
    | ~ intruder_message(X1)
    | ~ intruder_message(X2) ),
    inference(spm,[status(thm)],[39,68,theory(equality)]) ).

cnf(118,plain,
    ( b_stored(pair(a,an_a_nonce))
    | ~ fresh_to_b(an_a_nonce) ),
    inference(spm,[status(thm)],[35,72,theory(equality)]) ).

cnf(120,plain,
    ( b_stored(pair(a,an_a_nonce))
    | $false ),
    inference(rw,[status(thm)],[118,48,theory(equality)]) ).

cnf(121,plain,
    b_stored(pair(a,an_a_nonce)),
    inference(cn,[status(thm)],[120,theory(equality)]) ).

cnf(129,plain,
    ( message(sent(b,t,triple(b,generate_b_nonce(an_a_nonce),encrypt(triple(a,an_a_nonce,generate_expiration_time(an_a_nonce)),bt))))
    | ~ fresh_to_b(an_a_nonce) ),
    inference(spm,[status(thm)],[36,72,theory(equality)]) ).

cnf(131,plain,
    ( message(sent(b,t,triple(b,generate_b_nonce(an_a_nonce),encrypt(triple(a,an_a_nonce,generate_expiration_time(an_a_nonce)),bt))))
    | $false ),
    inference(rw,[status(thm)],[129,48,theory(equality)]) ).

cnf(132,plain,
    message(sent(b,t,triple(b,generate_b_nonce(an_a_nonce),encrypt(triple(a,an_a_nonce,generate_expiration_time(an_a_nonce)),bt)))),
    inference(cn,[status(thm)],[131,theory(equality)]) ).

cnf(138,plain,
    intruder_message(an_a_nonce),
    inference(spm,[status(thm)],[99,111,theory(equality)]) ).

cnf(140,plain,
    ( b_holds(key(X1,a))
    | ~ message(sent(a,b,pair(encrypt(triple(a,X1,generate_expiration_time(an_a_nonce)),bt),encrypt(generate_b_nonce(an_a_nonce),X1)))) ),
    inference(spm,[status(thm)],[71,121,theory(equality)]) ).

cnf(141,plain,
    ( intruder_message(encrypt(X1,X2))
    | ~ intruder_message(X1)
    | ~ intruder_message(X2) ),
    inference(spm,[status(thm)],[112,65,theory(equality)]) ).

cnf(151,plain,
    intruder_message(triple(b,generate_b_nonce(an_a_nonce),encrypt(triple(a,an_a_nonce,generate_expiration_time(an_a_nonce)),bt))),
    inference(spm,[status(thm)],[56,132,theory(equality)]) ).

cnf(152,plain,
    intruder_message(encrypt(triple(a,an_a_nonce,generate_expiration_time(an_a_nonce)),bt)),
    inference(spm,[status(thm)],[60,151,theory(equality)]) ).

cnf(153,plain,
    intruder_message(generate_b_nonce(an_a_nonce)),
    inference(spm,[status(thm)],[61,151,theory(equality)]) ).

cnf(167,plain,
    ( b_holds(key(X1,a))
    | ~ party_of_protocol(b)
    | ~ party_of_protocol(a)
    | ~ intruder_message(pair(encrypt(triple(a,X1,generate_expiration_time(an_a_nonce)),bt),encrypt(generate_b_nonce(an_a_nonce),X1))) ),
    inference(spm,[status(thm)],[140,108,theory(equality)]) ).

cnf(168,plain,
    ( b_holds(key(X1,a))
    | $false
    | ~ party_of_protocol(a)
    | ~ intruder_message(pair(encrypt(triple(a,X1,generate_expiration_time(an_a_nonce)),bt),encrypt(generate_b_nonce(an_a_nonce),X1))) ),
    inference(rw,[status(thm)],[167,65,theory(equality)]) ).

cnf(169,plain,
    ( b_holds(key(X1,a))
    | $false
    | $false
    | ~ intruder_message(pair(encrypt(triple(a,X1,generate_expiration_time(an_a_nonce)),bt),encrypt(generate_b_nonce(an_a_nonce),X1))) ),
    inference(rw,[status(thm)],[168,76,theory(equality)]) ).

cnf(170,plain,
    ( b_holds(key(X1,a))
    | ~ intruder_message(pair(encrypt(triple(a,X1,generate_expiration_time(an_a_nonce)),bt),encrypt(generate_b_nonce(an_a_nonce),X1))) ),
    inference(cn,[status(thm)],[169,theory(equality)]) ).

cnf(171,plain,
    ( b_holds(key(X1,a))
    | ~ intruder_message(encrypt(generate_b_nonce(an_a_nonce),X1))
    | ~ intruder_message(encrypt(triple(a,X1,generate_expiration_time(an_a_nonce)),bt)) ),
    inference(spm,[status(thm)],[170,75,theory(equality)]) ).

cnf(172,plain,
    ( b_holds(key(X1,a))
    | ~ intruder_message(encrypt(triple(a,X1,generate_expiration_time(an_a_nonce)),bt))
    | ~ intruder_message(generate_b_nonce(an_a_nonce))
    | ~ intruder_message(X1) ),
    inference(spm,[status(thm)],[171,141,theory(equality)]) ).

cnf(173,plain,
    ( b_holds(key(X1,a))
    | ~ intruder_message(encrypt(triple(a,X1,generate_expiration_time(an_a_nonce)),bt))
    | $false
    | ~ intruder_message(X1) ),
    inference(rw,[status(thm)],[172,153,theory(equality)]) ).

cnf(174,plain,
    ( b_holds(key(X1,a))
    | ~ intruder_message(encrypt(triple(a,X1,generate_expiration_time(an_a_nonce)),bt))
    | ~ intruder_message(X1) ),
    inference(cn,[status(thm)],[173,theory(equality)]) ).

cnf(175,plain,
    ( b_holds(key(an_a_nonce,a))
    | ~ intruder_message(an_a_nonce) ),
    inference(spm,[status(thm)],[174,152,theory(equality)]) ).

cnf(177,plain,
    ( b_holds(key(an_a_nonce,a))
    | $false ),
    inference(rw,[status(thm)],[175,138,theory(equality)]) ).

cnf(178,plain,
    b_holds(key(an_a_nonce,a)),
    inference(cn,[status(thm)],[177,theory(equality)]) ).

cnf(179,negated_conjecture,
    ~ intruder_holds(key(an_a_nonce,b)),
    inference(spm,[status(thm)],[53,178,theory(equality)]) ).

cnf(180,negated_conjecture,
    ( ~ party_of_protocol(b)
    | ~ intruder_message(an_a_nonce) ),
    inference(spm,[status(thm)],[179,68,theory(equality)]) ).

cnf(181,negated_conjecture,
    ( $false
    | ~ intruder_message(an_a_nonce) ),
    inference(rw,[status(thm)],[180,65,theory(equality)]) ).

cnf(182,negated_conjecture,
    ( $false
    | $false ),
    inference(rw,[status(thm)],[181,138,theory(equality)]) ).

cnf(183,negated_conjecture,
    $false,
    inference(cn,[status(thm)],[182,theory(equality)]) ).

cnf(184,negated_conjecture,
    $false,
    183,
    [proof] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% % SZS status Started for /home/graph/tptp/TPTP/Problems/SWV/SWV014+1.p
% --creating new selector for []
% -running prover on /tmp/tmpgHQHHb/sel_SWV014+1.p_1 with time limit 29
% -prover status Theorem
% Problem SWV014+1.p solved in phase 0.
% % SZS status Theorem for /home/graph/tptp/TPTP/Problems/SWV/SWV014+1.p
% % SZS status Ended for /home/graph/tptp/TPTP/Problems/SWV/SWV014+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
% 
%------------------------------------------------------------------------------