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

View Problem - Process Solution

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

% Computer : n023.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:45 EDT 2023

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

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

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

fof(f4,axiom,
    a_stored(pair(b,an_a_nonce)),
    file('/export/starexec/sandbox/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/sandbox/benchmark/theBenchmark.p',a_forwards_secure) ).

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

fof(f8,axiom,
    fresh_to_b(an_a_nonce),
    file('/export/starexec/sandbox/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/sandbox/benchmark/theBenchmark.p',b_creates_freash_nonces_in_time) ).

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

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

fof(f13,axiom,
    party_of_protocol(t),
    file('/export/starexec/sandbox/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/sandbox/benchmark/theBenchmark.p',server_t_generates_key) ).

fof(f15,axiom,
    ! [X0,X1,X2] :
      ( message(sent(X0,X1,X2))
     => intruder_message(X2) ),
    file('/export/starexec/sandbox/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/sandbox/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/sandbox/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/sandbox/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/sandbox/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/sandbox/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/sandbox/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/sandbox/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/sandbox/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/sandbox/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/sandbox/benchmark/theBenchmark.p',intruder_key_encrypts) ).

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

fof(f31,axiom,
    fresh_intruder_nonce(an_intruder_nonce),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',an_intruder_nonce_is_a_fresh_intruder_nonce) ).

fof(f32,axiom,
    ! [X0] :
      ( fresh_intruder_nonce(X0)
     => fresh_intruder_nonce(generate_intruder_nonce(X0)) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',can_generate_more_fresh_intruder_nonces) ).

fof(f33,axiom,
    ! [X0] :
      ( fresh_intruder_nonce(X0)
     => ( intruder_message(X0)
        & fresh_to_b(X0) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',fresh_intruder_nonces_are_fresh_to_b) ).

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

fof(f38,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(f40,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(f41,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,[],[f40]) ).

fof(f42,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,[],[f41]) ).

fof(f43,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,[],[f38]) ).

fof(f44,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,[],[f43]) ).

fof(f45,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(f46,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,[],[f45]) ).

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

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

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

fof(f50,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(f51,plain,
    ! [X0,X1] :
      ( intruder_message(pair(X0,X1))
      | ~ intruder_message(X1)
      | ~ intruder_message(X0) ),
    inference(ennf_transformation,[],[f19]) ).

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

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

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

fof(f55,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(f56,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,[],[f55]) ).

fof(f57,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(f58,plain,
    ! [X0,X1,X2] :
      ( intruder_message(X1)
      | ~ party_of_protocol(X2)
      | ~ intruder_holds(key(X1,X2))
      | ~ intruder_message(encrypt(X0,X1)) ),
    inference(flattening,[],[f57]) ).

fof(f59,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(f60,plain,
    ! [X0,X1,X2] :
      ( message(sent(X1,X2,X0))
      | ~ party_of_protocol(X2)
      | ~ party_of_protocol(X1)
      | ~ intruder_message(X0) ),
    inference(flattening,[],[f59]) ).

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

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

fof(f63,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(f64,plain,
    ! [X0,X1,X2] :
      ( intruder_message(encrypt(X0,X1))
      | ~ party_of_protocol(X2)
      | ~ intruder_holds(key(X1,X2))
      | ~ intruder_message(X0) ),
    inference(flattening,[],[f63]) ).

fof(f66,plain,
    ! [X0] :
      ( fresh_intruder_nonce(generate_intruder_nonce(X0))
      | ~ fresh_intruder_nonce(X0) ),
    inference(ennf_transformation,[],[f32]) ).

fof(f67,plain,
    ! [X0] :
      ( ( intruder_message(X0)
        & fresh_to_b(X0) )
      | ~ fresh_intruder_nonce(X0) ),
    inference(ennf_transformation,[],[f33]) ).

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

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

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

fof(f71,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,[],[f42]) ).

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

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

fof(f74,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,[],[f44]) ).

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

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

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

fof(f78,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,[],[f46]) ).

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

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

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

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

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

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

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

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

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

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

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

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

fof(f91,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,[],[f56]) ).

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

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

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

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

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

fof(f102,plain,
    fresh_intruder_nonce(an_intruder_nonce),
    inference(cnf_transformation,[],[f31]) ).

fof(f103,plain,
    ! [X0] :
      ( fresh_intruder_nonce(generate_intruder_nonce(X0))
      | ~ fresh_intruder_nonce(X0) ),
    inference(cnf_transformation,[],[f66]) ).

fof(f104,plain,
    ! [X0] :
      ( fresh_to_b(X0)
      | ~ fresh_intruder_nonce(X0) ),
    inference(cnf_transformation,[],[f67]) ).

fof(f105,plain,
    ! [X0] :
      ( intruder_message(X0)
      | ~ fresh_intruder_nonce(X0) ),
    inference(cnf_transformation,[],[f67]) ).

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

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

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

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,[],[f71]) ).

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

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

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,[],[f74]) ).

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

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

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

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,[],[f78]) ).

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

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

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

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

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

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

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

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

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

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

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

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

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,[],[f91]) ).

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

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

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

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

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

cnf(c_83,plain,
    fresh_intruder_nonce(an_intruder_nonce),
    inference(cnf_transformation,[],[f102]) ).

cnf(c_84,plain,
    ( ~ fresh_intruder_nonce(X0)
    | fresh_intruder_nonce(generate_intruder_nonce(X0)) ),
    inference(cnf_transformation,[],[f103]) ).

cnf(c_85,plain,
    ( ~ fresh_intruder_nonce(X0)
    | intruder_message(X0) ),
    inference(cnf_transformation,[],[f105]) ).

cnf(c_86,plain,
    ( ~ fresh_intruder_nonce(X0)
    | fresh_to_b(X0) ),
    inference(cnf_transformation,[],[f104]) ).


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