TSTP Solution File: SWV013+1 by iProver---3.8

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : iProver---3.8
% Problem  : SWV013+1 : TPTP v8.1.2. Released v2.4.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_iprover %s %d THM

% Computer : n015.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 : Thu Aug 31 22:30:43 EDT 2023

% Result   : Satisfiable 1.35s 1.18s
% Output   : Saturation 1.35s
% Verified : 
% SZS Type : ERROR: Analysing output (MakeTreeStats fails)

% Comments : 
%------------------------------------------------------------------------------
fof(f2,axiom,
    party_of_protocol(a),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',a_is_party_of_protocol) ).

fof(f3,axiom,
    message(sent(a,b,pair(a,an_a_nonce))),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',a_sent_message_i_to_b) ).

fof(f4,axiom,
    a_stored(pair(b,an_a_nonce)),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',a_stored_message_i) ).

fof(f5,axiom,
    ! [X0,X1,X2,X3,X4,X5] :
      ( ( a_stored(pair(X4,X5))
        & message(sent(t,a,triple(encrypt(quadruple(X4,X5,X2,X1),at),X3,X0))) )
     => ( a_holds(key(X2,X4))
        & message(sent(a,X4,pair(X3,encrypt(X0,X2)))) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',a_forwards_secure) ).

fof(f7,axiom,
    party_of_protocol(b),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',b_is_party_of_protocol) ).

fof(f8,axiom,
    fresh_to_b(an_a_nonce),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',nonce_a_is_fresh_to_b) ).

fof(f9,axiom,
    ! [X0,X1] :
      ( ( fresh_to_b(X1)
        & message(sent(X0,b,pair(X0,X1))) )
     => ( b_stored(pair(X0,X1))
        & message(sent(b,t,triple(b,generate_b_nonce(X1),encrypt(triple(X0,X1,generate_expiration_time(X1)),bt)))) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',b_creates_freash_nonces_in_time) ).

fof(f11,axiom,
    t_holds(key(at,a)),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',t_holds_key_at_for_a) ).

fof(f12,axiom,
    t_holds(key(bt,b)),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',t_holds_key_bt_for_b) ).

fof(f13,axiom,
    party_of_protocol(t),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',t_is_party_of_protocol) ).

fof(f14,axiom,
    ! [X0,X1,X2,X3,X4,X5,X6] :
      ( ( a_nonce(X3)
        & t_holds(key(X6,X2))
        & t_holds(key(X5,X0))
        & message(sent(X0,t,triple(X0,X1,encrypt(triple(X2,X3,X4),X5)))) )
     => message(sent(t,X2,triple(encrypt(quadruple(X0,X3,generate_key(X3),X4),X6),encrypt(triple(X2,generate_key(X3),X4),X5),X1))) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',server_t_generates_key) ).

fof(f15,axiom,
    ! [X0,X1,X2] :
      ( message(sent(X0,X1,X2))
     => intruder_message(X2) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',intruder_can_record) ).

fof(f16,axiom,
    ! [X0,X1] :
      ( intruder_message(pair(X0,X1))
     => ( intruder_message(X1)
        & intruder_message(X0) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',intruder_decomposes_pairs) ).

fof(f17,axiom,
    ! [X0,X1,X2] :
      ( intruder_message(triple(X0,X1,X2))
     => ( intruder_message(X2)
        & intruder_message(X1)
        & intruder_message(X0) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',intruder_decomposes_triples) ).

fof(f18,axiom,
    ! [X0,X1,X2,X3] :
      ( intruder_message(quadruple(X0,X1,X2,X3))
     => ( intruder_message(X3)
        & intruder_message(X2)
        & intruder_message(X1)
        & intruder_message(X0) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',intruder_decomposes_quadruples) ).

fof(f19,axiom,
    ! [X0,X1] :
      ( ( intruder_message(X1)
        & intruder_message(X0) )
     => intruder_message(pair(X0,X1)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',intruder_composes_pairs) ).

fof(f20,axiom,
    ! [X0,X1,X2] :
      ( ( intruder_message(X2)
        & intruder_message(X1)
        & intruder_message(X0) )
     => intruder_message(triple(X0,X1,X2)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',intruder_composes_triples) ).

fof(f21,axiom,
    ! [X0,X1,X2,X3] :
      ( ( intruder_message(X3)
        & intruder_message(X2)
        & intruder_message(X1)
        & intruder_message(X0) )
     => intruder_message(quadruple(X0,X1,X2,X3)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',intruder_composes_quadruples) ).

fof(f22,axiom,
    ! [X0,X1,X2] :
      ( ( party_of_protocol(X2)
        & intruder_holds(key(X1,X2))
        & intruder_message(encrypt(X0,X1)) )
     => intruder_message(X1) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',intruder_interception) ).

fof(f23,axiom,
    ! [X0,X1,X2] :
      ( ( party_of_protocol(X2)
        & party_of_protocol(X1)
        & intruder_message(X0) )
     => message(sent(X1,X2,X0)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',intruder_message_sent) ).

fof(f24,axiom,
    ! [X1,X2] :
      ( ( party_of_protocol(X2)
        & intruder_message(X1) )
     => intruder_holds(key(X1,X2)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',intruder_holds_key) ).

fof(f25,axiom,
    ! [X0,X1,X2] :
      ( ( party_of_protocol(X2)
        & intruder_holds(key(X1,X2))
        & intruder_message(X0) )
     => intruder_message(encrypt(X0,X1)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',intruder_key_encrypts) ).

fof(f26,axiom,
    a_nonce(an_a_nonce),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',an_a_nonce_is_a_nonce) ).

fof(f27,axiom,
    ! [X0] : ~ a_nonce(generate_key(X0)),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',generated_keys_are_not_nonces) ).

fof(f28,axiom,
    ! [X0] :
      ( a_nonce(generate_b_nonce(X0))
      & a_nonce(generate_expiration_time(X0)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',generated_times_and_nonces_are_nonces) ).

fof(f30,plain,
    ! [X0,X1] :
      ( ( party_of_protocol(X1)
        & intruder_message(X0) )
     => intruder_holds(key(X0,X1)) ),
    inference(rectify,[],[f24]) ).

fof(f33,plain,
    ! [X0,X1] :
      ( ( fresh_to_b(X1)
        & message(sent(X0,b,pair(X0,X1))) )
     => message(sent(b,t,triple(b,generate_b_nonce(X1),encrypt(triple(X0,X1,generate_expiration_time(X1)),bt)))) ),
    inference(pure_predicate_removal,[],[f9]) ).

fof(f35,plain,
    ! [X0,X1,X2,X3,X4,X5] :
      ( ( a_stored(pair(X4,X5))
        & message(sent(t,a,triple(encrypt(quadruple(X4,X5,X2,X1),at),X3,X0))) )
     => message(sent(a,X4,pair(X3,encrypt(X0,X2)))) ),
    inference(pure_predicate_removal,[],[f5]) ).

fof(f36,plain,
    ! [X0,X1,X2,X3,X4,X5] :
      ( message(sent(a,X4,pair(X3,encrypt(X0,X2))))
      | ~ a_stored(pair(X4,X5))
      | ~ message(sent(t,a,triple(encrypt(quadruple(X4,X5,X2,X1),at),X3,X0))) ),
    inference(ennf_transformation,[],[f35]) ).

fof(f37,plain,
    ! [X0,X1,X2,X3,X4,X5] :
      ( message(sent(a,X4,pair(X3,encrypt(X0,X2))))
      | ~ a_stored(pair(X4,X5))
      | ~ message(sent(t,a,triple(encrypt(quadruple(X4,X5,X2,X1),at),X3,X0))) ),
    inference(flattening,[],[f36]) ).

fof(f38,plain,
    ! [X0,X1] :
      ( message(sent(b,t,triple(b,generate_b_nonce(X1),encrypt(triple(X0,X1,generate_expiration_time(X1)),bt))))
      | ~ fresh_to_b(X1)
      | ~ message(sent(X0,b,pair(X0,X1))) ),
    inference(ennf_transformation,[],[f33]) ).

fof(f39,plain,
    ! [X0,X1] :
      ( message(sent(b,t,triple(b,generate_b_nonce(X1),encrypt(triple(X0,X1,generate_expiration_time(X1)),bt))))
      | ~ fresh_to_b(X1)
      | ~ message(sent(X0,b,pair(X0,X1))) ),
    inference(flattening,[],[f38]) ).

fof(f40,plain,
    ! [X0,X1,X2,X3,X4,X5,X6] :
      ( message(sent(t,X2,triple(encrypt(quadruple(X0,X3,generate_key(X3),X4),X6),encrypt(triple(X2,generate_key(X3),X4),X5),X1)))
      | ~ a_nonce(X3)
      | ~ t_holds(key(X6,X2))
      | ~ t_holds(key(X5,X0))
      | ~ message(sent(X0,t,triple(X0,X1,encrypt(triple(X2,X3,X4),X5)))) ),
    inference(ennf_transformation,[],[f14]) ).

fof(f41,plain,
    ! [X0,X1,X2,X3,X4,X5,X6] :
      ( message(sent(t,X2,triple(encrypt(quadruple(X0,X3,generate_key(X3),X4),X6),encrypt(triple(X2,generate_key(X3),X4),X5),X1)))
      | ~ a_nonce(X3)
      | ~ t_holds(key(X6,X2))
      | ~ t_holds(key(X5,X0))
      | ~ message(sent(X0,t,triple(X0,X1,encrypt(triple(X2,X3,X4),X5)))) ),
    inference(flattening,[],[f40]) ).

fof(f42,plain,
    ! [X0,X1,X2] :
      ( intruder_message(X2)
      | ~ message(sent(X0,X1,X2)) ),
    inference(ennf_transformation,[],[f15]) ).

fof(f43,plain,
    ! [X0,X1] :
      ( ( intruder_message(X1)
        & intruder_message(X0) )
      | ~ intruder_message(pair(X0,X1)) ),
    inference(ennf_transformation,[],[f16]) ).

fof(f44,plain,
    ! [X0,X1,X2] :
      ( ( intruder_message(X2)
        & intruder_message(X1)
        & intruder_message(X0) )
      | ~ intruder_message(triple(X0,X1,X2)) ),
    inference(ennf_transformation,[],[f17]) ).

fof(f45,plain,
    ! [X0,X1,X2,X3] :
      ( ( intruder_message(X3)
        & intruder_message(X2)
        & intruder_message(X1)
        & intruder_message(X0) )
      | ~ intruder_message(quadruple(X0,X1,X2,X3)) ),
    inference(ennf_transformation,[],[f18]) ).

fof(f46,plain,
    ! [X0,X1] :
      ( intruder_message(pair(X0,X1))
      | ~ intruder_message(X1)
      | ~ intruder_message(X0) ),
    inference(ennf_transformation,[],[f19]) ).

fof(f47,plain,
    ! [X0,X1] :
      ( intruder_message(pair(X0,X1))
      | ~ intruder_message(X1)
      | ~ intruder_message(X0) ),
    inference(flattening,[],[f46]) ).

fof(f48,plain,
    ! [X0,X1,X2] :
      ( intruder_message(triple(X0,X1,X2))
      | ~ intruder_message(X2)
      | ~ intruder_message(X1)
      | ~ intruder_message(X0) ),
    inference(ennf_transformation,[],[f20]) ).

fof(f49,plain,
    ! [X0,X1,X2] :
      ( intruder_message(triple(X0,X1,X2))
      | ~ intruder_message(X2)
      | ~ intruder_message(X1)
      | ~ intruder_message(X0) ),
    inference(flattening,[],[f48]) ).

fof(f50,plain,
    ! [X0,X1,X2,X3] :
      ( intruder_message(quadruple(X0,X1,X2,X3))
      | ~ intruder_message(X3)
      | ~ intruder_message(X2)
      | ~ intruder_message(X1)
      | ~ intruder_message(X0) ),
    inference(ennf_transformation,[],[f21]) ).

fof(f51,plain,
    ! [X0,X1,X2,X3] :
      ( intruder_message(quadruple(X0,X1,X2,X3))
      | ~ intruder_message(X3)
      | ~ intruder_message(X2)
      | ~ intruder_message(X1)
      | ~ intruder_message(X0) ),
    inference(flattening,[],[f50]) ).

fof(f52,plain,
    ! [X0,X1,X2] :
      ( intruder_message(X1)
      | ~ party_of_protocol(X2)
      | ~ intruder_holds(key(X1,X2))
      | ~ intruder_message(encrypt(X0,X1)) ),
    inference(ennf_transformation,[],[f22]) ).

fof(f53,plain,
    ! [X0,X1,X2] :
      ( intruder_message(X1)
      | ~ party_of_protocol(X2)
      | ~ intruder_holds(key(X1,X2))
      | ~ intruder_message(encrypt(X0,X1)) ),
    inference(flattening,[],[f52]) ).

fof(f54,plain,
    ! [X0,X1,X2] :
      ( message(sent(X1,X2,X0))
      | ~ party_of_protocol(X2)
      | ~ party_of_protocol(X1)
      | ~ intruder_message(X0) ),
    inference(ennf_transformation,[],[f23]) ).

fof(f55,plain,
    ! [X0,X1,X2] :
      ( message(sent(X1,X2,X0))
      | ~ party_of_protocol(X2)
      | ~ party_of_protocol(X1)
      | ~ intruder_message(X0) ),
    inference(flattening,[],[f54]) ).

fof(f56,plain,
    ! [X0,X1] :
      ( intruder_holds(key(X0,X1))
      | ~ party_of_protocol(X1)
      | ~ intruder_message(X0) ),
    inference(ennf_transformation,[],[f30]) ).

fof(f57,plain,
    ! [X0,X1] :
      ( intruder_holds(key(X0,X1))
      | ~ party_of_protocol(X1)
      | ~ intruder_message(X0) ),
    inference(flattening,[],[f56]) ).

fof(f58,plain,
    ! [X0,X1,X2] :
      ( intruder_message(encrypt(X0,X1))
      | ~ party_of_protocol(X2)
      | ~ intruder_holds(key(X1,X2))
      | ~ intruder_message(X0) ),
    inference(ennf_transformation,[],[f25]) ).

fof(f59,plain,
    ! [X0,X1,X2] :
      ( intruder_message(encrypt(X0,X1))
      | ~ party_of_protocol(X2)
      | ~ intruder_holds(key(X1,X2))
      | ~ intruder_message(X0) ),
    inference(flattening,[],[f58]) ).

fof(f60,plain,
    party_of_protocol(a),
    inference(cnf_transformation,[],[f2]) ).

fof(f61,plain,
    message(sent(a,b,pair(a,an_a_nonce))),
    inference(cnf_transformation,[],[f3]) ).

fof(f62,plain,
    a_stored(pair(b,an_a_nonce)),
    inference(cnf_transformation,[],[f4]) ).

fof(f63,plain,
    ! [X2,X3,X0,X1,X4,X5] :
      ( message(sent(a,X4,pair(X3,encrypt(X0,X2))))
      | ~ a_stored(pair(X4,X5))
      | ~ message(sent(t,a,triple(encrypt(quadruple(X4,X5,X2,X1),at),X3,X0))) ),
    inference(cnf_transformation,[],[f37]) ).

fof(f64,plain,
    party_of_protocol(b),
    inference(cnf_transformation,[],[f7]) ).

fof(f65,plain,
    fresh_to_b(an_a_nonce),
    inference(cnf_transformation,[],[f8]) ).

fof(f66,plain,
    ! [X0,X1] :
      ( message(sent(b,t,triple(b,generate_b_nonce(X1),encrypt(triple(X0,X1,generate_expiration_time(X1)),bt))))
      | ~ fresh_to_b(X1)
      | ~ message(sent(X0,b,pair(X0,X1))) ),
    inference(cnf_transformation,[],[f39]) ).

fof(f67,plain,
    t_holds(key(at,a)),
    inference(cnf_transformation,[],[f11]) ).

fof(f68,plain,
    t_holds(key(bt,b)),
    inference(cnf_transformation,[],[f12]) ).

fof(f69,plain,
    party_of_protocol(t),
    inference(cnf_transformation,[],[f13]) ).

fof(f70,plain,
    ! [X2,X3,X0,X1,X6,X4,X5] :
      ( message(sent(t,X2,triple(encrypt(quadruple(X0,X3,generate_key(X3),X4),X6),encrypt(triple(X2,generate_key(X3),X4),X5),X1)))
      | ~ a_nonce(X3)
      | ~ t_holds(key(X6,X2))
      | ~ t_holds(key(X5,X0))
      | ~ message(sent(X0,t,triple(X0,X1,encrypt(triple(X2,X3,X4),X5)))) ),
    inference(cnf_transformation,[],[f41]) ).

fof(f71,plain,
    ! [X2,X0,X1] :
      ( intruder_message(X2)
      | ~ message(sent(X0,X1,X2)) ),
    inference(cnf_transformation,[],[f42]) ).

fof(f72,plain,
    ! [X0,X1] :
      ( intruder_message(X0)
      | ~ intruder_message(pair(X0,X1)) ),
    inference(cnf_transformation,[],[f43]) ).

fof(f73,plain,
    ! [X0,X1] :
      ( intruder_message(X1)
      | ~ intruder_message(pair(X0,X1)) ),
    inference(cnf_transformation,[],[f43]) ).

fof(f74,plain,
    ! [X2,X0,X1] :
      ( intruder_message(X0)
      | ~ intruder_message(triple(X0,X1,X2)) ),
    inference(cnf_transformation,[],[f44]) ).

fof(f75,plain,
    ! [X2,X0,X1] :
      ( intruder_message(X1)
      | ~ intruder_message(triple(X0,X1,X2)) ),
    inference(cnf_transformation,[],[f44]) ).

fof(f76,plain,
    ! [X2,X0,X1] :
      ( intruder_message(X2)
      | ~ intruder_message(triple(X0,X1,X2)) ),
    inference(cnf_transformation,[],[f44]) ).

fof(f77,plain,
    ! [X2,X3,X0,X1] :
      ( intruder_message(X0)
      | ~ intruder_message(quadruple(X0,X1,X2,X3)) ),
    inference(cnf_transformation,[],[f45]) ).

fof(f78,plain,
    ! [X2,X3,X0,X1] :
      ( intruder_message(X1)
      | ~ intruder_message(quadruple(X0,X1,X2,X3)) ),
    inference(cnf_transformation,[],[f45]) ).

fof(f79,plain,
    ! [X2,X3,X0,X1] :
      ( intruder_message(X2)
      | ~ intruder_message(quadruple(X0,X1,X2,X3)) ),
    inference(cnf_transformation,[],[f45]) ).

fof(f80,plain,
    ! [X2,X3,X0,X1] :
      ( intruder_message(X3)
      | ~ intruder_message(quadruple(X0,X1,X2,X3)) ),
    inference(cnf_transformation,[],[f45]) ).

fof(f81,plain,
    ! [X0,X1] :
      ( intruder_message(pair(X0,X1))
      | ~ intruder_message(X1)
      | ~ intruder_message(X0) ),
    inference(cnf_transformation,[],[f47]) ).

fof(f82,plain,
    ! [X2,X0,X1] :
      ( intruder_message(triple(X0,X1,X2))
      | ~ intruder_message(X2)
      | ~ intruder_message(X1)
      | ~ intruder_message(X0) ),
    inference(cnf_transformation,[],[f49]) ).

fof(f83,plain,
    ! [X2,X3,X0,X1] :
      ( intruder_message(quadruple(X0,X1,X2,X3))
      | ~ intruder_message(X3)
      | ~ intruder_message(X2)
      | ~ intruder_message(X1)
      | ~ intruder_message(X0) ),
    inference(cnf_transformation,[],[f51]) ).

fof(f84,plain,
    ! [X2,X0,X1] :
      ( intruder_message(X1)
      | ~ party_of_protocol(X2)
      | ~ intruder_holds(key(X1,X2))
      | ~ intruder_message(encrypt(X0,X1)) ),
    inference(cnf_transformation,[],[f53]) ).

fof(f85,plain,
    ! [X2,X0,X1] :
      ( message(sent(X1,X2,X0))
      | ~ party_of_protocol(X2)
      | ~ party_of_protocol(X1)
      | ~ intruder_message(X0) ),
    inference(cnf_transformation,[],[f55]) ).

fof(f86,plain,
    ! [X0,X1] :
      ( intruder_holds(key(X0,X1))
      | ~ party_of_protocol(X1)
      | ~ intruder_message(X0) ),
    inference(cnf_transformation,[],[f57]) ).

fof(f87,plain,
    ! [X2,X0,X1] :
      ( intruder_message(encrypt(X0,X1))
      | ~ party_of_protocol(X2)
      | ~ intruder_holds(key(X1,X2))
      | ~ intruder_message(X0) ),
    inference(cnf_transformation,[],[f59]) ).

fof(f88,plain,
    a_nonce(an_a_nonce),
    inference(cnf_transformation,[],[f26]) ).

fof(f89,plain,
    ! [X0] : ~ a_nonce(generate_key(X0)),
    inference(cnf_transformation,[],[f27]) ).

fof(f90,plain,
    ! [X0] : a_nonce(generate_expiration_time(X0)),
    inference(cnf_transformation,[],[f28]) ).

fof(f91,plain,
    ! [X0] : a_nonce(generate_b_nonce(X0)),
    inference(cnf_transformation,[],[f28]) ).

cnf(c_49,plain,
    party_of_protocol(a),
    inference(cnf_transformation,[],[f60]) ).

cnf(c_50,plain,
    message(sent(a,b,pair(a,an_a_nonce))),
    inference(cnf_transformation,[],[f61]) ).

cnf(c_51,plain,
    a_stored(pair(b,an_a_nonce)),
    inference(cnf_transformation,[],[f62]) ).

cnf(c_52,plain,
    ( ~ message(sent(t,a,triple(encrypt(quadruple(X0,X1,X2,X3),at),X4,X5)))
    | ~ a_stored(pair(X0,X1))
    | message(sent(a,X0,pair(X4,encrypt(X5,X2)))) ),
    inference(cnf_transformation,[],[f63]) ).

cnf(c_53,plain,
    party_of_protocol(b),
    inference(cnf_transformation,[],[f64]) ).

cnf(c_54,plain,
    fresh_to_b(an_a_nonce),
    inference(cnf_transformation,[],[f65]) ).

cnf(c_55,plain,
    ( ~ message(sent(X0,b,pair(X0,X1)))
    | ~ fresh_to_b(X1)
    | message(sent(b,t,triple(b,generate_b_nonce(X1),encrypt(triple(X0,X1,generate_expiration_time(X1)),bt)))) ),
    inference(cnf_transformation,[],[f66]) ).

cnf(c_56,plain,
    t_holds(key(at,a)),
    inference(cnf_transformation,[],[f67]) ).

cnf(c_57,plain,
    t_holds(key(bt,b)),
    inference(cnf_transformation,[],[f68]) ).

cnf(c_58,plain,
    party_of_protocol(t),
    inference(cnf_transformation,[],[f69]) ).

cnf(c_59,plain,
    ( ~ message(sent(X0,t,triple(X0,X1,encrypt(triple(X2,X3,X4),X5))))
    | ~ t_holds(key(X5,X0))
    | ~ t_holds(key(X6,X2))
    | ~ a_nonce(X3)
    | message(sent(t,X2,triple(encrypt(quadruple(X0,X3,generate_key(X3),X4),X6),encrypt(triple(X2,generate_key(X3),X4),X5),X1))) ),
    inference(cnf_transformation,[],[f70]) ).

cnf(c_60,plain,
    ( ~ message(sent(X0,X1,X2))
    | intruder_message(X2) ),
    inference(cnf_transformation,[],[f71]) ).

cnf(c_61,plain,
    ( ~ intruder_message(pair(X0,X1))
    | intruder_message(X1) ),
    inference(cnf_transformation,[],[f73]) ).

cnf(c_62,plain,
    ( ~ intruder_message(pair(X0,X1))
    | intruder_message(X0) ),
    inference(cnf_transformation,[],[f72]) ).

cnf(c_63,plain,
    ( ~ intruder_message(triple(X0,X1,X2))
    | intruder_message(X2) ),
    inference(cnf_transformation,[],[f76]) ).

cnf(c_64,plain,
    ( ~ intruder_message(triple(X0,X1,X2))
    | intruder_message(X1) ),
    inference(cnf_transformation,[],[f75]) ).

cnf(c_65,plain,
    ( ~ intruder_message(triple(X0,X1,X2))
    | intruder_message(X0) ),
    inference(cnf_transformation,[],[f74]) ).

cnf(c_66,plain,
    ( ~ intruder_message(quadruple(X0,X1,X2,X3))
    | intruder_message(X3) ),
    inference(cnf_transformation,[],[f80]) ).

cnf(c_67,plain,
    ( ~ intruder_message(quadruple(X0,X1,X2,X3))
    | intruder_message(X2) ),
    inference(cnf_transformation,[],[f79]) ).

cnf(c_68,plain,
    ( ~ intruder_message(quadruple(X0,X1,X2,X3))
    | intruder_message(X1) ),
    inference(cnf_transformation,[],[f78]) ).

cnf(c_69,plain,
    ( ~ intruder_message(quadruple(X0,X1,X2,X3))
    | intruder_message(X0) ),
    inference(cnf_transformation,[],[f77]) ).

cnf(c_70,plain,
    ( ~ intruder_message(X0)
    | ~ intruder_message(X1)
    | intruder_message(pair(X0,X1)) ),
    inference(cnf_transformation,[],[f81]) ).

cnf(c_71,plain,
    ( ~ intruder_message(X0)
    | ~ intruder_message(X1)
    | ~ intruder_message(X2)
    | intruder_message(triple(X0,X2,X1)) ),
    inference(cnf_transformation,[],[f82]) ).

cnf(c_72,plain,
    ( ~ intruder_message(X0)
    | ~ intruder_message(X1)
    | ~ intruder_message(X2)
    | ~ intruder_message(X3)
    | intruder_message(quadruple(X1,X3,X2,X0)) ),
    inference(cnf_transformation,[],[f83]) ).

cnf(c_73,plain,
    ( ~ intruder_message(encrypt(X0,X1))
    | ~ intruder_holds(key(X1,X2))
    | ~ party_of_protocol(X2)
    | intruder_message(X1) ),
    inference(cnf_transformation,[],[f84]) ).

cnf(c_74,plain,
    ( ~ party_of_protocol(X0)
    | ~ party_of_protocol(X1)
    | ~ intruder_message(X2)
    | message(sent(X1,X0,X2)) ),
    inference(cnf_transformation,[],[f85]) ).

cnf(c_75,plain,
    ( ~ party_of_protocol(X0)
    | ~ intruder_message(X1)
    | intruder_holds(key(X1,X0)) ),
    inference(cnf_transformation,[],[f86]) ).

cnf(c_76,plain,
    ( ~ intruder_holds(key(X0,X1))
    | ~ party_of_protocol(X1)
    | ~ intruder_message(X2)
    | intruder_message(encrypt(X2,X0)) ),
    inference(cnf_transformation,[],[f87]) ).

cnf(c_77,plain,
    a_nonce(an_a_nonce),
    inference(cnf_transformation,[],[f88]) ).

cnf(c_78,plain,
    ~ a_nonce(generate_key(X0)),
    inference(cnf_transformation,[],[f89]) ).

cnf(c_79,plain,
    a_nonce(generate_b_nonce(X0)),
    inference(cnf_transformation,[],[f91]) ).

cnf(c_80,plain,
    a_nonce(generate_expiration_time(X0)),
    inference(cnf_transformation,[],[f90]) ).


%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12  % Problem  : SWV013+1 : TPTP v8.1.2. Released v2.4.0.
% 0.00/0.13  % Command  : run_iprover %s %d THM
% 0.18/0.34  % Computer : n015.cluster.edu
% 0.18/0.34  % Model    : x86_64 x86_64
% 0.18/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.18/0.34  % Memory   : 8042.1875MB
% 0.18/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.18/0.34  % CPULimit : 300
% 0.18/0.34  % WCLimit  : 300
% 0.18/0.34  % DateTime : Tue Aug 29 04:46:41 EDT 2023
% 0.18/0.35  % CPUTime  : 
% 0.21/0.47  Running first-order theorem proving
% 0.21/0.47  Running: /export/starexec/sandbox2/solver/bin/run_problem --schedule fof_schedule --no_cores 8 /export/starexec/sandbox2/benchmark/theBenchmark.p 300
% 1.35/1.18  % SZS status Started for theBenchmark.p
% 1.35/1.18  % SZS status Satisfiable for theBenchmark.p
% 1.35/1.18  
% 1.35/1.18  %---------------- iProver v3.8 (pre SMT-COMP 2023/CASC 2023) ----------------%
% 1.35/1.18  
% 1.35/1.18  ------  iProver source info
% 1.35/1.18  
% 1.35/1.18  git: date: 2023-05-31 18:12:56 +0000
% 1.35/1.18  git: sha1: 8abddc1f627fd3ce0bcb8b4cbf113b3cc443d7b6
% 1.35/1.18  git: non_committed_changes: false
% 1.35/1.18  git: last_make_outside_of_git: false
% 1.35/1.18  
% 1.35/1.18  ------ Parsing...
% 1.35/1.18  ------ Clausification by vclausify_rel  & Parsing by iProver...
% 1.35/1.18  
% 1.35/1.18  ------ Preprocessing... sf_s  rm: 32 0s  sf_e  pe_s  pe_e  sf_s  rm: 0 0s  sf_e  pe_s  pe_e 
% 1.35/1.18  
% 1.35/1.18  ------ Preprocessing...------  preprocesses with Option_epr_horn
% 1.35/1.18   gs_s  sp: 0 0s  gs_e  snvd_s sp: 0 0s snvd_e 
% 1.35/1.18  ------ Proving...
% 1.35/1.18  ------ Problem Properties 
% 1.35/1.18  
% 1.35/1.18  
% 1.35/1.18  clauses                                 0
% 1.35/1.18  conjectures                             0
% 1.35/1.18  EPR                                     0
% 1.35/1.18  Horn                                    0
% 1.35/1.18  unary                                   0
% 1.35/1.18  binary                                  0
% 1.35/1.18  lits                                    0
% 1.35/1.18  lits eq                                 0
% 1.35/1.18  fd_pure                                 0
% 1.35/1.18  fd_pseudo                               0
% 1.35/1.18  fd_cond                                 0
% 1.35/1.18  fd_pseudo_cond                          0
% 1.35/1.18  AC symbols                              0
% 1.35/1.18  
% 1.35/1.18  ------ Schedule EPR Horn non eq is on
% 1.35/1.18  
% 1.35/1.18  ------ no conjectures: strip conj schedule 
% 1.35/1.18  
% 1.35/1.18  ------ no equalities: superposition off 
% 1.35/1.18  
% 1.35/1.18  ------ Option_epr_horn stripped conjectures Time Limit: Unbounded
% 1.35/1.18  
% 1.35/1.18  
% 1.35/1.18  
% 1.35/1.18  
% 1.35/1.18  % SZS status Satisfiable for theBenchmark.p
% 1.35/1.18  
% 1.35/1.18  % SZS output start Saturation for theBenchmark.p
% See solution above
% 1.35/1.18  
% 1.35/1.18  
%------------------------------------------------------------------------------