{ sth:SecurityTheory
    (CR-protocol |= CR-initiator3 authenticates 2 messages 
     CR-protocol |= CR-responder3 authenticates 3 messages ) }

{ Proof }



Definitions occuring in Statement :  CR-protocol: CR-protocol CR-responder3: CR-responder3 CR-initiator3: CR-initiator3 authentication: prtcl |= bs authenticates n messages  sth-es: sth-es(s) security-theory: SecurityTheory all: x:A. B[x] and: P  Q natural_number: $n
Definitions :  limited-type: LimitedType universe: Type eq_atom: x =a y eq_atom: eq_atom$n(x;y) set: {x:A| B[x]}  atom: Atom$n dep-isect: Error :dep-isect,  record+: record+ ses-decrypt: Decrypt ses-encrypt: Encrypt ses-verify: Verify ses-sign: Sign ses-rcv: Rcv ses-send: Send int: ses-new: New in-eclass: e  X es-E: E natural_number: $n ses-D-private: ses-D-private(s) ses-D-public: ses-D-public(s) cand: A c B record-select: r.x infix_ap: x f y es-causl: (e < e') union: left + right or: P  Q rev_implies: P  Q iff: P  Q decide: case b of inl(x) =s[x] | inr(y) =t[y] ifthenelse: if b then t else f fi  pi1: fst(t) ses-key-rel: MatchingKeys(k1;k2) ycomb: Y ses-flow: ses-flow(s;es;a;e1;e2) void: Void false: False assert: b sym: Sym(T;x,y.E[x; y]) ses-K: PropertyK ses-S: PropertyS ses-D: PropertyD ses-R: PropertyR ses-V: PropertyV ses-flow-axiom: PropertyF ses-nonce-disjoint: NoncesCiphersAndKeysDisjoint ses-disjoint: ActionsDisjoint ses-ordering': ses-ordering'(s) ses-NR: PropertyNR ses-NU: PropertyNU guard: {T} ses-axioms: SecurityAxioms CR-responder3: CR-responder3 member: t  T strong-subtype: strong-subtype(A;B) le: A  B ge: i  j  less_than: a < b uimplies: b supposing a uiff: uiff(P;Q) subtype_rel: A r B isect: x:A. B[x] uall: [x:A]. B[x] ses-info: Info event-ordering+: EO+(Info) ses-honest: Honest(A) Id: Id equal: s = t not: A apply: f a is-basic-seq: thr[A;B] |= bs ses-thread: Thread matching-conversation: MatchingConversation(n;thr1;thr2) prop: security-theory: SecurityTheory CR-initiator3: CR-initiator3 CR-protocol: CR-protocol authentication: prtcl |= bs authenticates n messages  all: x:A. B[x] implies: P  Q function: x:A  B[x] exists: x:A. B[x] and: P  Q product: x:A  B[x] ses-thread-loc: loc(thr)= A sth-es: sth-es(s) sq_type: SQType(T) id-sdata: data(x) sdata-pair: <d1, d2> atom-sdata: data(a) token: "$token" mk-pa: n(v) ses-is-protocol-action: pa(e) minus: -n ses-act: Act add: n + m select: l[i] length: ||as|| subtract: n - m true: True es-causle: e c e' existse-before: e<e'.P[e] existse-le: ee'.P[e] alle-lt: e<e'.P[e] alle-le: ee'.P[e] alle-between1: e[e1,e2).P[e] existse-between1: e[e1,e2).P[e] alle-between2: e[e1,e2].P[e] existse-between2: e[e1,e2].P[e] existse-between3: e(e1,e2].P[e] es-fset-loc: i  locs(s) es-r-immediate-pred: es-r-immediate-pred(es;R;e';e) same-thread: same-thread(es;p;e;e') collect-event: collect-event(es;X;n;v.num[v];L.P[L];e) cut-order: a (X;f) b path-goes-thru: x-f*-y thru i lg-edge: lg-edge(g;a;b) ses-action: Action(e) ses-legal-sequence: Legal(pas) given prvt decidable: Dec(P) uni_sat: a = !x:T. Q[x] inv_funs: InvFuns(A;B;f;g) inject: Inj(A;B;f) eqfun_p: IsEqFun(T;eq) refl: Refl(T;x,y.E[x; y]) urefl: UniformlyRefl(T;x,y.E[x; y]) usym: UniformlySym(T;x,y.E[x; y]) trans: Trans(T;x,y.E[x; y]) utrans: UniformlyTrans(T;x,y.E[x; y]) anti_sym: AntiSym(T;x,y.R[x; y]) uanti_sym: UniformlyAntiSym(T;x,y.R[x; y]) connex: Connex(T;x,y.R[x; y]) uconnex: uconnex(T; x,y.R[x; y]) coprime: CoPrime(a,b) ident: Ident(T;op;id) assoc: Assoc(T;op) comm: Comm(T;op) inverse: Inverse(T;op;id;inv) bilinear: BiLinear(T;pl;tm) bilinear_p: IsBilinear(A;B;C;+a;+b;+c;f) action_p: IsAction(A;x;e;S;f) dist_1op_2op_lr: Dist1op2opLR(A;1op;2op) fun_thru_1op: fun_thru_1op(A;B;opa;opb;f) fun_thru_2op: FunThru2op(A;B;opa;opb;f) cancel: Cancel(T;S;op) monot: monot(T;x,y.R[x; y];f) monoid_p: IsMonoid(T;op;id) group_p: IsGroup(T;op;id;inv) monoid_hom_p: IsMonHom{M1,M2}(f) grp_leq: a  b integ_dom_p: IsIntegDom(r) prime_ideal_p: IsPrimeIdeal(R;P) no_repeats: no_repeats(T;l) value-type: value-type(T) valueall-type: valueall-type(T) is_list_splitting: is_list_splitting(T;L;LL;L2;f) is_accum_splitting: is_accum_splitting(T;A;L;LL;L2;f;g;x) req: x = y rnonneg: rnonneg(r) rleq: x  y i-member: r  I partitions: partitions(I;p) modulus-of-ccontinuity: modulus-of-ccontinuity(omega;I;f) fpf-sub: f  g squash: T sq_stable: SqStable(P) ses-is-protocol-actions: pas(thr) sqequal: s ~ t p-outcome: Outcome lelt: i  j < k real: rationals: subtype: S  T int_seg: {i..j} security-event-structure: SES es-E-interface: E(X) event_ordering: EO nat: encryption-key: Key event-has*: e has* a es-locl: (e <loc e') es-le: e loc e'  ses-fresh-thread: ses-fresh-thread(s;es;f;A;thr) pair: <a, b> bool: lambda: x.A[x] so_lambda: x.t[x] l_exists: (xL. P[x]) ses-protocol1-thread: (thr is one of bss at A) l_member: (x  l) l_all: (xL.P[x]) l_contains: A  B ses-legal-thread: Legal(thr)@A tl: tl(l) hd: hd(l) ses-protocol1: Protocol1(bss) ses-basic-sequence1: Basic1 list: type List nil: [] CR-responder2: CR-responder2{i:l}(s) CR-responder1: CR-responder1{i:l}(s) CR-initiator2: CR-initiator2{i:l}(s) CR-initiator1: CR-initiator1{i:l}(s) cons: [car / cdr] sig-release-thread: sig-release-thread(s;es;A;thr) fresh-sig-protocol1: FreshSignatures(bss) ses-protocol1-legal: Legal(bss) ses-thread-member: e  thr es-loc: loc(e) ses-signer: signer(e) es-base-E: es-base-E(es) atom: Atom fpf-cap: f(x)?z fpf: a:A fp-B[a] quotient: x,y:A//B[x; y] bag: bag(T) so_lambda: x y.t[x; y] eclass: EClass(A[eo; e]) top: Top eclass-val: X(e) sdata: SecurityData nat_plus: reducible: reducible(a) prime: prime(a) fun-connected: y is f*(x) qle: r  s qless: r < s q-rel: q-rel(r;x) sq_exists: x:{A| B[x]} i-finite: i-finite(I) i-closed: i-closed(I) dstype: dstype(TypeNames; d; a) fset-member: a  s f-subset: xs  ys fset: FSet{T} fset-closed: (s closed under fs) IdLnk: IdLnk Knd: Knd MaName: MaName l_disjoint: l_disjoint(T;l1;l2) consensus-state3: consensus-state3(T) cs-not-completed: in state s, a has not completed inning i cs-archived: by state s, a archived v in inning i cs-passed: by state s, a passed inning i without archiving a value cs-inning-committed: in state s, inning i has committed v cs-inning-committable: in state s, inning i could commit v  cs-archive-blocked: in state s, ws' blocks ws from archiving v in inning i cs-precondition: state s may consider v in inning i consensus-rcv: consensus-rcv(V;A) runEvents: runEvents(r) pi2: snd(t) btrue: tt record: record(x.T[x]) sdata_atoms_atom: sdata_atoms_atom{sdata_atoms_atom_compseq_tag_def:o}(a) sdata_atoms_pair: sdata_atoms_pair{sdata_atoms_pair_compseq_tag_def:o}(d2; d1) free-from-atom: x:T||a class-value-has: X(e) has a event-has: (e has a) ses-info-flow: ->> rel_star: R^* release-before: (a released before e) ses-sig: signature(e) send-rcv-match: send-rcv-match(m1;m2) spread: spread def null: null(as) lt_int: i <z j zip: zip(as;bs) firstn: firstn(n;as) ses-msg: isMsg(e) thread-messages: thread-messages(thr) tactic: Error :tactic,  label: ...$L... t iseg: l1  l2 bEvents: Error :bEvents,  string: Error :string,  grp_lt: a < b set_lt: a <p b set_leq: a  b assoced: a ~ b divides: b | a ses-encryption-key: key(e) ses-decryption-key: key(e) ses-private-key: PrivateKey(A) tree: Tree(E) rec: rec(x.A[x])
Lemmas :  atom1_sq atom_sq Id_sq guard_wf sdata_sq decidable__assert int_sq es-le_weakening_eq iseg_select2 iseg_wf iseg_same_length es-locl_irreflexivity iseg_length es-causl_irreflexivity es-causle_weakening es-causl_transitivity2 es-le_weakening es-causle_weakening_locl es-causl_weakening es-locl_transitivity2 ses-msg-cases non_neg_length l_all_cons and_functionality_wrt_iff l_all-nil l_all_wf2 ses-thread-member_wf l_all_wf send-rcv-match_wf release-before_wf event-has*_wf ses-info-flow_wf rel_star_wf event-has_wf nonce-release-lemma2 es-loc_wf event-has*-iff class-value-has_wf sdata-has-atom squash_wf bool_wf set_subtype_base eclass-val_wf ifthenelse_wf true_wf assert_elim pi1_wf_top pi2_wf sdata-pair-one-one sdata-pair_wf id-sdata_wf atom-sdata_wf atom-sdata-one-one id-sdata-one-one decidable__equal_int int_seg_properties es-interface-top sdata_wf ses-verify_wf subtype_rel_wf eclass_wf in-eclass_wf assert_wf top_wf es-interface-subtype_rel product_subtype_base sdata_subtype_base atom2_subtype_base atom1_subtype_base sq_stable__assert ses-sign_wf length_wf_nat es-interface-subtype_rel2 es-base-E_wf subtype_rel_self ses-action_wf ses-new_wf ses-send_wf ses-rcv_wf ses-encrypt_wf encryption-key_wf ses-decrypt_wf iff_transitivity l_exists_cons or_functionality_wrt_iff iff_wf rev_implies_wf l_exists_nil cons_member ses-basic-sequence1_wf l_exists_wf ses-protocol1-thread_wf ses-protocol1_wf CR-responder2_wf CR-responder1_wf CR-initiator2_wf CR-initiator1_wf signature-release-lemma2 CR-protocol-fresh CR-protocol-legal l_member_wf nat_wf select_member le_wf false_wf member_wf es-locl_wf int_seg_wf sq_stable__all sq_stable_from_decidable decidable__es-locl event-ordering+_inc es-E_wf select_wf ses-act_wf subtype_base_sq int_subtype_base sth-es_wf not_wf Id_wf CR-protocol_wf ses-thread_wf ses-thread-loc_wf is-basic-seq_wf CR-initiator3_wf matching-conversation_wf authentication_wf event-ordering+_wf ses-info_wf ses-honest_wf security-theory_wf CR-responder3_wf sth-axioms ses-axioms-imply ses-D-implies

\mforall{}sth:SecurityTheory
    (CR-protocol  |=  CR-initiator3  authenticates  2  messages 
    \mwedge{}  CR-protocol  |=  CR-responder3  authenticates  3  messages  )


Date html generated: 2011_08_17-PM-07_50_43
Last ObjectModification: 2011_06_18-PM-01_44_37

Home Index