TPTP Axioms File: SWV005-5.ax


%------------------------------------------------------------------------------
% File     : SWV005-5 : TPTP v7.5.0. Released v3.2.0.
% Domain   : Software Verification
% Axioms   : Cryptographic protocol axioms for Yahalom
% Version  : [Pau06] axioms.
% English  :

% Refs     : [Pau06] Paulson (2006), Email to G. Sutcliffe
% Source   : [Pau06]
% Names    : Yahalom.ax [Pau06]

% Status   : Satisfiable
% Syntax   : Number of clauses     :   12 (   3 non-Horn;   1 unit;   8 RR)
%            Number of atoms       :   30 (   2 equality)
%            Maximal clause size   :    4 (   2 average)
%            Number of predicates  :    3 (   0 propositional; 2-3 arity)
%            Number of functors    :   29 (   9 constant; 0-4 arity)
%            Number of variables   :   63 (  23 singleton)
%            Maximal term depth    :    9 (   2 average)
% SPC      : 

% Comments : Requires MSC001-0.ax, MSC001-1.ax, SWV005-0.ax, SWV005-2.ax,
%            SWV005-3.ax, SWV005-4.ax
%------------------------------------------------------------------------------
cnf(cls_Yahalom_OA__trusts__YM3_0,axiom,
    ( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
    | ~ c_in(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs)),tc_Message_Omsg)
    | c_in(V_A,c_Event_Obad,tc_Message_Oagent)
    | c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_na,V_nb)))),c_Message_Omsg_OCrypt(c_Public_OshrK(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_A),c_Message_Omsg_OKey(V_K))))),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) )).

cnf(cls_Yahalom_OGets__imp__Says_0,axiom,
    ( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
    | ~ c_in(c_Event_Oevent_OGets(V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent)
    | c_in(c_Event_Oevent_OSays(v_sko__wPE(V_B,V_X,V_evs),V_B,V_X),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) )).

cnf(cls_Yahalom_OKeyWithNonce__Gets_0,axiom,
    ( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OGets(V_A,V_X),V_evs,tc_Event_Oevent))
    | c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs) )).

cnf(cls_Yahalom_OKeyWithNonce__Gets_1,axiom,
    ( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs)
    | c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OGets(V_A,V_X),V_evs,tc_Event_Oevent)) )).

cnf(cls_Yahalom_OKeyWithNonce__Notes_0,axiom,
    ( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_ONotes(V_A,V_X),V_evs,tc_Event_Oevent))
    | c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs) )).

cnf(cls_Yahalom_OKeyWithNonce__Notes_1,axiom,
    ( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs)
    | c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_ONotes(V_A,V_X),V_evs,tc_Event_Oevent)) )).

cnf(cls_Yahalom_OKeyWithNonce__Says_0,axiom,
    ( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OSays(V_S,V_A,V_X),V_evs,tc_Event_Oevent))
    | c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs)
    | c_Message_Oagent_OServer = V_S )).

cnf(cls_Yahalom_OKeyWithNonce__Says_1,axiom,
    ( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OSays(V_S,V_A,V_X),V_evs,tc_Event_Oevent))
    | c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs)
    | V_X = c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(v_sko__2VZ(V_A,V_K,V_NB,V_X)),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(v_sko__2Va(V_A,V_K,V_NB,V_X),c_Message_Omsg_ONonce(V_NB))))),v_sko__2Vb(V_A,V_K,V_NB,V_X)) )).

cnf(cls_Yahalom_OKeyWithNonce__Says_2,axiom,
    ( c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_U),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(V_K),c_Message_Omsg_OMPair(V_V,c_Message_Omsg_ONonce(V_NB))))),V_W)),V_evs,tc_Event_Oevent)) )).

cnf(cls_Yahalom_OKeyWithNonce__Says_3,axiom,
    ( ~ c_Yahalom_OKeyWithNonce(V_K,V_NB,V_evs)
    | c_Yahalom_OKeyWithNonce(V_K,V_NB,c_List_Olist_OCons(c_Event_Oevent_OSays(V_S,V_A,V_X),V_evs,tc_Event_Oevent)) )).

cnf(cls_Yahalom_OSays__Server__not__shrK_0,axiom,
    ( ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
    | ~ c_in(c_Event_Oevent_OSays(c_Message_Oagent_OServer,V_A,c_Message_Omsg_OMPair(c_Message_Omsg_OCrypt(c_Public_OshrK(V_A),c_Message_Omsg_OMPair(c_Message_Omsg_OAgent(V_B),c_Message_Omsg_OMPair(c_Message_Omsg_OKey(c_Public_OshrK(V_x)),c_Message_Omsg_OMPair(V_na,V_nb)))),V_X)),c_List_Oset(V_evs,tc_Event_Oevent),tc_Event_Oevent) )).

cnf(cls_Yahalom_Onew__keys__not__used_0,axiom,
    ( ~ c_in(V_K,c_Message_OkeysFor(c_Message_Oparts(c_Event_Oknows(c_Message_Oagent_OSpy,V_evs))),tc_nat)
    | ~ c_in(V_K,c_Message_OsymKeys,tc_nat)
    | ~ c_in(V_evs,c_Yahalom_Oyahalom,tc_List_Olist(tc_Event_Oevent))
    | c_in(c_Message_Omsg_OKey(V_K),c_Event_Oused(V_evs),tc_Message_Omsg) )).

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