TSTP Solution File: SWV012+1 by Mace4---1109a
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : Mace4---1109a
% Problem : SWV012+1 : TPTP v6.4.0. Released v2.4.0.
% Transfm : none
% Format : tptp:raw
% Command : mace4 -t %d -f %s
% Computer : n062.star.cs.uiowa.edu
% Model : x86_64 x86_64
% CPU : Intel(R) Xeon(R) CPU E5-2609 0 2.40GHz
% Memory : 32218.75MB
% OS : Linux 3.10.0-327.36.3.el7.x86_64
% CPULimit : 300s
% DateTime : Wed Feb 8 10:07:01 EST 2017
% Result : Satisfiable 0.07s
% Output : FiniteModel 0.07s
% Verified :
% SZS Type : None (Parsing solution fails)
% Syntax : Number of formulae : 0
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03 % Problem : SWV012+1 : TPTP v6.4.0. Released v2.4.0.
% 0.02/0.04 % Command : mace4 -t %d -f %s
% 0.02/0.23 % Computer : n062.star.cs.uiowa.edu
% 0.02/0.23 % Model : x86_64 x86_64
% 0.02/0.23 % CPU : Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
% 0.02/0.23 % Memory : 32218.75MB
% 0.02/0.23 % OS : Linux 3.10.0-327.36.3.el7.x86_64
% 0.02/0.23 % CPULimit : 300
% 0.02/0.23 % DateTime : Tue Feb 7 22:56:32 CST 2017
% 0.02/0.23 % CPUTime :
% 0.07/0.45 % SZS status Satisfiable
% 0.07/0.45 ============================== Mace4 =================================
% 0.07/0.45 Mace4 (32) version 2009-11A, November 2009.
% 0.07/0.45 Process 41339 was started by sandbox on n062.star.cs.uiowa.edu,
% 0.07/0.45 Tue Feb 7 22:56:32 2017
% 0.07/0.45 The command was "/export/starexec/sandbox/solver/bin/mace4 -t 300 -f /tmp/Mace4_input_41306_n062.star.cs.uiowa.edu".
% 0.07/0.45 ============================== end of head ===========================
% 0.07/0.45
% 0.07/0.45 ============================== INPUT =================================
% 0.07/0.45
% 0.07/0.45 % Reading from file /tmp/Mace4_input_41306_n062.star.cs.uiowa.edu
% 0.07/0.45
% 0.07/0.45 set(prolog_style_variables).
% 0.07/0.45 set(print_models_tabular).
% 0.07/0.45 % set(print_models_tabular) -> clear(print_models).
% 0.07/0.45
% 0.07/0.45 formulas(sos).
% 0.07/0.45 a_holds(key(at,t)) # label(a_holds_key_at_for_t) # label(axiom).
% 0.07/0.45 party_of_protocol(a) # label(a_is_party_of_protocol) # label(axiom).
% 0.07/0.45 message(sent(a,b,pair(a,an_a_nonce))) # label(a_sent_message_i_to_b) # label(axiom).
% 0.07/0.45 a_stored(pair(b,an_a_nonce)) # label(a_stored_message_i) # label(axiom).
% 0.07/0.45 (all U all V all W all X all Y all Z (message(sent(t,a,triple(encrypt(quadruple(Y,Z,W,V),at),X,U))) & a_stored(pair(Y,Z)) -> message(sent(a,Y,pair(X,encrypt(U,W)))) & a_holds(key(W,Y)))) # label(a_forwards_secure) # label(axiom).
% 0.07/0.45 b_holds(key(bt,t)) # label(b_hold_key_bt_for_t) # label(axiom).
% 0.07/0.45 party_of_protocol(b) # label(b_is_party_of_protocol) # label(axiom).
% 0.07/0.45 fresh_to_b(an_a_nonce) # label(nonce_a_is_fresh_to_b) # label(axiom).
% 0.07/0.45 (all U all V (message(sent(U,b,pair(U,V))) & fresh_to_b(V) -> message(sent(b,t,triple(b,generate_b_nonce(V),encrypt(triple(U,V,generate_expiration_time(V)),bt)))) & b_stored(pair(U,V)))) # label(b_creates_freash_nonces_in_time) # label(axiom).
% 0.07/0.45 (all V all X all Y (message(sent(X,b,pair(encrypt(triple(X,V,generate_expiration_time(Y)),bt),encrypt(generate_b_nonce(Y),V)))) & b_stored(pair(X,Y)) -> b_holds(key(V,X)))) # label(b_accepts_secure_session_key) # label(axiom).
% 0.07/0.45 t_holds(key(at,a)) # label(t_holds_key_at_for_a) # label(axiom).
% 0.07/0.45 t_holds(key(bt,b)) # label(t_holds_key_bt_for_b) # label(axiom).
% 0.07/0.45 party_of_protocol(t) # label(t_is_party_of_protocol) # label(axiom).
% 0.07/0.45 (all U all V all W all X all Y all Z all X1 (message(sent(U,t,triple(U,V,encrypt(triple(W,X,Y),Z)))) & t_holds(key(Z,U)) & t_holds(key(X1,W)) -> message(sent(t,W,triple(encrypt(quadruple(U,X,generate_key(X),Y),X1),encrypt(triple(W,generate_key(X),Y),Z),V))))) # label(server_t_generates_key) # label(axiom).
% 0.07/0.45 (all U all V all W (message(sent(U,V,W)) -> intruder_message(W))) # label(intruder_can_record) # label(axiom).
% 0.07/0.45 (all U all V (intruder_message(pair(U,V)) -> intruder_message(U) & intruder_message(V))) # label(intruder_decomposes_pairs) # label(axiom).
% 0.07/0.45 (all U all V all W (intruder_message(triple(U,V,W)) -> intruder_message(U) & intruder_message(V) & intruder_message(W))) # label(intruder_decomposes_triples) # label(axiom).
% 0.07/0.45 (all U all V all W all X (intruder_message(quadruple(U,V,W,X)) -> intruder_message(U) & intruder_message(V) & intruder_message(W) & intruder_message(X))) # label(intruder_decomposes_quadruples) # label(axiom).
% 0.07/0.45 (all U all V (intruder_message(U) & intruder_message(V) -> intruder_message(pair(U,V)))) # label(intruder_composes_pairs) # label(axiom).
% 0.07/0.45 (all U all V all W (intruder_message(U) & intruder_message(V) & intruder_message(W) -> intruder_message(triple(U,V,W)))) # label(intruder_composes_triples) # label(axiom).
% 0.07/0.45 (all U all V all W all X (intruder_message(U) & intruder_message(V) & intruder_message(W) & intruder_message(X) -> intruder_message(quadruple(U,V,W,X)))) # label(intruder_composes_quadruples) # label(axiom).
% 0.07/0.45 (all U all V all W (intruder_message(encrypt(U,V)) & intruder_holds(key(V,W)) & party_of_protocol(W) -> intruder_message(V))) # label(intruder_interception) # label(axiom).
% 0.07/0.45 (all U all V all W (intruder_message(U) & party_of_protocol(V) & party_of_protocol(W) -> message(sent(V,W,U)))) # label(intruder_message_sent) # label(axiom).
% 0.07/0.45 (all V all W (intruder_message(V) & party_of_protocol(W) -> intruder_holds(key(V,W)))) # label(intruder_holds_key) # label(axiom).
% 0.07/0.45 (all U all V all W (intruder_message(U) & intruder_holds(key(V,W)) & party_of_protocol(W) -> intruder_message(encrypt(U,V)))) # label(intruder_message_encrypted) # label(axiom).
% 0.07/0.45 end_of_list.
% 0.07/0.45
% 0.07/0.45 % From the command line: assign(max_seconds, 300).
% 0.07/0.45
% 0.07/0.45 ============================== end of input ==========================
% 0.07/0.45
% 0.07/0.45 ============================== PROCESS NON-CLAUSAL FORMULAS ==========
% 0.07/0.45
% 0.07/0.45 % Formulas that are not ordinary clauses:
% 0.07/0.45 1 (all U all V all W all X all Y all Z (message(sent(t,a,triple(encrypt(quadruple(Y,Z,W,V),at),X,U))) & a_stored(pair(Y,Z)) -> message(sent(a,Y,pair(X,encrypt(U,W)))) & a_holds(key(W,Y)))) # label(a_forwards_secure) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 2 (all U all V (message(sent(U,b,pair(U,V))) & fresh_to_b(V) -> message(sent(b,t,triple(b,generate_b_nonce(V),encrypt(triple(U,V,generate_expiration_time(V)),bt)))) & b_stored(pair(U,V)))) # label(b_creates_freash_nonces_in_time) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 3 (all V all X all Y (message(sent(X,b,pair(encrypt(triple(X,V,generate_expiration_time(Y)),bt),encrypt(generate_b_nonce(Y),V)))) & b_stored(pair(X,Y)) -> b_holds(key(V,X)))) # label(b_accepts_secure_session_key) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 4 (all U all V all W all X all Y all Z all X1 (message(sent(U,t,triple(U,V,encrypt(triple(W,X,Y),Z)))) & t_holds(key(Z,U)) & t_holds(key(X1,W)) -> message(sent(t,W,triple(encrypt(quadruple(U,X,generate_key(X),Y),X1),encrypt(triple(W,generate_key(X),Y),Z),V))))) # label(server_t_generates_key) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 5 (all U all V all W (message(sent(U,V,W)) -> intruder_message(W))) # label(intruder_can_record) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 6 (all U all V (intruder_message(pair(U,V)) -> intruder_message(U) & intruder_message(V))) # label(intruder_decomposes_pairs) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 7 (all U all V all W (intruder_message(triple(U,V,W)) -> intruder_message(U) & intruder_message(V) & intruder_message(W))) # label(intruder_decomposes_triples) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 8 (all U all V all W all X (intruder_message(quadruple(U,V,W,X)) -> intruder_message(U) & intruder_message(V) & intruder_message(W) & intruder_message(X))) # label(intruder_decomposes_quadruples) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 9 (all U all V (intruder_message(U) & intruder_message(V) -> intruder_message(pair(U,V)))) # label(intruder_composes_pairs) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 10 (all U all V all W (intruder_message(U) & intruder_message(V) & intruder_message(W) -> intruder_message(triple(U,V,W)))) # label(intruder_composes_triples) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 11 (all U all V all W all X (intruder_message(U) & intruder_message(V) & intruder_message(W) & intruder_message(X) -> intruder_message(quadruple(U,V,W,X)))) # label(intruder_composes_quadruples) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 12 (all U all V all W (intruder_message(encrypt(U,V)) & intruder_holds(key(V,W)) & party_of_protocol(W) -> intruder_message(V))) # label(intruder_interception) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 13 (all U all V all W (intruder_message(U) & party_of_protocol(V) & party_of_protocol(W) -> message(sent(V,W,U)))) # label(intruder_message_sent) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 14 (all V all W (intruder_message(V) & party_of_protocol(W) -> intruder_holds(key(V,W)))) # label(intruder_holds_key) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45 15 (all U all V all W (intruder_message(U) & intruder_holds(key(V,W)) & party_of_protocol(W) -> intruder_message(encrypt(U,V)))) # label(intruder_message_encrypted) # label(axiom) # label(non_clause). [assumption].
% 0.07/0.45
% 0.07/0.45 ============================== end of process non-clausal formulas ===
% 0.07/0.45
% 0.07/0.45 ============================== CLAUSES FOR SEARCH ====================
% 0.07/0.45
% 0.07/0.45 formulas(mace4_clauses).
% 0.07/0.45 a_holds(key(at,t)) # label(a_holds_key_at_for_t) # label(axiom).
% 0.07/0.45 party_of_protocol(a) # label(a_is_party_of_protocol) # label(axiom).
% 0.07/0.45 message(sent(a,b,pair(a,an_a_nonce))) # label(a_sent_message_i_to_b) # label(axiom).
% 0.07/0.45 a_stored(pair(b,an_a_nonce)) # label(a_stored_message_i) # label(axiom).
% 0.07/0.45 -message(sent(t,a,triple(encrypt(quadruple(A,B,C,D),at),E,F))) | -a_stored(pair(A,B)) | message(sent(a,A,pair(E,encrypt(F,C)))) # label(a_forwards_secure) # label(axiom).
% 0.07/0.45 -message(sent(t,a,triple(encrypt(quadruple(A,B,C,D),at),E,F))) | -a_stored(pair(A,B)) | a_holds(key(C,A)) # label(a_forwards_secure) # label(axiom).
% 0.07/0.45 b_holds(key(bt,t)) # label(b_hold_key_bt_for_t) # label(axiom).
% 0.07/0.45 party_of_protocol(b) # label(b_is_party_of_protocol) # label(axiom).
% 0.07/0.45 fresh_to_b(an_a_nonce) # label(nonce_a_is_fresh_to_b) # label(axiom).
% 0.07/0.45 -message(sent(A,b,pair(A,B))) | -fresh_to_b(B) | message(sent(b,t,triple(b,generate_b_nonce(B),encrypt(triple(A,B,generate_expiration_time(B)),bt)))) # label(b_creates_freash_nonces_in_time) # label(axiom).
% 0.07/0.45 -message(sent(A,b,pair(A,B))) | -fresh_to_b(B) | b_stored(pair(A,B)) # label(b_creates_freash_nonces_in_time) # label(axiom).
% 0.07/0.45 -message(sent(A,b,pair(encrypt(triple(A,B,generate_expiration_time(C)),bt),encrypt(generate_b_nonce(C),B)))) | -b_stored(pair(A,C)) | b_holds(key(B,A)) # label(b_accepts_secure_session_key) # label(axiom).
% 0.07/0.45 t_holds(key(at,a)) # label(t_holds_key_at_for_a) # label(axiom).
% 0.07/0.45 t_holds(key(bt,b)) # label(t_holds_key_bt_for_b) # label(axiom).
% 0.07/0.45 party_of_protocol(t) # label(t_is_party_of_protocol) # label(axiom).
% 0.07/0.45 -message(sent(A,t,triple(A,B,encrypt(triple(C,D,E),F)))) | -t_holds(key(F,A)) | -t_holds(key(V6,C)) | message(sent(t,C,triple(encrypt(quadruple(A,D,generate_key(D),E),V6),encrypt(triple(C,generate_key(D),E),F),B))) # label(server_t_generates_key) # label(axiom).
% 0.07/0.45 -message(sent(A,B,C)) | intruder_message(C) # label(intruder_can_record) # label(axiom).
% 0.07/0.45 -intruder_message(pair(A,B)) | intruder_message(A) # label(intruder_decomposes_pairs) # label(axiom).
% 0.07/0.45 -intruder_message(pair(A,B)) | intruder_message(B) # label(intruder_decomposes_pairs) # label(axiom).
% 0.07/0.45 -intruder_message(triple(A,B,C)) | intruder_message(A) # label(intruder_decomposes_triples) # label(axiom).
% 0.07/0.45 -intruder_message(triple(A,B,C)) | intruder_message(B) # label(intruder_decomposes_triples) # label(axiom).
% 0.07/0.45 -intruder_message(triple(A,B,C)) | intruder_message(C) # label(intruder_decomposes_triples) # label(axiom).
% 0.07/0.45 -intruder_message(quadruple(A,B,C,D)) | intruder_message(A) # label(intruder_decomposes_quadruples) # label(axiom).
% 0.07/0.45 -intruder_message(quadruple(A,B,C,D)) | intruder_message(B) # label(intruder_decomposes_quadruples) # label(axiom).
% 0.07/0.45 -intruder_message(quadruple(A,B,C,D)) | intruder_message(C) # label(intruder_decomposes_quadruples) # label(axiom).
% 0.07/0.45 -intruder_message(quadruple(A,B,C,D)) | intruder_message(D) # label(intruder_decomposes_quadruples) # label(axiom).
% 0.07/0.45 -intruder_message(A) | -intruder_message(B) | intruder_message(pair(A,B)) # label(intruder_composes_pairs) # label(axiom).
% 0.07/0.45 -intruder_message(A) | -intruder_message(B) | -intruder_message(C) | intruder_message(triple(A,B,C)) # label(intruder_composes_triples) # label(axiom).
% 0.07/0.45 -intruder_message(A) | -intruder_message(B) | -intruder_message(C) | -intruder_message(D) | intruder_message(quadruple(A,B,C,D)) # label(intruder_composes_quadruples) # label(axiom).
% 0.07/0.45 -intruder_message(encrypt(A,B)) | -intruder_holds(key(B,C)) | -party_of_protocol(C) | intruder_message(B) # label(intruder_interception) # label(axiom).
% 0.07/0.45 -intruder_message(A) | -party_of_protocol(B) | -party_of_protocol(C) | message(sent(B,C,A)) # label(intruder_message_sent) # label(axiom).
% 0.07/0.45 -intruder_message(A) | -party_of_protocol(B) | intruder_holds(key(A,B)) # label(intruder_holds_key) # label(axiom).
% 0.07/0.45 -intruder_message(A) | -intruder_holds(key(B,C)) | -party_of_protocol(C) | intruder_message(encrypt(A,B)) # label(intruder_message_encrypted) # label(axiom).
% 0.07/0.45 end_of_list.
% 0.07/0.45
% 0.07/0.45 ============================== end of clauses for search =============
% 0.07/0.45 % SZS output start FiniteModel
% 0.07/0.45
% 0.07/0.45 % There are no natural numbers in the input.
% 0.07/0.45
% 0.07/0.45 a : 0
% 0.07/0.45
% 0.07/0.45 an_a_nonce : 0
% 0.07/0.45
% 0.07/0.45 at : 0
% 0.07/0.45
% 0.07/0.45 b : 0
% 0.07/0.45
% 0.07/0.45 bt : 0
% 0.07/0.45
% 0.07/0.45 t : 0
% 0.07/0.45
% 0.07/0.45 generate_b_nonce :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 0 0
% 0.07/0.45
% 0.07/0.45 generate_expiration_time :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 0 0
% 0.07/0.45
% 0.07/0.45 generate_key :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 0 0
% 0.07/0.45
% 0.07/0.45 encrypt :
% 0.07/0.45 | 0 1
% 0.07/0.45 --+----
% 0.07/0.45 0 | 0 0
% 0.07/0.45 1 | 0 0
% 0.07/0.45
% 0.07/0.45 key :
% 0.07/0.45 | 0 1
% 0.07/0.45 --+----
% 0.07/0.45 0 | 0 0
% 0.07/0.45 1 | 0 0
% 0.07/0.45
% 0.07/0.45 pair :
% 0.07/0.45 | 0 1
% 0.07/0.45 --+----
% 0.07/0.45 0 | 0 0
% 0.07/0.45 1 | 0 0
% 0.07/0.45 sent(0,0,0) = 0.
% 0.07/0.45 sent(0,0,1) = 0.
% 0.07/0.45 sent(0,1,0) = 0.
% 0.07/0.45 sent(0,1,1) = 0.
% 0.07/0.45 sent(1,0,0) = 0.
% 0.07/0.45 sent(1,0,1) = 0.
% 0.07/0.45 sent(1,1,0) = 0.
% 0.07/0.45 sent(1,1,1) = 0.
% 0.07/0.45 triple(0,0,0) = 0.
% 0.07/0.45 triple(0,0,1) = 0.
% 0.07/0.45 triple(0,1,0) = 0.
% 0.07/0.45 triple(0,1,1) = 0.
% 0.07/0.45 triple(1,0,0) = 0.
% 0.07/0.45 triple(1,0,1) = 0.
% 0.07/0.45 triple(1,1,0) = 0.
% 0.07/0.45 triple(1,1,1) = 0.
% 0.07/0.45 quadruple(0,0,0,0) = 0.
% 0.07/0.45 quadruple(0,0,0,1) = 0.
% 0.07/0.45 quadruple(0,0,1,0) = 0.
% 0.07/0.45 quadruple(0,0,1,1) = 0.
% 0.07/0.45 quadruple(0,1,0,0) = 0.
% 0.07/0.45 quadruple(0,1,0,1) = 0.
% 0.07/0.45 quadruple(0,1,1,0) = 0.
% 0.07/0.45 quadruple(0,1,1,1) = 0.
% 0.07/0.45 quadruple(1,0,0,0) = 0.
% 0.07/0.45 quadruple(1,0,0,1) = 0.
% 0.07/0.45 quadruple(1,0,1,0) = 0.
% 0.07/0.45 quadruple(1,0,1,1) = 0.
% 0.07/0.45 quadruple(1,1,0,0) = 0.
% 0.07/0.45 quadruple(1,1,0,1) = 0.
% 0.07/0.45 quadruple(1,1,1,0) = 0.
% 0.07/0.45 quadruple(1,1,1,1) = 0.
% 0.07/0.45
% 0.07/0.45 a_holds :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 1 0
% 0.07/0.45
% 0.07/0.45 a_stored :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 1 0
% 0.07/0.45
% 0.07/0.45 b_holds :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 1 0
% 0.07/0.45
% 0.07/0.45 b_stored :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 1 0
% 0.07/0.45
% 0.07/0.45 fresh_to_b :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 1 0
% 0.07/0.45
% 0.07/0.45 intruder_holds :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 1 0
% 0.07/0.45
% 0.07/0.45 intruder_message :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 1 1
% 0.07/0.45
% 0.07/0.45 message :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 1 0
% 0.07/0.45
% 0.07/0.45 party_of_protocol :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 1 0
% 0.07/0.45
% 0.07/0.45 t_holds :
% 0.07/0.45 0 1
% 0.07/0.45 -------
% 0.07/0.45 1 0
% 0.07/0.45
% 0.07/0.45 % SZS output end FiniteModel
% 0.07/0.45 ------ process 41339 exit (max_models) ------
% 0.07/0.45
% 0.07/0.45 User_CPU=0.01, System_CPU=0.00, Wall_clock=0.
% 0.07/0.45
% 0.07/0.45 Exiting with 1 model.
% 0.07/0.45
% 0.07/0.45 Process 41339 exit (max_models) Tue Feb 7 22:56:32 2017
% 0.07/0.45 The process finished Tue Feb 7 22:56:32 2017
% 0.07/0.45 Mace4 ended
%------------------------------------------------------------------------------