% TIMEFORMAT='%3R'; { time (exec 2>&1; /home/martin/bin/satallax -E /home/martin/.isabelle/contrib/e-2.5-1/x86_64-linux/eprover -p tstp -t 5 /home/martin/judgement-day/tptp-thf/tptp/NS_Shared/prob_96__5228640_1 ) ; }
% This file was generated by Isabelle (most likely Sledgehammer)
% 2020-12-16 14:23:34.841

% Could-be-implicit typings (15)
thf(ty_n_t__List__Olist_It__List__Olist_It__Event__Oevent_J_J, type,
    list_list_event : $tType).
thf(ty_n_t__Set__Oset_It__List__Olist_It__Event__Oevent_J_J, type,
    set_list_event : $tType).
thf(ty_n_t__List__Olist_It__Message__Oagent_J, type,
    list_agent : $tType).
thf(ty_n_t__Set__Oset_It__Message__Oagent_J, type,
    set_agent : $tType).
thf(ty_n_t__List__Olist_It__Message__Omsg_J, type,
    list_msg : $tType).
thf(ty_n_t__List__Olist_It__Event__Oevent_J, type,
    list_event : $tType).
thf(ty_n_t__Set__Oset_It__Message__Omsg_J, type,
    set_msg : $tType).
thf(ty_n_t__Set__Oset_It__Event__Oevent_J, type,
    set_event : $tType).
thf(ty_n_t__List__Olist_It__Nat__Onat_J, type,
    list_nat : $tType).
thf(ty_n_t__Set__Oset_It__Nat__Onat_J, type,
    set_nat : $tType).
thf(ty_n_t__Public__Okeymode, type,
    keymode : $tType).
thf(ty_n_t__Message__Oagent, type,
    agent : $tType).
thf(ty_n_t__Message__Omsg, type,
    msg : $tType).
thf(ty_n_t__Event__Oevent, type,
    event : $tType).
thf(ty_n_t__Nat__Onat, type,
    nat : $tType).

% Explicit typings (63)
thf(sy_c_Event_Obad, type,
    bad : set_agent).
thf(sy_c_Event_Oevent_OGets, type,
    gets : agent > msg > event).
thf(sy_c_Event_Oevent_ONotes, type,
    notes : agent > msg > event).
thf(sy_c_Event_Oevent_OSays, type,
    says : agent > agent > msg > event).
thf(sy_c_Event_OinitState, type,
    initState : agent > set_msg).
thf(sy_c_Event_Oknows, type,
    knows : agent > list_event > set_msg).
thf(sy_c_Event_Oused, type,
    used : list_event > set_msg).
thf(sy_c_List_Ocan__select_001t__Event__Oevent, type,
    can_select_event : (event > $o) > set_event > $o).
thf(sy_c_List_Ocan__select_001t__List__Olist_It__Event__Oevent_J, type,
    can_se1625331413_event : (list_event > $o) > set_list_event > $o).
thf(sy_c_List_Ocan__select_001t__Message__Oagent, type,
    can_select_agent : (agent > $o) > set_agent > $o).
thf(sy_c_List_Ocan__select_001t__Message__Omsg, type,
    can_select_msg : (msg > $o) > set_msg > $o).
thf(sy_c_List_Ocan__select_001t__Nat__Onat, type,
    can_select_nat : (nat > $o) > set_nat > $o).
thf(sy_c_List_Olist_OCons_001t__Event__Oevent, type,
    cons_event : event > list_event > list_event).
thf(sy_c_List_Olist_OCons_001t__List__Olist_It__Event__Oevent_J, type,
    cons_list_event : list_event > list_list_event > list_list_event).
thf(sy_c_List_Olist_OCons_001t__Message__Oagent, type,
    cons_agent : agent > list_agent > list_agent).
thf(sy_c_List_Olist_OCons_001t__Message__Omsg, type,
    cons_msg : msg > list_msg > list_msg).
thf(sy_c_List_Olist_OCons_001t__Nat__Onat, type,
    cons_nat : nat > list_nat > list_nat).
thf(sy_c_List_Olist_ONil_001t__Event__Oevent, type,
    nil_event : list_event).
thf(sy_c_List_Olist_ONil_001t__List__Olist_It__Event__Oevent_J, type,
    nil_list_event : list_list_event).
thf(sy_c_List_Olist_Oset_001t__Event__Oevent, type,
    set_event2 : list_event > set_event).
thf(sy_c_List_Olist_Oset_001t__List__Olist_It__Event__Oevent_J, type,
    set_list_event2 : list_list_event > set_list_event).
thf(sy_c_List_Olist_Oset_001t__Message__Oagent, type,
    set_agent2 : list_agent > set_agent).
thf(sy_c_List_Olist_Oset_001t__Message__Omsg, type,
    set_msg2 : list_msg > set_msg).
thf(sy_c_List_Olist_Oset_001t__Nat__Onat, type,
    set_nat2 : list_nat > set_nat).
thf(sy_c_List_Olist__ex1_001t__Event__Oevent, type,
    list_ex1_event : (event > $o) > list_event > $o).
thf(sy_c_List_Olist__ex1_001t__List__Olist_It__Event__Oevent_J, type,
    list_ex1_list_event : (list_event > $o) > list_list_event > $o).
thf(sy_c_List_Olist__ex1_001t__Message__Oagent, type,
    list_ex1_agent : (agent > $o) > list_agent > $o).
thf(sy_c_List_Olist__ex1_001t__Message__Omsg, type,
    list_ex1_msg : (msg > $o) > list_msg > $o).
thf(sy_c_List_Olist__ex1_001t__Nat__Onat, type,
    list_ex1_nat : (nat > $o) > list_nat > $o).
thf(sy_c_List_Oproduct__lists_001t__Event__Oevent, type,
    product_lists_event : list_list_event > list_list_event).
thf(sy_c_Message_Oagent_OServer, type,
    server : agent).
thf(sy_c_Message_Oagent_OSpy, type,
    spy : agent).
thf(sy_c_Message_Oanalz, type,
    analz : set_msg > set_msg).
thf(sy_c_Message_OinvKey, type,
    invKey : nat > nat).
thf(sy_c_Message_Omsg_OAgent, type,
    agent2 : agent > msg).
thf(sy_c_Message_Omsg_OCrypt, type,
    crypt : nat > msg > msg).
thf(sy_c_Message_Omsg_OKey, type,
    key : nat > msg).
thf(sy_c_Message_Omsg_OMPair, type,
    mPair : msg > msg > msg).
thf(sy_c_Message_Omsg_ONonce, type,
    nonce : nat > msg).
thf(sy_c_Message_Opartsp, type,
    partsp : (msg > $o) > msg > $o).
thf(sy_c_Message_OsymKeys, type,
    symKeys : set_nat).
thf(sy_c_NS__Shared__Mirabelle__xwdrtqxrux_Ons__shared, type,
    nS_Sha1061662329shared : set_list_event).
thf(sy_c_NS__Shared__Mirabelle__xwdrtqxrux_Ons__sharedp, type,
    nS_Sha1092415543haredp : list_event > $o).
thf(sy_c_Public_OpublicKey, type,
    publicKey : keymode > agent > nat).
thf(sy_c_Public_OshrK, type,
    shrK : agent > nat).
thf(sy_c_Set_OCollect_001t__Event__Oevent, type,
    collect_event : (event > $o) > set_event).
thf(sy_c_Set_OCollect_001t__List__Olist_It__Event__Oevent_J, type,
    collect_list_event : (list_event > $o) > set_list_event).
thf(sy_c_Set_OCollect_001t__Message__Oagent, type,
    collect_agent : (agent > $o) > set_agent).
thf(sy_c_Set_OCollect_001t__Message__Omsg, type,
    collect_msg : (msg > $o) > set_msg).
thf(sy_c_Set_OCollect_001t__Nat__Onat, type,
    collect_nat : (nat > $o) > set_nat).
thf(sy_c_Set_Oinsert_001t__Event__Oevent, type,
    insert_event : event > set_event > set_event).
thf(sy_c_Set_Oinsert_001t__Message__Omsg, type,
    insert_msg : msg > set_msg > set_msg).
thf(sy_c_Set_Othe__elem_001t__Event__Oevent, type,
    the_elem_event : set_event > event).
thf(sy_c_member_001t__Event__Oevent, type,
    member_event : event > set_event > $o).
thf(sy_c_member_001t__List__Olist_It__Event__Oevent_J, type,
    member_list_event : list_event > set_list_event > $o).
thf(sy_c_member_001t__Message__Oagent, type,
    member_agent : agent > set_agent > $o).
thf(sy_c_member_001t__Message__Omsg, type,
    member_msg : msg > set_msg > $o).
thf(sy_c_member_001t__Nat__Onat, type,
    member_nat : nat > set_nat > $o).
thf(sy_v_A, type,
    a : agent).
thf(sy_v_B, type,
    b : agent).
thf(sy_v_K, type,
    k : nat).
thf(sy_v_N__0_058ATP, type,
    n_0_ATP : nat).
thf(sy_v_evs__1_058ATP, type,
    evs_1_ATP : list_event).

% Relevant facts (171)
thf(fact_0_Nonce__notin__used__empty, axiom,
    ((![N : nat]: (~ ((member_msg @ (nonce @ N) @ (used @ nil_event))))))). % Nonce_notin_used_empty
thf(fact_1_Crypt__notin__used__empty, axiom,
    ((![K : nat, X : msg]: (~ ((member_msg @ (crypt @ K @ X) @ (used @ nil_event))))))). % Crypt_notin_used_empty
thf(fact_2_Says__imp__used, axiom,
    ((![A : agent, B : agent, X : msg, Evs : list_event]: ((member_event @ (says @ A @ B @ X) @ (set_event2 @ Evs)) => (member_msg @ X @ (used @ Evs)))))). % Says_imp_used
thf(fact_3_event_Oinject_I1_J, axiom,
    ((![X11 : agent, X12 : agent, X13 : msg, Y11 : agent, Y12 : agent, Y13 : msg]: (((says @ X11 @ X12 @ X13) = (says @ Y11 @ Y12 @ Y13)) = (((X11 = Y11)) & ((((X12 = Y12)) & ((X13 = Y13))))))))). % event.inject(1)
thf(fact_4_msg_Oinject_I3_J, axiom,
    ((![X3 : nat, Y3 : nat]: (((nonce @ X3) = (nonce @ Y3)) = (X3 = Y3))))). % msg.inject(3)
thf(fact_5_msg_Oinject_I7_J, axiom,
    ((![X71 : nat, X72 : msg, Y71 : nat, Y72 : msg]: (((crypt @ X71 @ X72) = (crypt @ Y71 @ Y72)) = (((X71 = Y71)) & ((X72 = Y72))))))). % msg.inject(7)
thf(fact_6_msg_Oinject_I4_J, axiom,
    ((![X4 : nat, Y4 : nat]: (((key @ X4) = (key @ Y4)) = (X4 = Y4))))). % msg.inject(4)
thf(fact_7_msg_Oinject_I6_J, axiom,
    ((![X61 : msg, X62 : msg, Y61 : msg, Y62 : msg]: (((mPair @ X61 @ X62) = (mPair @ Y61 @ Y62)) = (((X61 = Y61)) & ((X62 = Y62))))))). % msg.inject(6)
thf(fact_8_Nonce__supply1, axiom,
    ((![Evs : list_event]: (?[N2 : nat]: (~ ((member_msg @ (nonce @ N2) @ (used @ Evs)))))))). % Nonce_supply1
thf(fact_9_MPair__used, axiom,
    ((![X : msg, Y : msg, H : list_event]: ((member_msg @ (mPair @ X @ Y) @ (used @ H)) => (~ (((member_msg @ X @ (used @ H)) => (~ ((member_msg @ Y @ (used @ H))))))))))). % MPair_used
thf(fact_10_MPair__used__D, axiom,
    ((![X : msg, Y : msg, H : list_event]: ((member_msg @ (mPair @ X @ Y) @ (used @ H)) => ((member_msg @ X @ (used @ H)) & (member_msg @ Y @ (used @ H))))))). % MPair_used_D
thf(fact_11_msg_Odistinct_I29_J, axiom,
    ((![X3 : nat, X71 : nat, X72 : msg]: (~ (((nonce @ X3) = (crypt @ X71 @ X72))))))). % msg.distinct(29)
thf(fact_12_symKeys__neq__imp__neq, axiom,
    ((![K : nat, K2 : nat]: ((~ (((member_nat @ K @ symKeys) = (member_nat @ K2 @ symKeys)))) => (~ ((K = K2))))))). % symKeys_neq_imp_neq
thf(fact_13_msg_Odistinct_I33_J, axiom,
    ((![X4 : nat, X61 : msg, X62 : msg]: (~ (((key @ X4) = (mPair @ X61 @ X62))))))). % msg.distinct(33)
thf(fact_14_msg_Odistinct_I41_J, axiom,
    ((![X61 : msg, X62 : msg, X71 : nat, X72 : msg]: (~ (((mPair @ X61 @ X62) = (crypt @ X71 @ X72))))))). % msg.distinct(41)
thf(fact_15_msg_Odistinct_I35_J, axiom,
    ((![X4 : nat, X71 : nat, X72 : msg]: (~ (((key @ X4) = (crypt @ X71 @ X72))))))). % msg.distinct(35)
thf(fact_16_msg_Odistinct_I27_J, axiom,
    ((![X3 : nat, X61 : msg, X62 : msg]: (~ (((nonce @ X3) = (mPair @ X61 @ X62))))))). % msg.distinct(27)
thf(fact_17_msg_Odistinct_I23_J, axiom,
    ((![X3 : nat, X4 : nat]: (~ (((nonce @ X3) = (key @ X4))))))). % msg.distinct(23)
thf(fact_18_Notes__imp__used, axiom,
    ((![A : agent, X : msg, Evs : list_event]: ((member_event @ (notes @ A @ X) @ (set_event2 @ Evs)) => (member_msg @ X @ (used @ Evs)))))). % Notes_imp_used
thf(fact_19_analz__symKeys__Decrypt, axiom,
    ((![K : nat, X : msg, H : set_msg]: ((member_msg @ (crypt @ K @ X) @ (analz @ H)) => ((member_nat @ K @ symKeys) => ((member_msg @ (key @ K) @ (analz @ H)) => (member_msg @ X @ (analz @ H)))))))). % analz_symKeys_Decrypt
thf(fact_20_shrK__in__used, axiom,
    ((![A : agent, Evs : list_event]: (member_msg @ (key @ (shrK @ A)) @ (used @ Evs))))). % shrK_in_used
thf(fact_21_publicKey__into__used, axiom,
    ((![B2 : keymode, A : agent, Evs : list_event]: (member_msg @ (key @ (publicKey @ B2 @ A)) @ (used @ Evs))))). % publicKey_into_used
thf(fact_22_partsp_Oinducts, axiom,
    ((![H : msg > $o, X2 : msg, P : msg > $o]: ((partsp @ H @ X2) => ((![X5 : msg]: ((H @ X5) => (P @ X5))) => ((![X5 : msg, Y2 : msg]: ((partsp @ H @ (mPair @ X5 @ Y2)) => ((P @ (mPair @ X5 @ Y2)) => (P @ X5)))) => ((![X5 : msg, Y2 : msg]: ((partsp @ H @ (mPair @ X5 @ Y2)) => ((P @ (mPair @ X5 @ Y2)) => (P @ Y2)))) => ((![K3 : nat, X5 : msg]: ((partsp @ H @ (crypt @ K3 @ X5)) => ((P @ (crypt @ K3 @ X5)) => (P @ X5)))) => (P @ X2))))))))). % partsp.inducts
thf(fact_23_partsp_Osimps, axiom,
    ((partsp = (^[H2 : msg > $o]: (^[A2 : msg]: (((?[X6 : msg]: (((A2 = X6)) & ((H2 @ X6))))) | ((((?[X6 : msg]: (?[Y5 : msg]: (((A2 = X6)) & ((partsp @ H2 @ (mPair @ X6 @ Y5))))))) | ((((?[X6 : msg]: (?[Y5 : msg]: (((A2 = Y5)) & ((partsp @ H2 @ (mPair @ X6 @ Y5))))))) | ((?[K4 : nat]: (?[X6 : msg]: (((A2 = X6)) & ((partsp @ H2 @ (crypt @ K4 @ X6))))))))))))))))). % partsp.simps
thf(fact_24_partsp_Ocases, axiom,
    ((![H : msg > $o, A3 : msg]: ((partsp @ H @ A3) => ((~ ((H @ A3))) => ((![Y2 : msg]: (~ ((partsp @ H @ (mPair @ A3 @ Y2))))) => ((![X5 : msg]: (~ ((partsp @ H @ (mPair @ X5 @ A3))))) => (~ ((![K3 : nat]: (~ ((partsp @ H @ (crypt @ K3 @ A3)))))))))))))). % partsp.cases
thf(fact_25_analz__idem, axiom,
    ((![H : set_msg]: ((analz @ (analz @ H)) = (analz @ H))))). % analz_idem
thf(fact_26_publicKey__inject, axiom,
    ((![B2 : keymode, A : agent, C : keymode, A4 : agent]: (((publicKey @ B2 @ A) = (publicKey @ C @ A4)) = (((B2 = C)) & ((A = A4))))))). % publicKey_inject
thf(fact_27_shrK__injective, axiom,
    ((![X2 : agent, Y6 : agent]: (((shrK @ X2) = (shrK @ Y6)) = (X2 = Y6))))). % shrK_injective
thf(fact_28_event_Oinject_I3_J, axiom,
    ((![X31 : agent, X32 : msg, Y31 : agent, Y32 : msg]: (((notes @ X31 @ X32) = (notes @ Y31 @ Y32)) = (((X31 = Y31)) & ((X32 = Y32))))))). % event.inject(3)
thf(fact_29_sym__shrK, axiom,
    ((![X : agent]: (member_nat @ (shrK @ X) @ symKeys)))). % sym_shrK
thf(fact_30_analz_OInj, axiom,
    ((![X : msg, H : set_msg]: ((member_msg @ X @ H) => (member_msg @ X @ (analz @ H)))))). % analz.Inj
thf(fact_31_partsp_OInj, axiom,
    ((![H : msg > $o, X : msg]: ((H @ X) => (partsp @ H @ X))))). % partsp.Inj
thf(fact_32_analz__analzD, axiom,
    ((![X : msg, H : set_msg]: ((member_msg @ X @ (analz @ (analz @ H))) => (member_msg @ X @ (analz @ H)))))). % analz_analzD
thf(fact_33_shrK__neq__pubK, axiom,
    ((![B2 : keymode, C2 : agent, A : agent]: (~ (((publicKey @ B2 @ C2) = (shrK @ A))))))). % shrK_neq_pubK
thf(fact_34_injective__publicKey, axiom,
    ((![B2 : keymode, A : agent, C : keymode, A4 : agent]: (((publicKey @ B2 @ A) = (publicKey @ C @ A4)) => ((B2 = C) & (A = A4)))))). % injective_publicKey
thf(fact_35_analz__shrK__Decrypt, axiom,
    ((![A : agent, X : msg, H : set_msg]: ((member_msg @ (crypt @ (shrK @ A) @ X) @ (analz @ H)) => ((member_msg @ (key @ (shrK @ A)) @ (analz @ H)) => (member_msg @ X @ (analz @ H))))))). % analz_shrK_Decrypt
thf(fact_36_analz_OFst, axiom,
    ((![X : msg, Y : msg, H : set_msg]: ((member_msg @ (mPair @ X @ Y) @ (analz @ H)) => (member_msg @ X @ (analz @ H)))))). % analz.Fst
thf(fact_37_analz_OSnd, axiom,
    ((![X : msg, Y : msg, H : set_msg]: ((member_msg @ (mPair @ X @ Y) @ (analz @ H)) => (member_msg @ Y @ (analz @ H)))))). % analz.Snd
thf(fact_38_MPair__analz, axiom,
    ((![X : msg, Y : msg, H : set_msg]: ((member_msg @ (mPair @ X @ Y) @ (analz @ H)) => (~ (((member_msg @ X @ (analz @ H)) => (~ ((member_msg @ Y @ (analz @ H))))))))))). % MPair_analz
thf(fact_39_not__symKeys__pubK, axiom,
    ((![B2 : keymode, A : agent]: (~ ((member_nat @ (publicKey @ B2 @ A) @ symKeys)))))). % not_symKeys_pubK
thf(fact_40_partsp_OFst, axiom,
    ((![H : msg > $o, X : msg, Y : msg]: ((partsp @ H @ (mPair @ X @ Y)) => (partsp @ H @ X))))). % partsp.Fst
thf(fact_41_mem__Collect__eq, axiom,
    ((![A3 : msg, P : msg > $o]: ((member_msg @ A3 @ (collect_msg @ P)) = (P @ A3))))). % mem_Collect_eq
thf(fact_42_mem__Collect__eq, axiom,
    ((![A3 : nat, P : nat > $o]: ((member_nat @ A3 @ (collect_nat @ P)) = (P @ A3))))). % mem_Collect_eq
thf(fact_43_mem__Collect__eq, axiom,
    ((![A3 : event, P : event > $o]: ((member_event @ A3 @ (collect_event @ P)) = (P @ A3))))). % mem_Collect_eq
thf(fact_44_mem__Collect__eq, axiom,
    ((![A3 : list_event, P : list_event > $o]: ((member_list_event @ A3 @ (collect_list_event @ P)) = (P @ A3))))). % mem_Collect_eq
thf(fact_45_mem__Collect__eq, axiom,
    ((![A3 : agent, P : agent > $o]: ((member_agent @ A3 @ (collect_agent @ P)) = (P @ A3))))). % mem_Collect_eq
thf(fact_46_Collect__mem__eq, axiom,
    ((![A : set_msg]: ((collect_msg @ (^[X7 : msg]: (member_msg @ X7 @ A))) = A)))). % Collect_mem_eq
thf(fact_47_Collect__mem__eq, axiom,
    ((![A : set_nat]: ((collect_nat @ (^[X7 : nat]: (member_nat @ X7 @ A))) = A)))). % Collect_mem_eq
thf(fact_48_Collect__mem__eq, axiom,
    ((![A : set_event]: ((collect_event @ (^[X7 : event]: (member_event @ X7 @ A))) = A)))). % Collect_mem_eq
thf(fact_49_Collect__mem__eq, axiom,
    ((![A : set_list_event]: ((collect_list_event @ (^[X7 : list_event]: (member_list_event @ X7 @ A))) = A)))). % Collect_mem_eq
thf(fact_50_Collect__mem__eq, axiom,
    ((![A : set_agent]: ((collect_agent @ (^[X7 : agent]: (member_agent @ X7 @ A))) = A)))). % Collect_mem_eq
thf(fact_51_partsp_OSnd, axiom,
    ((![H : msg > $o, X : msg, Y : msg]: ((partsp @ H @ (mPair @ X @ Y)) => (partsp @ H @ Y))))). % partsp.Snd
thf(fact_52_partsp_OBody, axiom,
    ((![H : msg > $o, K : nat, X : msg]: ((partsp @ H @ (crypt @ K @ X)) => (partsp @ H @ X))))). % partsp.Body
thf(fact_53_event_Odistinct_I3_J, axiom,
    ((![X11 : agent, X12 : agent, X13 : msg, X31 : agent, X32 : msg]: (~ (((says @ X11 @ X12 @ X13) = (notes @ X31 @ X32))))))). % event.distinct(3)
thf(fact_54_analz__trivial, axiom,
    ((![H : set_msg]: ((![X5 : msg, Y2 : msg]: (~ ((member_msg @ (mPair @ X5 @ Y2) @ H)))) => ((![X5 : msg, K3 : nat]: (~ ((member_msg @ (crypt @ K3 @ X5) @ H)))) => ((analz @ H) = H)))))). % analz_trivial
thf(fact_55_neq__shrK, axiom,
    ((![S : nat, Evs : list_event, B : agent]: ((~ ((member_msg @ (key @ S) @ (used @ Evs)))) => (~ ((S = (shrK @ B)))))))). % neq_shrK
thf(fact_56_shrK__neq, axiom,
    ((![K : nat, Evs : list_event, B : agent]: ((~ ((member_msg @ (key @ K) @ (used @ Evs)))) => (~ (((shrK @ B) = K))))))). % shrK_neq
thf(fact_57_shrK__in__initState, axiom,
    ((![A : agent]: (member_msg @ (key @ (shrK @ A)) @ (initState @ A))))). % shrK_in_initState
thf(fact_58_publicKey__in__initState, axiom,
    ((![B2 : keymode, A : agent, B : agent]: (member_msg @ (key @ (publicKey @ B2 @ A)) @ (initState @ B))))). % publicKey_in_initState
thf(fact_59_analz_Ocases, axiom,
    ((![A3 : msg, H : set_msg]: ((member_msg @ A3 @ (analz @ H)) => ((~ ((member_msg @ A3 @ H))) => ((![Y2 : msg]: (~ ((member_msg @ (mPair @ A3 @ Y2) @ (analz @ H))))) => ((![X5 : msg]: (~ ((member_msg @ (mPair @ X5 @ A3) @ (analz @ H))))) => (~ ((![K3 : nat]: ((member_msg @ (crypt @ K3 @ A3) @ (analz @ H)) => (~ ((member_msg @ (key @ (invKey @ K3)) @ (analz @ H))))))))))))))). % analz.cases
thf(fact_60_analz_Osimps, axiom,
    ((![A3 : msg, H : set_msg]: ((member_msg @ A3 @ (analz @ H)) = (((?[X6 : msg]: (((A3 = X6)) & ((member_msg @ X6 @ H))))) | ((((?[X6 : msg]: (?[Y5 : msg]: (((A3 = X6)) & ((member_msg @ (mPair @ X6 @ Y5) @ (analz @ H))))))) | ((((?[X6 : msg]: (?[Y5 : msg]: (((A3 = Y5)) & ((member_msg @ (mPair @ X6 @ Y5) @ (analz @ H))))))) | ((?[K4 : nat]: (?[X6 : msg]: (((A3 = X6)) & ((((member_msg @ (crypt @ K4 @ X6) @ (analz @ H))) & ((member_msg @ (key @ (invKey @ K4)) @ (analz @ H)))))))))))))))))). % analz.simps
thf(fact_61_analz_Oinducts, axiom,
    ((![X2 : msg, H : set_msg, P : msg > $o]: ((member_msg @ X2 @ (analz @ H)) => ((![X5 : msg]: ((member_msg @ X5 @ H) => (P @ X5))) => ((![X5 : msg, Y2 : msg]: ((member_msg @ (mPair @ X5 @ Y2) @ (analz @ H)) => ((P @ (mPair @ X5 @ Y2)) => (P @ X5)))) => ((![X5 : msg, Y2 : msg]: ((member_msg @ (mPair @ X5 @ Y2) @ (analz @ H)) => ((P @ (mPair @ X5 @ Y2)) => (P @ Y2)))) => ((![K3 : nat, X5 : msg]: ((member_msg @ (crypt @ K3 @ X5) @ (analz @ H)) => ((P @ (crypt @ K3 @ X5)) => ((member_msg @ (key @ (invKey @ K3)) @ (analz @ H)) => ((P @ (key @ (invKey @ K3))) => (P @ X5)))))) => (P @ X2))))))))). % analz.inducts
thf(fact_62_list__ex1__simps_I1_J, axiom,
    ((![P : event > $o]: (~ ((list_ex1_event @ P @ nil_event)))))). % list_ex1_simps(1)
thf(fact_63_privateKey__into__used, axiom,
    ((![B2 : keymode, A : agent, Evs : list_event]: (member_msg @ (key @ (invKey @ (publicKey @ B2 @ A))) @ (used @ Evs))))). % privateKey_into_used
thf(fact_64_ns__shared_ONS2, axiom,
    ((![Evs2 : list_event, KAB : nat, A4 : agent, A : agent, B : agent, NA : nat]: ((member_list_event @ Evs2 @ nS_Sha1061662329shared) => ((~ ((member_msg @ (key @ KAB) @ (used @ Evs2)))) => ((member_nat @ KAB @ symKeys) => ((member_event @ (says @ A4 @ server @ (mPair @ (agent2 @ A) @ (mPair @ (agent2 @ B) @ (nonce @ NA)))) @ (set_event2 @ Evs2)) => (member_list_event @ (cons_event @ (says @ server @ A @ (crypt @ (shrK @ A) @ (mPair @ (nonce @ NA) @ (mPair @ (agent2 @ B) @ (mPair @ (key @ KAB) @ (crypt @ (shrK @ B) @ (mPair @ (key @ KAB) @ (agent2 @ A)))))))) @ Evs2) @ nS_Sha1061662329shared)))))))). % ns_shared.NS2
thf(fact_65_list_Oinject, axiom,
    ((![X21 : event, X22 : list_event, Y21 : event, Y22 : list_event]: (((cons_event @ X21 @ X22) = (cons_event @ Y21 @ Y22)) = (((X21 = Y21)) & ((X22 = Y22))))))). % list.inject
thf(fact_66_msg_Oinject_I1_J, axiom,
    ((![X1 : agent, Y1 : agent]: (((agent2 @ X1) = (agent2 @ Y1)) = (X1 = Y1))))). % msg.inject(1)
thf(fact_67_invKey__eq, axiom,
    ((![K : nat, K2 : nat]: (((invKey @ K) = (invKey @ K2)) = (K = K2))))). % invKey_eq
thf(fact_68_invKey, axiom,
    ((![K : nat]: ((invKey @ (invKey @ K)) = K)))). % invKey
thf(fact_69_invKey__shrK, axiom,
    ((![A : agent]: ((invKey @ (shrK @ A)) = (shrK @ A))))). % invKey_shrK
thf(fact_70_symKeys__invKey__iff, axiom,
    ((![K : nat]: ((member_nat @ (invKey @ K) @ symKeys) = (member_nat @ K @ symKeys))))). % symKeys_invKey_iff
thf(fact_71_invKey__K, axiom,
    ((![K : nat]: ((member_nat @ K @ symKeys) => ((invKey @ K) = K))))). % invKey_K
thf(fact_72_priK__in__initState, axiom,
    ((![B2 : keymode, A : agent]: (member_msg @ (key @ (invKey @ (publicKey @ B2 @ A))) @ (initState @ A))))). % priK_in_initState
thf(fact_73_transpose_Ocases, axiom,
    ((![X2 : list_list_event]: ((~ ((X2 = nil_list_event))) => ((![Xss : list_list_event]: (~ ((X2 = (cons_list_event @ nil_event @ Xss))))) => (~ ((![X8 : event, Xs : list_event, Xss : list_list_event]: (~ ((X2 = (cons_list_event @ (cons_event @ X8 @ Xs) @ Xss)))))))))))). % transpose.cases
thf(fact_74_not__Cons__self2, axiom,
    ((![X2 : event, Xs2 : list_event]: (~ (((cons_event @ X2 @ Xs2) = Xs2)))))). % not_Cons_self2
thf(fact_75_map__tailrec__rev_Oinduct, axiom,
    ((![P : (event > event) > list_event > list_event > $o, A0 : event > event, A1 : list_event, A22 : list_event]: ((![F : event > event, X_1 : list_event]: (P @ F @ nil_event @ X_1)) => ((![F : event > event, A5 : event, As : list_event, Bs : list_event]: ((P @ F @ As @ (cons_event @ (F @ A5) @ Bs)) => (P @ F @ (cons_event @ A5 @ As) @ Bs))) => (P @ A0 @ A1 @ A22)))))). % map_tailrec_rev.induct
thf(fact_76_list__nonempty__induct, axiom,
    ((![Xs2 : list_event, P : list_event > $o]: ((~ ((Xs2 = nil_event))) => ((![X8 : event]: (P @ (cons_event @ X8 @ nil_event))) => ((![X8 : event, Xs : list_event]: ((~ ((Xs = nil_event))) => ((P @ Xs) => (P @ (cons_event @ X8 @ Xs))))) => (P @ Xs2))))))). % list_nonempty_induct
thf(fact_77_successively_Oinduct, axiom,
    ((![P : (event > event > $o) > list_event > $o, A0 : event > event > $o, A1 : list_event]: ((![P2 : event > event > $o]: (P @ P2 @ nil_event)) => ((![P2 : event > event > $o, X8 : event]: (P @ P2 @ (cons_event @ X8 @ nil_event))) => ((![P2 : event > event > $o, X8 : event, Y7 : event, Xs : list_event]: ((P @ P2 @ (cons_event @ Y7 @ Xs)) => (P @ P2 @ (cons_event @ X8 @ (cons_event @ Y7 @ Xs))))) => (P @ A0 @ A1))))))). % successively.induct
thf(fact_78_remdups__adj_Oinduct, axiom,
    ((![P : list_event > $o, A0 : list_event]: ((P @ nil_event) => ((![X8 : event]: (P @ (cons_event @ X8 @ nil_event))) => ((![X8 : event, Y7 : event, Xs : list_event]: (((X8 = Y7) => (P @ (cons_event @ X8 @ Xs))) => (((~ ((X8 = Y7))) => (P @ (cons_event @ Y7 @ Xs))) => (P @ (cons_event @ X8 @ (cons_event @ Y7 @ Xs)))))) => (P @ A0))))))). % remdups_adj.induct
thf(fact_79_sorted__wrt_Oinduct, axiom,
    ((![P : (event > event > $o) > list_event > $o, A0 : event > event > $o, A1 : list_event]: ((![P2 : event > event > $o]: (P @ P2 @ nil_event)) => ((![P2 : event > event > $o, X8 : event, Ys : list_event]: ((P @ P2 @ Ys) => (P @ P2 @ (cons_event @ X8 @ Ys)))) => (P @ A0 @ A1)))))). % sorted_wrt.induct
thf(fact_80_remdups__adj_Ocases, axiom,
    ((![X2 : list_event]: ((~ ((X2 = nil_event))) => ((![X8 : event]: (~ ((X2 = (cons_event @ X8 @ nil_event))))) => (~ ((![X8 : event, Y7 : event, Xs : list_event]: (~ ((X2 = (cons_event @ X8 @ (cons_event @ Y7 @ Xs))))))))))))). % remdups_adj.cases
thf(fact_81_shuffles_Oinduct, axiom,
    ((![P : list_event > list_event > $o, A0 : list_event, A1 : list_event]: ((![X_1 : list_event]: (P @ nil_event @ X_1)) => ((![Xs : list_event]: (P @ Xs @ nil_event)) => ((![X8 : event, Xs : list_event, Y7 : event, Ys : list_event]: ((P @ Xs @ (cons_event @ Y7 @ Ys)) => ((P @ (cons_event @ X8 @ Xs) @ Ys) => (P @ (cons_event @ X8 @ Xs) @ (cons_event @ Y7 @ Ys))))) => (P @ A0 @ A1))))))). % shuffles.induct
thf(fact_82_induct__list012, axiom,
    ((![P : list_event > $o, Xs2 : list_event]: ((P @ nil_event) => ((![X8 : event]: (P @ (cons_event @ X8 @ nil_event))) => ((![X8 : event, Y7 : event, Zs : list_event]: ((P @ Zs) => ((P @ (cons_event @ Y7 @ Zs)) => (P @ (cons_event @ X8 @ (cons_event @ Y7 @ Zs)))))) => (P @ Xs2))))))). % induct_list012
thf(fact_83_splice_Oinduct, axiom,
    ((![P : list_event > list_event > $o, A0 : list_event, A1 : list_event]: ((![X_1 : list_event]: (P @ nil_event @ X_1)) => ((![X8 : event, Xs : list_event, Ys : list_event]: ((P @ Ys @ Xs) => (P @ (cons_event @ X8 @ Xs) @ Ys))) => (P @ A0 @ A1)))))). % splice.induct
thf(fact_84_list__induct2_H, axiom,
    ((![P : list_event > list_event > $o, Xs2 : list_event, Ys2 : list_event]: ((P @ nil_event @ nil_event) => ((![X8 : event, Xs : list_event]: (P @ (cons_event @ X8 @ Xs) @ nil_event)) => ((![Y7 : event, Ys : list_event]: (P @ nil_event @ (cons_event @ Y7 @ Ys))) => ((![X8 : event, Xs : list_event, Y7 : event, Ys : list_event]: ((P @ Xs @ Ys) => (P @ (cons_event @ X8 @ Xs) @ (cons_event @ Y7 @ Ys)))) => (P @ Xs2 @ Ys2)))))))). % list_induct2'
thf(fact_85_neq__Nil__conv, axiom,
    ((![Xs2 : list_event]: ((~ ((Xs2 = nil_event))) = (?[Y8 : event]: (?[Ys3 : list_event]: (Xs2 = (cons_event @ Y8 @ Ys3)))))))). % neq_Nil_conv
thf(fact_86_list_Oinducts, axiom,
    ((![P : list_event > $o, List : list_event]: ((P @ nil_event) => ((![X14 : event, X23 : list_event]: ((P @ X23) => (P @ (cons_event @ X14 @ X23)))) => (P @ List)))))). % list.inducts
thf(fact_87_list_Oexhaust, axiom,
    ((![Y6 : list_event]: ((~ ((Y6 = nil_event))) => (~ ((![X212 : event, X222 : list_event]: (~ ((Y6 = (cons_event @ X212 @ X222))))))))))). % list.exhaust
thf(fact_88_list_OdiscI, axiom,
    ((![List : list_event, X21 : event, X22 : list_event]: ((List = (cons_event @ X21 @ X22)) => (~ ((List = nil_event))))))). % list.discI
thf(fact_89_list_Odistinct_I1_J, axiom,
    ((![X21 : event, X22 : list_event]: (~ ((nil_event = (cons_event @ X21 @ X22))))))). % list.distinct(1)
thf(fact_90_list_Oset__cases, axiom,
    ((![E : msg, A3 : list_msg]: ((member_msg @ E @ (set_msg2 @ A3)) => ((![Z2 : list_msg]: (~ ((A3 = (cons_msg @ E @ Z2))))) => (~ ((![Z1 : msg, Z2 : list_msg]: ((A3 = (cons_msg @ Z1 @ Z2)) => (~ ((member_msg @ E @ (set_msg2 @ Z2))))))))))))). % list.set_cases
thf(fact_91_list_Oset__cases, axiom,
    ((![E : nat, A3 : list_nat]: ((member_nat @ E @ (set_nat2 @ A3)) => ((![Z2 : list_nat]: (~ ((A3 = (cons_nat @ E @ Z2))))) => (~ ((![Z1 : nat, Z2 : list_nat]: ((A3 = (cons_nat @ Z1 @ Z2)) => (~ ((member_nat @ E @ (set_nat2 @ Z2))))))))))))). % list.set_cases
thf(fact_92_list_Oset__cases, axiom,
    ((![E : list_event, A3 : list_list_event]: ((member_list_event @ E @ (set_list_event2 @ A3)) => ((![Z2 : list_list_event]: (~ ((A3 = (cons_list_event @ E @ Z2))))) => (~ ((![Z1 : list_event, Z2 : list_list_event]: ((A3 = (cons_list_event @ Z1 @ Z2)) => (~ ((member_list_event @ E @ (set_list_event2 @ Z2))))))))))))). % list.set_cases
thf(fact_93_list_Oset__cases, axiom,
    ((![E : agent, A3 : list_agent]: ((member_agent @ E @ (set_agent2 @ A3)) => ((![Z2 : list_agent]: (~ ((A3 = (cons_agent @ E @ Z2))))) => (~ ((![Z1 : agent, Z2 : list_agent]: ((A3 = (cons_agent @ Z1 @ Z2)) => (~ ((member_agent @ E @ (set_agent2 @ Z2))))))))))))). % list.set_cases
thf(fact_94_list_Oset__cases, axiom,
    ((![E : event, A3 : list_event]: ((member_event @ E @ (set_event2 @ A3)) => ((![Z2 : list_event]: (~ ((A3 = (cons_event @ E @ Z2))))) => (~ ((![Z1 : event, Z2 : list_event]: ((A3 = (cons_event @ Z1 @ Z2)) => (~ ((member_event @ E @ (set_event2 @ Z2))))))))))))). % list.set_cases
thf(fact_95_set__ConsD, axiom,
    ((![Y6 : msg, X2 : msg, Xs2 : list_msg]: ((member_msg @ Y6 @ (set_msg2 @ (cons_msg @ X2 @ Xs2))) => ((Y6 = X2) | (member_msg @ Y6 @ (set_msg2 @ Xs2))))))). % set_ConsD
thf(fact_96_set__ConsD, axiom,
    ((![Y6 : nat, X2 : nat, Xs2 : list_nat]: ((member_nat @ Y6 @ (set_nat2 @ (cons_nat @ X2 @ Xs2))) => ((Y6 = X2) | (member_nat @ Y6 @ (set_nat2 @ Xs2))))))). % set_ConsD
thf(fact_97_set__ConsD, axiom,
    ((![Y6 : list_event, X2 : list_event, Xs2 : list_list_event]: ((member_list_event @ Y6 @ (set_list_event2 @ (cons_list_event @ X2 @ Xs2))) => ((Y6 = X2) | (member_list_event @ Y6 @ (set_list_event2 @ Xs2))))))). % set_ConsD
thf(fact_98_set__ConsD, axiom,
    ((![Y6 : agent, X2 : agent, Xs2 : list_agent]: ((member_agent @ Y6 @ (set_agent2 @ (cons_agent @ X2 @ Xs2))) => ((Y6 = X2) | (member_agent @ Y6 @ (set_agent2 @ Xs2))))))). % set_ConsD
thf(fact_99_set__ConsD, axiom,
    ((![Y6 : event, X2 : event, Xs2 : list_event]: ((member_event @ Y6 @ (set_event2 @ (cons_event @ X2 @ Xs2))) => ((Y6 = X2) | (member_event @ Y6 @ (set_event2 @ Xs2))))))). % set_ConsD
thf(fact_100_list_Oset__intros_I1_J, axiom,
    ((![X21 : msg, X22 : list_msg]: (member_msg @ X21 @ (set_msg2 @ (cons_msg @ X21 @ X22)))))). % list.set_intros(1)
thf(fact_101_list_Oset__intros_I1_J, axiom,
    ((![X21 : nat, X22 : list_nat]: (member_nat @ X21 @ (set_nat2 @ (cons_nat @ X21 @ X22)))))). % list.set_intros(1)
thf(fact_102_list_Oset__intros_I1_J, axiom,
    ((![X21 : list_event, X22 : list_list_event]: (member_list_event @ X21 @ (set_list_event2 @ (cons_list_event @ X21 @ X22)))))). % list.set_intros(1)
thf(fact_103_list_Oset__intros_I1_J, axiom,
    ((![X21 : agent, X22 : list_agent]: (member_agent @ X21 @ (set_agent2 @ (cons_agent @ X21 @ X22)))))). % list.set_intros(1)
thf(fact_104_list_Oset__intros_I1_J, axiom,
    ((![X21 : event, X22 : list_event]: (member_event @ X21 @ (set_event2 @ (cons_event @ X21 @ X22)))))). % list.set_intros(1)
thf(fact_105_list_Oset__intros_I2_J, axiom,
    ((![Y6 : msg, X22 : list_msg, X21 : msg]: ((member_msg @ Y6 @ (set_msg2 @ X22)) => (member_msg @ Y6 @ (set_msg2 @ (cons_msg @ X21 @ X22))))))). % list.set_intros(2)
thf(fact_106_list_Oset__intros_I2_J, axiom,
    ((![Y6 : nat, X22 : list_nat, X21 : nat]: ((member_nat @ Y6 @ (set_nat2 @ X22)) => (member_nat @ Y6 @ (set_nat2 @ (cons_nat @ X21 @ X22))))))). % list.set_intros(2)
thf(fact_107_list_Oset__intros_I2_J, axiom,
    ((![Y6 : list_event, X22 : list_list_event, X21 : list_event]: ((member_list_event @ Y6 @ (set_list_event2 @ X22)) => (member_list_event @ Y6 @ (set_list_event2 @ (cons_list_event @ X21 @ X22))))))). % list.set_intros(2)
thf(fact_108_list_Oset__intros_I2_J, axiom,
    ((![Y6 : agent, X22 : list_agent, X21 : agent]: ((member_agent @ Y6 @ (set_agent2 @ X22)) => (member_agent @ Y6 @ (set_agent2 @ (cons_agent @ X21 @ X22))))))). % list.set_intros(2)
thf(fact_109_list_Oset__intros_I2_J, axiom,
    ((![Y6 : event, X22 : list_event, X21 : event]: ((member_event @ Y6 @ (set_event2 @ X22)) => (member_event @ Y6 @ (set_event2 @ (cons_event @ X21 @ X22))))))). % list.set_intros(2)
thf(fact_110_msg_Odistinct_I9_J, axiom,
    ((![X1 : agent, X61 : msg, X62 : msg]: (~ (((agent2 @ X1) = (mPair @ X61 @ X62))))))). % msg.distinct(9)
thf(fact_111_msg_Odistinct_I5_J, axiom,
    ((![X1 : agent, X4 : nat]: (~ (((agent2 @ X1) = (key @ X4))))))). % msg.distinct(5)
thf(fact_112_msg_Odistinct_I11_J, axiom,
    ((![X1 : agent, X71 : nat, X72 : msg]: (~ (((agent2 @ X1) = (crypt @ X71 @ X72))))))). % msg.distinct(11)
thf(fact_113_msg_Odistinct_I3_J, axiom,
    ((![X1 : agent, X3 : nat]: (~ (((agent2 @ X1) = (nonce @ X3))))))). % msg.distinct(3)
thf(fact_114_publicKey__neq__privateKey, axiom,
    ((![C : keymode, A4 : agent, B2 : keymode, A : agent]: (~ (((publicKey @ C @ A4) = (invKey @ (publicKey @ B2 @ A)))))))). % publicKey_neq_privateKey
thf(fact_115_ns__shared_ONS1, axiom,
    ((![Evs1 : list_event, NA : nat, A : agent, B : agent]: ((member_list_event @ Evs1 @ nS_Sha1061662329shared) => ((~ ((member_msg @ (nonce @ NA) @ (used @ Evs1)))) => (member_list_event @ (cons_event @ (says @ A @ server @ (mPair @ (agent2 @ A) @ (mPair @ (agent2 @ B) @ (nonce @ NA)))) @ Evs1) @ nS_Sha1061662329shared)))))). % ns_shared.NS1
thf(fact_116_shrK__neq__priK, axiom,
    ((![B2 : keymode, C2 : agent, A : agent]: (~ (((invKey @ (publicKey @ B2 @ C2)) = (shrK @ A))))))). % shrK_neq_priK
thf(fact_117_ns__shared_ONil, axiom,
    ((member_list_event @ nil_event @ nS_Sha1061662329shared))). % ns_shared.Nil
thf(fact_118_not__symKeys__priK, axiom,
    ((![B2 : keymode, A : agent]: (~ ((member_nat @ (invKey @ (publicKey @ B2 @ A)) @ symKeys)))))). % not_symKeys_priK
thf(fact_119_list__ex1__iff, axiom,
    ((list_ex1_msg = (^[P3 : msg > $o]: (^[Xs3 : list_msg]: (?[X7 : msg]: (((((member_msg @ X7 @ (set_msg2 @ Xs3))) & ((P3 @ X7)))) & ((![Y8 : msg]: (((((member_msg @ Y8 @ (set_msg2 @ Xs3))) & ((P3 @ Y8)))) => ((Y8 = X7)))))))))))). % list_ex1_iff
thf(fact_120_list__ex1__iff, axiom,
    ((list_ex1_nat = (^[P3 : nat > $o]: (^[Xs3 : list_nat]: (?[X7 : nat]: (((((member_nat @ X7 @ (set_nat2 @ Xs3))) & ((P3 @ X7)))) & ((![Y8 : nat]: (((((member_nat @ Y8 @ (set_nat2 @ Xs3))) & ((P3 @ Y8)))) => ((Y8 = X7)))))))))))). % list_ex1_iff
thf(fact_121_list__ex1__iff, axiom,
    ((list_ex1_list_event = (^[P3 : list_event > $o]: (^[Xs3 : list_list_event]: (?[X7 : list_event]: (((((member_list_event @ X7 @ (set_list_event2 @ Xs3))) & ((P3 @ X7)))) & ((![Y8 : list_event]: (((((member_list_event @ Y8 @ (set_list_event2 @ Xs3))) & ((P3 @ Y8)))) => ((Y8 = X7)))))))))))). % list_ex1_iff
thf(fact_122_list__ex1__iff, axiom,
    ((list_ex1_agent = (^[P3 : agent > $o]: (^[Xs3 : list_agent]: (?[X7 : agent]: (((((member_agent @ X7 @ (set_agent2 @ Xs3))) & ((P3 @ X7)))) & ((![Y8 : agent]: (((((member_agent @ Y8 @ (set_agent2 @ Xs3))) & ((P3 @ Y8)))) => ((Y8 = X7)))))))))))). % list_ex1_iff
thf(fact_123_list__ex1__iff, axiom,
    ((list_ex1_event = (^[P3 : event > $o]: (^[Xs3 : list_event]: (?[X7 : event]: (((((member_event @ X7 @ (set_event2 @ Xs3))) & ((P3 @ X7)))) & ((![Y8 : event]: (((((member_event @ Y8 @ (set_event2 @ Xs3))) & ((P3 @ Y8)))) => ((Y8 = X7)))))))))))). % list_ex1_iff
thf(fact_124_ns__shared_ONS3, axiom,
    ((![Evs3 : list_event, A : agent, S2 : agent, NA : nat, B : agent, K : nat, X : msg]: ((member_list_event @ Evs3 @ nS_Sha1061662329shared) => ((~ ((A = server))) => ((member_event @ (says @ S2 @ A @ (crypt @ (shrK @ A) @ (mPair @ (nonce @ NA) @ (mPair @ (agent2 @ B) @ (mPair @ (key @ K) @ X))))) @ (set_event2 @ Evs3)) => ((member_event @ (says @ A @ server @ (mPair @ (agent2 @ A) @ (mPair @ (agent2 @ B) @ (nonce @ NA)))) @ (set_event2 @ Evs3)) => (member_list_event @ (cons_event @ (says @ A @ B @ X) @ Evs3) @ nS_Sha1061662329shared)))))))). % ns_shared.NS3
thf(fact_125_ns__shared_ONS5, axiom,
    ((![Evs5 : list_event, K : nat, B3 : agent, A : agent, NB : nat, S2 : agent, NA : nat, B : agent, X : msg]: ((member_list_event @ Evs5 @ nS_Sha1061662329shared) => ((member_nat @ K @ symKeys) => ((member_event @ (says @ B3 @ A @ (crypt @ K @ (nonce @ NB))) @ (set_event2 @ Evs5)) => ((member_event @ (says @ S2 @ A @ (crypt @ (shrK @ A) @ (mPair @ (nonce @ NA) @ (mPair @ (agent2 @ B) @ (mPair @ (key @ K) @ X))))) @ (set_event2 @ Evs5)) => (member_list_event @ (cons_event @ (says @ A @ B @ (crypt @ K @ (mPair @ (nonce @ NB) @ (nonce @ NB)))) @ Evs5) @ nS_Sha1061662329shared)))))))). % ns_shared.NS5
thf(fact_126_analz_ODecrypt, axiom,
    ((![K : nat, X : msg, H : set_msg]: ((member_msg @ (crypt @ K @ X) @ (analz @ H)) => ((member_msg @ (key @ (invKey @ K)) @ (analz @ H)) => (member_msg @ X @ (analz @ H))))))). % analz.Decrypt
thf(fact_127_ns__shared_ONS4, axiom,
    ((![Evs4 : list_event, NB : nat, K : nat, A4 : agent, B : agent, A : agent]: ((member_list_event @ Evs4 @ nS_Sha1061662329shared) => ((~ ((member_msg @ (nonce @ NB) @ (used @ Evs4)))) => ((member_nat @ K @ symKeys) => ((member_event @ (says @ A4 @ B @ (crypt @ (shrK @ B) @ (mPair @ (key @ K) @ (agent2 @ A)))) @ (set_event2 @ Evs4)) => (member_list_event @ (cons_event @ (says @ B @ A @ (crypt @ K @ (nonce @ NB))) @ Evs4) @ nS_Sha1061662329shared)))))))). % ns_shared.NS4
thf(fact_128_ns__sharedp_ONS2, axiom,
    ((![Evs2 : list_event, KAB : nat, A4 : agent, A : agent, B : agent, NA : nat]: ((nS_Sha1092415543haredp @ Evs2) => ((~ ((member_msg @ (key @ KAB) @ (used @ Evs2)))) => ((member_nat @ KAB @ symKeys) => ((member_event @ (says @ A4 @ server @ (mPair @ (agent2 @ A) @ (mPair @ (agent2 @ B) @ (nonce @ NA)))) @ (set_event2 @ Evs2)) => (nS_Sha1092415543haredp @ (cons_event @ (says @ server @ A @ (crypt @ (shrK @ A) @ (mPair @ (nonce @ NA) @ (mPair @ (agent2 @ B) @ (mPair @ (key @ KAB) @ (crypt @ (shrK @ B) @ (mPair @ (key @ KAB) @ (agent2 @ A)))))))) @ Evs2))))))))). % ns_sharedp.NS2
thf(fact_129_ns__sharedp_ONS4, axiom,
    ((![Evs4 : list_event, NB : nat, K : nat, A4 : agent, B : agent, A : agent]: ((nS_Sha1092415543haredp @ Evs4) => ((~ ((member_msg @ (nonce @ NB) @ (used @ Evs4)))) => ((member_nat @ K @ symKeys) => ((member_event @ (says @ A4 @ B @ (crypt @ (shrK @ B) @ (mPair @ (key @ K) @ (agent2 @ A)))) @ (set_event2 @ Evs4)) => (nS_Sha1092415543haredp @ (cons_event @ (says @ B @ A @ (crypt @ K @ (nonce @ NB))) @ Evs4))))))))). % ns_sharedp.NS4
thf(fact_130_ns__sharedp_ONS5, axiom,
    ((![Evs5 : list_event, K : nat, B3 : agent, A : agent, NB : nat, S2 : agent, NA : nat, B : agent, X : msg]: ((nS_Sha1092415543haredp @ Evs5) => ((member_nat @ K @ symKeys) => ((member_event @ (says @ B3 @ A @ (crypt @ K @ (nonce @ NB))) @ (set_event2 @ Evs5)) => ((member_event @ (says @ S2 @ A @ (crypt @ (shrK @ A) @ (mPair @ (nonce @ NA) @ (mPair @ (agent2 @ B) @ (mPair @ (key @ K) @ X))))) @ (set_event2 @ Evs5)) => (nS_Sha1092415543haredp @ (cons_event @ (says @ A @ B @ (crypt @ K @ (mPair @ (nonce @ NB) @ (nonce @ NB)))) @ Evs5))))))))). % ns_sharedp.NS5
thf(fact_131_ns__sharedp_ONS3, axiom,
    ((![Evs3 : list_event, A : agent, S2 : agent, NA : nat, B : agent, K : nat, X : msg]: ((nS_Sha1092415543haredp @ Evs3) => ((~ ((A = server))) => ((member_event @ (says @ S2 @ A @ (crypt @ (shrK @ A) @ (mPair @ (nonce @ NA) @ (mPair @ (agent2 @ B) @ (mPair @ (key @ K) @ X))))) @ (set_event2 @ Evs3)) => ((member_event @ (says @ A @ server @ (mPair @ (agent2 @ A) @ (mPair @ (agent2 @ B) @ (nonce @ NA)))) @ (set_event2 @ Evs3)) => (nS_Sha1092415543haredp @ (cons_event @ (says @ A @ B @ X) @ Evs3))))))))). % ns_sharedp.NS3
thf(fact_132_ns__shared_OOops, axiom,
    ((![Evso : list_event, B : agent, A : agent, K : nat, NB : nat, NA : nat, X : msg]: ((member_list_event @ Evso @ nS_Sha1061662329shared) => ((member_event @ (says @ B @ A @ (crypt @ K @ (nonce @ NB))) @ (set_event2 @ Evso)) => ((member_event @ (says @ server @ A @ (crypt @ (shrK @ A) @ (mPair @ (nonce @ NA) @ (mPair @ (agent2 @ B) @ (mPair @ (key @ K) @ X))))) @ (set_event2 @ Evso)) => (member_list_event @ (cons_event @ (notes @ spy @ (mPair @ (nonce @ NA) @ (mPair @ (nonce @ NB) @ (key @ K)))) @ Evso) @ nS_Sha1061662329shared))))))). % ns_shared.Oops
thf(fact_133_agent_Odistinct_I3_J, axiom,
    ((~ ((server = spy))))). % agent.distinct(3)
thf(fact_134_ns__sharedp__ns__shared__eq, axiom,
    ((nS_Sha1092415543haredp = (^[X7 : list_event]: (member_list_event @ X7 @ nS_Sha1061662329shared))))). % ns_sharedp_ns_shared_eq
thf(fact_135_ns__sharedp_ONil, axiom,
    ((nS_Sha1092415543haredp @ nil_event))). % ns_sharedp.Nil
thf(fact_136_ns__sharedp_OOops, axiom,
    ((![Evso : list_event, B : agent, A : agent, K : nat, NB : nat, NA : nat, X : msg]: ((nS_Sha1092415543haredp @ Evso) => ((member_event @ (says @ B @ A @ (crypt @ K @ (nonce @ NB))) @ (set_event2 @ Evso)) => ((member_event @ (says @ server @ A @ (crypt @ (shrK @ A) @ (mPair @ (nonce @ NA) @ (mPair @ (agent2 @ B) @ (mPair @ (key @ K) @ X))))) @ (set_event2 @ Evso)) => (nS_Sha1092415543haredp @ (cons_event @ (notes @ spy @ (mPair @ (nonce @ NA) @ (mPair @ (nonce @ NB) @ (key @ K)))) @ Evso)))))))). % ns_sharedp.Oops
thf(fact_137_ns__sharedp_ONS1, axiom,
    ((![Evs1 : list_event, NA : nat, A : agent, B : agent]: ((nS_Sha1092415543haredp @ Evs1) => ((~ ((member_msg @ (nonce @ NA) @ (used @ Evs1)))) => (nS_Sha1092415543haredp @ (cons_event @ (says @ A @ server @ (mPair @ (agent2 @ A) @ (mPair @ (agent2 @ B) @ (nonce @ NA)))) @ Evs1))))))). % ns_sharedp.NS1
thf(fact_138_can__select__set__list__ex1, axiom,
    ((![P : event > $o, A : list_event]: ((can_select_event @ P @ (set_event2 @ A)) = (list_ex1_event @ P @ A))))). % can_select_set_list_ex1
thf(fact_139_the__elem__set, axiom,
    ((![X2 : event]: ((the_elem_event @ (set_event2 @ (cons_event @ X2 @ nil_event))) = X2)))). % the_elem_set
thf(fact_140_can__select__def, axiom,
    ((can_select_msg = (^[P3 : msg > $o]: (^[A6 : set_msg]: (?[X7 : msg]: (((((member_msg @ X7 @ A6)) & ((P3 @ X7)))) & ((![Y8 : msg]: (((((member_msg @ Y8 @ A6)) & ((P3 @ Y8)))) => ((Y8 = X7)))))))))))). % can_select_def
thf(fact_141_can__select__def, axiom,
    ((can_select_nat = (^[P3 : nat > $o]: (^[A6 : set_nat]: (?[X7 : nat]: (((((member_nat @ X7 @ A6)) & ((P3 @ X7)))) & ((![Y8 : nat]: (((((member_nat @ Y8 @ A6)) & ((P3 @ Y8)))) => ((Y8 = X7)))))))))))). % can_select_def
thf(fact_142_can__select__def, axiom,
    ((can_select_event = (^[P3 : event > $o]: (^[A6 : set_event]: (?[X7 : event]: (((((member_event @ X7 @ A6)) & ((P3 @ X7)))) & ((![Y8 : event]: (((((member_event @ Y8 @ A6)) & ((P3 @ Y8)))) => ((Y8 = X7)))))))))))). % can_select_def
thf(fact_143_can__select__def, axiom,
    ((can_se1625331413_event = (^[P3 : list_event > $o]: (^[A6 : set_list_event]: (?[X7 : list_event]: (((((member_list_event @ X7 @ A6)) & ((P3 @ X7)))) & ((![Y8 : list_event]: (((((member_list_event @ Y8 @ A6)) & ((P3 @ Y8)))) => ((Y8 = X7)))))))))))). % can_select_def
thf(fact_144_can__select__def, axiom,
    ((can_select_agent = (^[P3 : agent > $o]: (^[A6 : set_agent]: (?[X7 : agent]: (((((member_agent @ X7 @ A6)) & ((P3 @ X7)))) & ((![Y8 : agent]: (((((member_agent @ Y8 @ A6)) & ((P3 @ Y8)))) => ((Y8 = X7)))))))))))). % can_select_def
thf(fact_145_product__lists_Osimps_I1_J, axiom,
    (((product_lists_event @ nil_list_event) = (cons_list_event @ nil_event @ nil_list_event)))). % product_lists.simps(1)
thf(fact_146_knows__Spy__imp__Says__Notes__initState, axiom,
    ((![X : msg, Evs : list_event]: ((member_msg @ X @ (knows @ spy @ Evs)) => (?[A7 : agent, B4 : agent]: ((member_event @ (says @ A7 @ B4 @ X) @ (set_event2 @ Evs)) | ((member_event @ (notes @ A7 @ X) @ (set_event2 @ Evs)) | (member_msg @ X @ (initState @ spy))))))))). % knows_Spy_imp_Says_Notes_initState
thf(fact_147_shrK__in__knows, axiom,
    ((![A : agent, Evs : list_event]: (member_msg @ (key @ (shrK @ A)) @ (knows @ A @ Evs))))). % shrK_in_knows
thf(fact_148_spies__pubK, axiom,
    ((![B2 : keymode, A : agent, Evs : list_event]: (member_msg @ (key @ (publicKey @ B2 @ A)) @ (knows @ spy @ Evs))))). % spies_pubK
thf(fact_149_analz__spies__pubK, axiom,
    ((![B2 : keymode, A : agent, Evs : list_event]: (member_msg @ (key @ (publicKey @ B2 @ A)) @ (analz @ (knows @ spy @ Evs)))))). % analz_spies_pubK
thf(fact_150_Says__imp__knows, axiom,
    ((![A : agent, B : agent, X : msg, Evs : list_event]: ((member_event @ (says @ A @ B @ X) @ (set_event2 @ Evs)) => (member_msg @ X @ (knows @ A @ Evs)))))). % Says_imp_knows
thf(fact_151_Notes__imp__knows, axiom,
    ((![A : agent, X : msg, Evs : list_event]: ((member_event @ (notes @ A @ X) @ (set_event2 @ Evs)) => (member_msg @ X @ (knows @ A @ Evs)))))). % Notes_imp_knows
thf(fact_152_analz__impI, axiom,
    ((![Y : msg, Evs : list_event, Q : $o]: (((~ ((member_msg @ Y @ (analz @ (knows @ spy @ Evs))))) => Q) => ((~ ((member_msg @ Y @ (analz @ (knows @ spy @ Evs))))) => Q))))). % analz_impI
thf(fact_153_knows__Nil, axiom,
    ((![A : agent]: ((knows @ A @ nil_event) = (initState @ A))))). % knows_Nil
thf(fact_154_Says__imp__knows__Spy, axiom,
    ((![A : agent, B : agent, X : msg, Evs : list_event]: ((member_event @ (says @ A @ B @ X) @ (set_event2 @ Evs)) => (member_msg @ X @ (knows @ spy @ Evs)))))). % Says_imp_knows_Spy
thf(fact_155_analz__mono__contra_I1_J, axiom,
    ((![C : msg, A : agent, B : agent, X : msg, Evs : list_event]: ((~ ((member_msg @ C @ (analz @ (knows @ spy @ (cons_event @ (says @ A @ B @ X) @ Evs)))))) => (~ ((member_msg @ C @ (analz @ (knows @ spy @ Evs))))))))). % analz_mono_contra(1)
thf(fact_156_Says__imp__analz__Spy, axiom,
    ((![A : agent, B : agent, X : msg, Evs : list_event]: ((member_event @ (says @ A @ B @ X) @ (set_event2 @ Evs)) => (member_msg @ X @ (analz @ (knows @ spy @ Evs))))))). % Says_imp_analz_Spy
thf(fact_157_analz__mono__contra_I2_J, axiom,
    ((![C : msg, A : agent, X : msg, Evs : list_event]: ((~ ((member_msg @ C @ (analz @ (knows @ spy @ (cons_event @ (notes @ A @ X) @ Evs)))))) => (~ ((member_msg @ C @ (analz @ (knows @ spy @ Evs))))))))). % analz_mono_contra(2)
thf(fact_158_Spy__spies__bad__privateKey, axiom,
    ((![A : agent, B2 : keymode, Evs : list_event]: ((member_agent @ A @ bad) => (member_msg @ (key @ (invKey @ (publicKey @ B2 @ A))) @ (knows @ spy @ Evs)))))). % Spy_spies_bad_privateKey
thf(fact_159_Spy__spies__bad__shrK, axiom,
    ((![A : agent, Evs : list_event]: ((member_agent @ A @ bad) => (member_msg @ (key @ (shrK @ A)) @ (knows @ spy @ Evs)))))). % Spy_spies_bad_shrK
thf(fact_160_Spy__in__bad, axiom,
    ((member_agent @ spy @ bad))). % Spy_in_bad
thf(fact_161_Server__not__bad, axiom,
    ((~ ((member_agent @ server @ bad))))). % Server_not_bad
thf(fact_162_Notes__imp__knows__Spy, axiom,
    ((![A : agent, X : msg, Evs : list_event]: ((member_event @ (notes @ A @ X) @ (set_event2 @ Evs)) => ((member_agent @ A @ bad) => (member_msg @ X @ (knows @ spy @ Evs))))))). % Notes_imp_knows_Spy
thf(fact_163_Crypt__Spy__analz__bad, axiom,
    ((![A : agent, X : msg, Evs : list_event]: ((member_msg @ (crypt @ (shrK @ A) @ X) @ (analz @ (knows @ spy @ Evs))) => ((member_agent @ A @ bad) => (member_msg @ X @ (analz @ (knows @ spy @ Evs)))))))). % Crypt_Spy_analz_bad
thf(fact_164_knows__imp__Says__Gets__Notes__initState, axiom,
    ((![X : msg, A : agent, Evs : list_event]: ((member_msg @ X @ (knows @ A @ Evs)) => ((~ ((A = spy))) => (?[B4 : agent]: ((member_event @ (says @ A @ B4 @ X) @ (set_event2 @ Evs)) | ((member_event @ (gets @ A @ X) @ (set_event2 @ Evs)) | ((member_event @ (notes @ A @ X) @ (set_event2 @ Evs)) | (member_msg @ X @ (initState @ A))))))))))). % knows_imp_Says_Gets_Notes_initState
thf(fact_165_knows__Spy__Notes, axiom,
    ((![A : agent, X : msg, Evs : list_event]: (((member_agent @ A @ bad) => ((knows @ spy @ (cons_event @ (notes @ A @ X) @ Evs)) = (insert_msg @ X @ (knows @ spy @ Evs)))) & ((~ ((member_agent @ A @ bad))) => ((knows @ spy @ (cons_event @ (notes @ A @ X) @ Evs)) = (knows @ spy @ Evs))))))). % knows_Spy_Notes
thf(fact_166_event_Oinject_I2_J, axiom,
    ((![X21 : agent, X22 : msg, Y21 : agent, Y22 : msg]: (((gets @ X21 @ X22) = (gets @ Y21 @ Y22)) = (((X21 = Y21)) & ((X22 = Y22))))))). % event.inject(2)
thf(fact_167_list_Osimps_I15_J, axiom,
    ((![X21 : msg, X22 : list_msg]: ((set_msg2 @ (cons_msg @ X21 @ X22)) = (insert_msg @ X21 @ (set_msg2 @ X22)))))). % list.simps(15)
thf(fact_168_list_Osimps_I15_J, axiom,
    ((![X21 : event, X22 : list_event]: ((set_event2 @ (cons_event @ X21 @ X22)) = (insert_event @ X21 @ (set_event2 @ X22)))))). % list.simps(15)
thf(fact_169_analz__insert__MPair, axiom,
    ((![X : msg, Y : msg, H : set_msg]: ((analz @ (insert_msg @ (mPair @ X @ Y) @ H)) = (insert_msg @ (mPair @ X @ Y) @ (analz @ (insert_msg @ X @ (insert_msg @ Y @ H)))))))). % analz_insert_MPair
thf(fact_170_analz__insert__Nonce, axiom,
    ((![N : nat, H : set_msg]: ((analz @ (insert_msg @ (nonce @ N) @ H)) = (insert_msg @ (nonce @ N) @ (analz @ H)))))). % analz_insert_Nonce

% Conjectures (4)
thf(conj_0, hypothesis,
    ((~ ((a = server))))).
thf(conj_1, hypothesis,
    ((~ ((member_msg @ (key @ k) @ (used @ nil_event)))))).
thf(conj_2, hypothesis,
    ((member_nat @ k @ symKeys))).
thf(conj_3, conjecture,
    ((member_event @ (says @ a @ b @ (crypt @ k @ (mPair @ (nonce @ n_0_ATP) @ (nonce @ n_0_ATP)))) @ (set_event2 @ evs_1_ATP)))).
