TPTP Problem File: SWW961+1.p

View Solutions - Solve Problem

%--------------------------------------------------------------------------
% File     : SWW961+1 : TPTP v8.2.0. Released v7.4.0.
% Domain   : Software Verification
% Problem  : Attack on a variant of Needham-Schroeder-Lowe Public Key Protocol
% Version  : [LT19] axioms : Especial.
% English  : Attack on a modified version of Needham-Schroeder-Lowe Public Key 
%            Protocol. This variant introduces a flaw by using an associative 
%            pairing function. Attack demonstrates violation of weak agreement 
%            property of A to B.

% Refs     : [BO97]  Bull & Otway (1997), The Authentication Protocol
%          : [RS98]  Ryan & Schneider (1998), An Attack on a Recursive Auth
%          : [LT19]  Li & Tiu (2019), Combining ProVerif and Automated Theo
%          : [Li20]  Li (2020), Email to Geoff Sutcliffe
% Source   : [Li20]
% Names    : NSLPK-modified-agree-A-to-B.p [LT20]

% Status   : Theorem
% Rating   : 0.31 v8.2.0, 0.25 v7.5.0, 0.28 v7.4.0
% Syntax   : Number of formulae    :  177 ( 111 unt;   0 def)
%            Number of atoms       :  273 (  91 equ)
%            Maximal formula atoms :    7 (   1 avg)
%            Number of connectives :  176 (  80   ~;   0   |;  30   &)
%                                         (   0 <=>;  66  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   11 (   3 avg)
%            Maximal term depth    :    6 (   1 avg)
%            Number of predicates  :    6 (   5 usr;   0 prp; 1-2 aty)
%            Number of functors    :   52 (  52 usr;  15 con; 0-2 aty)
%            Number of variables   :  130 ( 130   !;   0   ?)
% SPC      : FOF_THM_RFO_SEQ

% Comments : Generated by a modified version of ProVerif used in the
%            ProVerif-ATP project [LT19].
%--------------------------------------------------------------------------
fof(ax0,axiom,
    constr_CONST_0x30 != constr_CONST_1 ).

fof(ax1,axiom,
    constr_CONST_0x30 != constr_CONST_2 ).

fof(ax2,axiom,
    constr_CONST_0x30 != constr_CONST_3 ).

fof(ax3,axiom,
    constr_CONST_0x30 != constr_CONST_4 ).

fof(ax4,axiom,
    constr_CONST_0x30 != name_A ).

fof(ax5,axiom,
    constr_CONST_0x30 != name_B ).

fof(ax6,axiom,
    constr_CONST_0x30 != name_I ).

fof(ax7,axiom,
    constr_CONST_0x30 != name_c ).

fof(ax8,axiom,
    constr_CONST_0x30 != name_objective ).

fof(ax9,axiom,
    constr_CONST_0x30 != name_skA ).

fof(ax10,axiom,
    constr_CONST_0x30 != name_skB ).

fof(ax11,axiom,
    constr_CONST_0x30 != name_skS ).

fof(ax12,axiom,
    constr_CONST_1 != constr_CONST_2 ).

fof(ax13,axiom,
    constr_CONST_1 != constr_CONST_3 ).

fof(ax14,axiom,
    constr_CONST_1 != constr_CONST_4 ).

fof(ax15,axiom,
    constr_CONST_1 != name_A ).

fof(ax16,axiom,
    constr_CONST_1 != name_B ).

fof(ax17,axiom,
    constr_CONST_1 != name_I ).

fof(ax18,axiom,
    constr_CONST_1 != name_c ).

fof(ax19,axiom,
    constr_CONST_1 != name_objective ).

fof(ax20,axiom,
    constr_CONST_1 != name_skA ).

fof(ax21,axiom,
    constr_CONST_1 != name_skB ).

fof(ax22,axiom,
    constr_CONST_1 != name_skS ).

fof(ax23,axiom,
    constr_CONST_2 != constr_CONST_3 ).

fof(ax24,axiom,
    constr_CONST_2 != constr_CONST_4 ).

fof(ax25,axiom,
    constr_CONST_2 != name_A ).

fof(ax26,axiom,
    constr_CONST_2 != name_B ).

fof(ax27,axiom,
    constr_CONST_2 != name_I ).

fof(ax28,axiom,
    constr_CONST_2 != name_c ).

fof(ax29,axiom,
    constr_CONST_2 != name_objective ).

fof(ax30,axiom,
    constr_CONST_2 != name_skA ).

fof(ax31,axiom,
    constr_CONST_2 != name_skB ).

fof(ax32,axiom,
    constr_CONST_2 != name_skS ).

fof(ax33,axiom,
    constr_CONST_3 != constr_CONST_4 ).

fof(ax34,axiom,
    constr_CONST_3 != name_A ).

fof(ax35,axiom,
    constr_CONST_3 != name_B ).

fof(ax36,axiom,
    constr_CONST_3 != name_I ).

fof(ax37,axiom,
    constr_CONST_3 != name_c ).

fof(ax38,axiom,
    constr_CONST_3 != name_objective ).

fof(ax39,axiom,
    constr_CONST_3 != name_skA ).

fof(ax40,axiom,
    constr_CONST_3 != name_skB ).

fof(ax41,axiom,
    constr_CONST_3 != name_skS ).

fof(ax42,axiom,
    constr_CONST_4 != name_A ).

fof(ax43,axiom,
    constr_CONST_4 != name_B ).

fof(ax44,axiom,
    constr_CONST_4 != name_I ).

fof(ax45,axiom,
    constr_CONST_4 != name_c ).

fof(ax46,axiom,
    constr_CONST_4 != name_objective ).

fof(ax47,axiom,
    constr_CONST_4 != name_skA ).

fof(ax48,axiom,
    constr_CONST_4 != name_skB ).

fof(ax49,axiom,
    constr_CONST_4 != name_skS ).

fof(ax50,axiom,
    name_A != name_B ).

fof(ax51,axiom,
    name_A != name_I ).

fof(ax52,axiom,
    name_A != name_c ).

fof(ax53,axiom,
    name_A != name_objective ).

fof(ax54,axiom,
    name_A != name_skA ).

fof(ax55,axiom,
    name_A != name_skB ).

fof(ax56,axiom,
    name_A != name_skS ).

fof(ax57,axiom,
    name_B != name_I ).

fof(ax58,axiom,
    name_B != name_c ).

fof(ax59,axiom,
    name_B != name_objective ).

fof(ax60,axiom,
    name_B != name_skA ).

fof(ax61,axiom,
    name_B != name_skB ).

fof(ax62,axiom,
    name_B != name_skS ).

fof(ax63,axiom,
    name_I != name_c ).

fof(ax64,axiom,
    name_I != name_objective ).

fof(ax65,axiom,
    name_I != name_skA ).

fof(ax66,axiom,
    name_I != name_skB ).

fof(ax67,axiom,
    name_I != name_skS ).

fof(ax68,axiom,
    name_c != name_objective ).

fof(ax69,axiom,
    name_c != name_skA ).

fof(ax70,axiom,
    name_c != name_skB ).

fof(ax71,axiom,
    name_c != name_skS ).

fof(ax72,axiom,
    name_objective != name_skA ).

fof(ax73,axiom,
    name_objective != name_skB ).

fof(ax74,axiom,
    name_objective != name_skS ).

fof(ax75,axiom,
    name_skA != name_skB ).

fof(ax76,axiom,
    name_skA != name_skS ).

fof(ax77,axiom,
    name_skB != name_skS ).

fof(ax78,axiom,
    ! [VAR_K_24,VAR_M_23] : constr_adec(constr_aenc(VAR_M_23,constr_pkey(VAR_K_24)),VAR_K_24) = VAR_M_23 ).

fof(ax79,axiom,
    ! [VAR_K_22,VAR_M_21] : constr_dec(constr_enc(VAR_M_21,VAR_K_22),VAR_K_22) = VAR_M_21 ).

fof(ax80,axiom,
    ! [VAR_K_20X30,VAR_M_19] : constr_getmess(constr_sign(VAR_M_19,VAR_K_20X30)) = VAR_M_19 ).

fof(ax81,axiom,
    ! [VAR_K_0X30,VAR_M_0X30] : constr_checksign(constr_sign(VAR_M_0X30,VAR_K_0X30),constr_pkey(VAR_K_0X30)) = VAR_M_0X30 ).

fof(ax82,axiom,
    ! [VAR_X_17,VAR_Y_18,VAR_Z_0X30] : tuple_assoc_pair(VAR_X_17,tuple_assoc_pair(VAR_Y_18,VAR_Z_0X30)) = tuple_assoc_pair(tuple_assoc_pair(VAR_X_17,VAR_Y_18),VAR_Z_0X30) ).

fof(ax83,axiom,
    ! [VAR_X0X30_15,VAR_X1_16] : constr_assoc_pair_2_get_1_bitstring(tuple_assoc_pair(VAR_X0X30_15,VAR_X1_16)) = VAR_X1_16 ).

fof(ax84,axiom,
    ! [VAR_X0X30_13,VAR_X1_14] : constr_assoc_pair_2_get_0x30_bitstring(tuple_assoc_pair(VAR_X0X30_13,VAR_X1_14)) = VAR_X0X30_13 ).

fof(ax85,axiom,
    ! [VAR_X0X30_11,VAR_X1_12] : constr_assoc_pair_2_get_1(tuple_assoc_pair(VAR_X0X30_11,VAR_X1_12)) = VAR_X1_12 ).

fof(ax86,axiom,
    ! [VAR_X0X30_9,VAR_X1_10X30] : constr_assoc_pair_2_get_0x30(tuple_assoc_pair(VAR_X0X30_9,VAR_X1_10X30)) = VAR_X0X30_9 ).

fof(ax87,axiom,
    ! [VAR_X0X30_7,VAR_X1_8] : constr_tuple_2_get_1_bitstring(tuple_2(VAR_X0X30_7,VAR_X1_8)) = VAR_X1_8 ).

fof(ax88,axiom,
    ! [VAR_X0X30_0X30,VAR_X1_0X30] : constr_tuple_2_get_0x30(tuple_2(VAR_X0X30_0X30,VAR_X1_0X30)) = VAR_X0X30_0X30 ).

fof(ax89,axiom,
    ! [VAR_X_41,VAR_Y_42] : pred_eq_bitstring_bitstring(VAR_X_41,VAR_Y_42) ).

fof(ax90,axiom,
    ! [VAR_V_48] :
      ( pred_attacker(VAR_V_48)
     => pred_attacker(constr_tuple_2_get_1_bitstring(VAR_V_48)) ) ).

fof(ax91,axiom,
    ! [VAR_V_50X30] :
      ( pred_attacker(VAR_V_50X30)
     => pred_attacker(constr_tuple_2_get_0x30(VAR_V_50X30)) ) ).

fof(ax92,axiom,
    pred_attacker(tuple_true) ).

fof(ax93,axiom,
    ! [VAR_V_53,VAR_V_54] :
      ( ( pred_attacker(VAR_V_53)
        & pred_attacker(VAR_V_54) )
     => pred_attacker(constr_sign(VAR_V_53,VAR_V_54)) ) ).

fof(ax94,axiom,
    ! [VAR_V_56] :
      ( pred_attacker(VAR_V_56)
     => pred_attacker(constr_pkey(VAR_V_56)) ) ).

fof(ax95,axiom,
    ! [VAR_V_58] :
      ( pred_attacker(VAR_V_58)
     => pred_attacker(tuple_out_3(VAR_V_58)) ) ).

fof(ax96,axiom,
    ! [VAR_V_61] :
      ( pred_attacker(tuple_out_3(VAR_V_61))
     => pred_attacker(VAR_V_61) ) ).

fof(ax97,axiom,
    ! [VAR_V_64] :
      ( pred_attacker(VAR_V_64)
     => pred_attacker(tuple_out_2(VAR_V_64)) ) ).

fof(ax98,axiom,
    ! [VAR_V_67] :
      ( pred_attacker(tuple_out_2(VAR_V_67))
     => pred_attacker(VAR_V_67) ) ).

fof(ax99,axiom,
    ! [VAR_V_70X30] :
      ( pred_attacker(VAR_V_70X30)
     => pred_attacker(tuple_out_1(VAR_V_70X30)) ) ).

fof(ax100,axiom,
    ! [VAR_V_73] :
      ( pred_attacker(tuple_out_1(VAR_V_73))
     => pred_attacker(VAR_V_73) ) ).

fof(ax101,axiom,
    ! [VAR_V_77] :
      ( pred_attacker(VAR_V_77)
     => pred_attacker(tuple_key_retrieval_server_out_2(VAR_V_77)) ) ).

fof(ax102,axiom,
    ! [VAR_V_80X30] :
      ( pred_attacker(tuple_key_retrieval_server_out_2(VAR_V_80X30))
     => pred_attacker(VAR_V_80X30) ) ).

fof(ax103,axiom,
    ! [VAR_V_84,VAR_V_85] :
      ( ( pred_attacker(VAR_V_84)
        & pred_attacker(VAR_V_85) )
     => pred_attacker(tuple_key_retrieval_server_in_1(VAR_V_84,VAR_V_85)) ) ).

fof(ax104,axiom,
    ! [VAR_V_92,VAR_V_93] :
      ( pred_attacker(tuple_key_retrieval_server_in_1(VAR_V_92,VAR_V_93))
     => pred_attacker(VAR_V_92) ) ).

fof(ax105,axiom,
    ! [VAR_V_95,VAR_V_96] :
      ( pred_attacker(tuple_key_retrieval_server_in_1(VAR_V_95,VAR_V_96))
     => pred_attacker(VAR_V_96) ) ).

fof(ax106,axiom,
    ! [VAR_V_10X300X30,VAR_V_10X301] :
      ( ( pred_attacker(VAR_V_10X300X30)
        & pred_attacker(VAR_V_10X301) )
     => pred_attacker(tuple_key_register_server_in_1(VAR_V_10X300X30,VAR_V_10X301)) ) ).

fof(ax107,axiom,
    ! [VAR_V_10X308,VAR_V_10X309] :
      ( pred_attacker(tuple_key_register_server_in_1(VAR_V_10X308,VAR_V_10X309))
     => pred_attacker(VAR_V_10X308) ) ).

fof(ax108,axiom,
    ! [VAR_V_111,VAR_V_112] :
      ( pred_attacker(tuple_key_register_server_in_1(VAR_V_111,VAR_V_112))
     => pred_attacker(VAR_V_112) ) ).

fof(ax109,axiom,
    ! [VAR_V_115] :
      ( pred_attacker(VAR_V_115)
     => pred_attacker(constr_getmess(VAR_V_115)) ) ).

fof(ax110,axiom,
    pred_attacker(tuple_false) ).

fof(ax111,axiom,
    ! [VAR_V_118,VAR_V_119] :
      ( ( pred_attacker(VAR_V_118)
        & pred_attacker(VAR_V_119) )
     => pred_attacker(constr_enc(VAR_V_118,VAR_V_119)) ) ).

fof(ax112,axiom,
    ! [VAR_V_122,VAR_V_123] :
      ( ( pred_attacker(VAR_V_122)
        & pred_attacker(VAR_V_123) )
     => pred_attacker(constr_dec(VAR_V_122,VAR_V_123)) ) ).

fof(ax113,axiom,
    ! [VAR_V_125] :
      ( pred_attacker(VAR_V_125)
     => pred_attacker(tuple_client_B_out_6(VAR_V_125)) ) ).

fof(ax114,axiom,
    ! [VAR_V_128] :
      ( pred_attacker(tuple_client_B_out_6(VAR_V_128))
     => pred_attacker(VAR_V_128) ) ).

fof(ax115,axiom,
    ! [VAR_V_131] :
      ( pred_attacker(VAR_V_131)
     => pred_attacker(tuple_client_B_out_4(VAR_V_131)) ) ).

fof(ax116,axiom,
    ! [VAR_V_134] :
      ( pred_attacker(tuple_client_B_out_4(VAR_V_134))
     => pred_attacker(VAR_V_134) ) ).

fof(ax117,axiom,
    ! [VAR_V_138,VAR_V_139] :
      ( ( pred_attacker(VAR_V_138)
        & pred_attacker(VAR_V_139) )
     => pred_attacker(tuple_client_B_out_1(VAR_V_138,VAR_V_139)) ) ).

fof(ax118,axiom,
    ! [VAR_V_146,VAR_V_147] :
      ( pred_attacker(tuple_client_B_out_1(VAR_V_146,VAR_V_147))
     => pred_attacker(VAR_V_146) ) ).

fof(ax119,axiom,
    ! [VAR_V_149,VAR_V_150X30] :
      ( pred_attacker(tuple_client_B_out_1(VAR_V_149,VAR_V_150X30))
     => pred_attacker(VAR_V_150X30) ) ).

fof(ax120,axiom,
    ! [VAR_V_153] :
      ( pred_attacker(VAR_V_153)
     => pred_attacker(tuple_client_B_in_5(VAR_V_153)) ) ).

fof(ax121,axiom,
    ! [VAR_V_156] :
      ( pred_attacker(tuple_client_B_in_5(VAR_V_156))
     => pred_attacker(VAR_V_156) ) ).

fof(ax122,axiom,
    ! [VAR_V_159] :
      ( pred_attacker(VAR_V_159)
     => pred_attacker(tuple_client_B_in_3(VAR_V_159)) ) ).

fof(ax123,axiom,
    ! [VAR_V_162] :
      ( pred_attacker(tuple_client_B_in_3(VAR_V_162))
     => pred_attacker(VAR_V_162) ) ).

fof(ax124,axiom,
    ! [VAR_V_165] :
      ( pred_attacker(VAR_V_165)
     => pred_attacker(tuple_client_B_in_2(VAR_V_165)) ) ).

fof(ax125,axiom,
    ! [VAR_V_168] :
      ( pred_attacker(tuple_client_B_in_2(VAR_V_168))
     => pred_attacker(VAR_V_168) ) ).

fof(ax126,axiom,
    ! [VAR_V_171] :
      ( pred_attacker(VAR_V_171)
     => pred_attacker(tuple_client_A_out_5(VAR_V_171)) ) ).

fof(ax127,axiom,
    ! [VAR_V_174] :
      ( pred_attacker(tuple_client_A_out_5(VAR_V_174))
     => pred_attacker(VAR_V_174) ) ).

fof(ax128,axiom,
    ! [VAR_V_177] :
      ( pred_attacker(VAR_V_177)
     => pred_attacker(tuple_client_A_out_3(VAR_V_177)) ) ).

fof(ax129,axiom,
    ! [VAR_V_180X30] :
      ( pred_attacker(tuple_client_A_out_3(VAR_V_180X30))
     => pred_attacker(VAR_V_180X30) ) ).

fof(ax130,axiom,
    ! [VAR_V_184,VAR_V_185] :
      ( ( pred_attacker(VAR_V_184)
        & pred_attacker(VAR_V_185) )
     => pred_attacker(tuple_client_A_out_1(VAR_V_184,VAR_V_185)) ) ).

fof(ax131,axiom,
    ! [VAR_V_192,VAR_V_193] :
      ( pred_attacker(tuple_client_A_out_1(VAR_V_192,VAR_V_193))
     => pred_attacker(VAR_V_192) ) ).

fof(ax132,axiom,
    ! [VAR_V_195,VAR_V_196] :
      ( pred_attacker(tuple_client_A_out_1(VAR_V_195,VAR_V_196))
     => pred_attacker(VAR_V_196) ) ).

fof(ax133,axiom,
    ! [VAR_V_199] :
      ( pred_attacker(VAR_V_199)
     => pred_attacker(tuple_client_A_in_4(VAR_V_199)) ) ).

fof(ax134,axiom,
    ! [VAR_V_20X302] :
      ( pred_attacker(tuple_client_A_in_4(VAR_V_20X302))
     => pred_attacker(VAR_V_20X302) ) ).

fof(ax135,axiom,
    ! [VAR_V_20X305] :
      ( pred_attacker(VAR_V_20X305)
     => pred_attacker(tuple_client_A_in_2(VAR_V_20X305)) ) ).

fof(ax136,axiom,
    ! [VAR_V_20X308] :
      ( pred_attacker(tuple_client_A_in_2(VAR_V_20X308))
     => pred_attacker(VAR_V_20X308) ) ).

fof(ax137,axiom,
    ! [VAR_V_212,VAR_V_213] :
      ( ( pred_attacker(VAR_V_212)
        & pred_attacker(VAR_V_213) )
     => pred_attacker(constr_checksign(VAR_V_212,VAR_V_213)) ) ).

fof(ax138,axiom,
    ! [VAR_V_215] :
      ( pred_attacker(VAR_V_215)
     => pred_attacker(constr_assoc_pair_2_get_1_bitstring(VAR_V_215)) ) ).

fof(ax139,axiom,
    ! [VAR_V_217] :
      ( pred_attacker(VAR_V_217)
     => pred_attacker(constr_assoc_pair_2_get_1(VAR_V_217)) ) ).

fof(ax140,axiom,
    ! [VAR_V_219] :
      ( pred_attacker(VAR_V_219)
     => pred_attacker(constr_assoc_pair_2_get_0x30_bitstring(VAR_V_219)) ) ).

fof(ax141,axiom,
    ! [VAR_V_221] :
      ( pred_attacker(VAR_V_221)
     => pred_attacker(constr_assoc_pair_2_get_0x30(VAR_V_221)) ) ).

fof(ax142,axiom,
    ! [VAR_V_224,VAR_V_225] :
      ( ( pred_attacker(VAR_V_224)
        & pred_attacker(VAR_V_225) )
     => pred_attacker(tuple_assoc_pair(VAR_V_224,VAR_V_225)) ) ).

fof(ax143,axiom,
    ! [VAR_V_232,VAR_V_233] :
      ( pred_attacker(tuple_assoc_pair(VAR_V_232,VAR_V_233))
     => pred_attacker(VAR_V_232) ) ).

fof(ax144,axiom,
    ! [VAR_V_235,VAR_V_236] :
      ( pred_attacker(tuple_assoc_pair(VAR_V_235,VAR_V_236))
     => pred_attacker(VAR_V_236) ) ).

fof(ax145,axiom,
    ! [VAR_V_240X30,VAR_V_241] :
      ( ( pred_attacker(VAR_V_240X30)
        & pred_attacker(VAR_V_241) )
     => pred_attacker(constr_aenc(VAR_V_240X30,VAR_V_241)) ) ).

fof(ax146,axiom,
    ! [VAR_V_244,VAR_V_245] :
      ( ( pred_attacker(VAR_V_244)
        & pred_attacker(VAR_V_245) )
     => pred_attacker(constr_adec(VAR_V_244,VAR_V_245)) ) ).

fof(ax147,axiom,
    pred_attacker(constr_CONST_4) ).

fof(ax148,axiom,
    pred_attacker(constr_CONST_3) ).

fof(ax149,axiom,
    pred_attacker(constr_CONST_2) ).

fof(ax150,axiom,
    pred_attacker(constr_CONST_1) ).

fof(ax151,axiom,
    pred_attacker(constr_CONST_0x30) ).

fof(ax152,axiom,
    ! [VAR_V_252,VAR_V_253] :
      ( ( pred_attacker(VAR_V_252)
        & pred_attacker(VAR_V_253) )
     => pred_attacker(tuple_2(VAR_V_252,VAR_V_253)) ) ).

fof(ax153,axiom,
    ! [VAR_V_260X30,VAR_V_261] :
      ( pred_attacker(tuple_2(VAR_V_260X30,VAR_V_261))
     => pred_attacker(VAR_V_260X30) ) ).

fof(ax154,axiom,
    ! [VAR_V_263,VAR_V_264] :
      ( pred_attacker(tuple_2(VAR_V_263,VAR_V_264))
     => pred_attacker(VAR_V_264) ) ).

fof(ax155,axiom,
    ! [VAR_V_266,VAR_V_267] :
      ( ( pred_mess(VAR_V_267,VAR_V_266)
        & pred_attacker(VAR_V_267) )
     => pred_attacker(VAR_V_266) ) ).

fof(ax156,axiom,
    ! [VAR_V_268,VAR_V_269] :
      ( ( pred_attacker(VAR_V_269)
        & pred_attacker(VAR_V_268) )
     => pred_mess(VAR_V_269,VAR_V_268) ) ).

fof(ax157,axiom,
    pred_attacker(name_c) ).

fof(ax158,axiom,
    pred_attacker(name_I) ).

fof(ax159,axiom,
    pred_attacker(name_B) ).

fof(ax160,axiom,
    pred_attacker(name_A) ).

fof(ax161,axiom,
    ! [VAR_V_271] : pred_equal(VAR_V_271,VAR_V_271) ).

fof(ax162,axiom,
    ! [VAR_V_272] : pred_attacker(name_new0x2Dname(VAR_V_272)) ).

fof(ax163,axiom,
    pred_table(tuple_keys(name_A,constr_pkey(name_skA))) ).

fof(ax164,axiom,
    pred_table(tuple_keys(name_B,constr_pkey(name_skB))) ).

fof(ax165,axiom,
    pred_attacker(tuple_out_1(constr_pkey(name_skA))) ).

fof(ax166,axiom,
    pred_attacker(tuple_out_2(constr_pkey(name_skB))) ).

fof(ax167,axiom,
    pred_attacker(tuple_out_3(constr_pkey(name_skS))) ).

fof(ax168,axiom,
    pred_attacker(tuple_client_A_out_1(name_A,name_I)) ).

fof(ax169,axiom,
    ! [VAR_0X40SID_392,VAR_SIGN_I_PKI_391] :
      ( ( pred_eq_bitstring_bitstring(name_I,constr_tuple_2_get_0x30(constr_checksign(VAR_SIGN_I_PKI_391,constr_pkey(name_skS))))
        & pred_attacker(tuple_client_A_in_2(VAR_SIGN_I_PKI_391)) )
     => pred_attacker(tuple_client_A_out_3(constr_aenc(tuple_assoc_pair(name_Na(VAR_0X40SID_392),name_A),constr_tuple_2_get_1_bitstring(constr_checksign(VAR_SIGN_I_PKI_391,constr_pkey(name_skS)))))) ) ).

fof(ax170,axiom,
    ! [VAR_0X40SID_463,VAR_AENC_NA_NI_I_462,VAR_SIGN_I_PKI_464] :
      ( ( pred_eq_bitstring_bitstring(name_I,constr_assoc_pair_2_get_1(constr_assoc_pair_2_get_1_bitstring(constr_adec(VAR_AENC_NA_NI_I_462,name_skA))))
        & pred_eq_bitstring_bitstring(name_Na(VAR_0X40SID_463),constr_assoc_pair_2_get_0x30(constr_adec(VAR_AENC_NA_NI_I_462,name_skA)))
        & pred_attacker(tuple_client_A_in_4(VAR_AENC_NA_NI_I_462))
        & pred_eq_bitstring_bitstring(name_I,constr_tuple_2_get_0x30(constr_checksign(VAR_SIGN_I_PKI_464,constr_pkey(name_skS))))
        & pred_attacker(tuple_client_A_in_2(VAR_SIGN_I_PKI_464)) )
     => pred_attacker(tuple_client_A_out_5(constr_aenc(constr_assoc_pair_2_get_0x30_bitstring(constr_assoc_pair_2_get_1_bitstring(constr_adec(VAR_AENC_NA_NI_I_462,name_skA))),constr_tuple_2_get_1_bitstring(constr_checksign(VAR_SIGN_I_PKI_464,constr_pkey(name_skS)))))) ) ).

fof(ax171,axiom,
    pred_attacker(tuple_client_B_out_1(name_B,name_A)) ).

fof(ax172,axiom,
    ! [VAR_0X40SID_581,VAR_AENC_NA_A_579,VAR_SIGN_A_PKA_580X30] :
      ( ( pred_eq_bitstring_bitstring(name_A,constr_assoc_pair_2_get_1(constr_adec(VAR_AENC_NA_A_579,name_skB)))
        & pred_attacker(tuple_client_B_in_3(VAR_AENC_NA_A_579))
        & pred_eq_bitstring_bitstring(name_A,constr_tuple_2_get_0x30(constr_checksign(VAR_SIGN_A_PKA_580X30,constr_pkey(name_skS))))
        & pred_attacker(tuple_client_B_in_2(VAR_SIGN_A_PKA_580X30)) )
     => pred_attacker(tuple_client_B_out_4(constr_aenc(tuple_assoc_pair(constr_assoc_pair_2_get_0x30_bitstring(constr_adec(VAR_AENC_NA_A_579,name_skB)),tuple_assoc_pair(name_Nb(VAR_0X40SID_581),name_B)),constr_tuple_2_get_1_bitstring(constr_checksign(VAR_SIGN_A_PKA_580X30,constr_pkey(name_skS)))))) ) ).

fof(ax173,axiom,
    ! [VAR_0X40SID_60X305,VAR_AENC_NA_A_60X307,VAR_AENC_NB_60X306,VAR_SIGN_A_PKA_60X308] :
      ( ( pred_eq_bitstring_bitstring(name_Nb(VAR_0X40SID_60X305),constr_adec(VAR_AENC_NB_60X306,name_skB))
        & pred_attacker(tuple_client_B_in_5(VAR_AENC_NB_60X306))
        & pred_eq_bitstring_bitstring(name_A,constr_assoc_pair_2_get_1(constr_adec(VAR_AENC_NA_A_60X307,name_skB)))
        & pred_attacker(tuple_client_B_in_3(VAR_AENC_NA_A_60X307))
        & pred_eq_bitstring_bitstring(name_A,constr_tuple_2_get_0x30(constr_checksign(VAR_SIGN_A_PKA_60X308,constr_pkey(name_skS))))
        & pred_attacker(tuple_client_B_in_2(VAR_SIGN_A_PKA_60X308)) )
     => pred_attacker(tuple_client_B_out_6(name_objective)) ) ).

fof(ax174,axiom,
    ! [VAR_DST_647,VAR_PKDST_648,VAR_SRC_649] :
      ( ( pred_table(tuple_keys(VAR_DST_647,VAR_PKDST_648))
        & pred_attacker(tuple_key_retrieval_server_in_1(VAR_SRC_649,VAR_DST_647)) )
     => pred_attacker(tuple_key_retrieval_server_out_2(constr_sign(tuple_2(VAR_DST_647,VAR_PKDST_648),name_skS))) ) ).

fof(ax175,axiom,
    ! [VAR_HOST_70X301,VAR_PK_70X302] :
      ( ( VAR_HOST_70X301 != name_B
        & VAR_HOST_70X301 != name_A
        & pred_attacker(tuple_key_register_server_in_1(VAR_HOST_70X301,VAR_PK_70X302)) )
     => pred_table(tuple_keys(VAR_HOST_70X301,VAR_PK_70X302)) ) ).

fof(co0,conjecture,
    pred_attacker(name_objective) ).

%--------------------------------------------------------------------------