{ s:SES
    (ActionsDisjoint
     (es:EO+(Info). A:Id. thr:Thread.
          (Legal(thr)@A
           (a:Atom1. e:Act.
                (e  thr
                 (e has a)
                 ((e':Act. ((e' <loc e)  (e' has a)  e'  thr))
                    (a  UseableAtoms(e))
                    (a = Private(A)))))))) }

{ Proof }



Definitions occuring in Statement :  ses-legal-thread: Legal(thr)@A,  ses-useable-atoms: UseableAtoms(e),  ses-thread-member: e  thr,  ses-thread: Thread,  ses-disjoint: ActionsDisjoint,  event-has: (e has a),  ses-act: Act,  ses-private: Private(A),  ses-info: Info,  security-event-structure: SES,  event-ordering+: EO+(Info),  es-locl: (e <loc e'),  Id: Id,  all: x:A. B[x],  exists: x:A. B[x],  implies: P  Q,  or: P  Q,  and: P  Q,  equal: s = t,  l_member: (x  l),  atom: Atom$n
Definitions :  member: t  T,  ses-thread: Thread,  Id: Id,  ses-legal-thread: Legal(thr)@A,  atom: Atom$n,  ses-act: Act,  ses-thread-member: e  thr,  event-has: (e has a),  l_member: (x  l),  not: A,  ses-disjoint: ActionsDisjoint,  security-event-structure: SES,  event-ordering+: EO+(Info),  equal: s = t,  function: x:A  B[x],  all: x:A. B[x],  ses-private: Private(A),  prop: ,  universe: Type,  limited-type: LimitedType,  es-E: E,  set: {x:A| B[x]} ,  ses-useable-atoms: UseableAtoms(e),  union: left + right,  or: P  Q,  product: x:A  B[x],  false: False,  implies: P  Q,  and: P  Q,  assert: b,  dep-isect: Error :dep-isect,  eq_atom: x =a y,  eq_atom: eq_atom$n(x;y),  record+: record+,  l_all: (xL.P[x]),  l_contains: A  B,  exists: x:A. B[x],  class-value-has: X(e) has a,  less_than: a < b,  void: Void,  ses-info: Info,  ses-used-atoms: UsedAtoms(e),  bool: ,  es-locl: (e <loc e'),  subtype_rel: A r B,  strong-subtype: strong-subtype(A;B),  event_ordering: EO,  eclass-val: X(e),  alle-between3: e(e1,e2].P[e],  es-pred: pred(e),  es-causl: (e < e'),  cand: A c B,  int_seg: {i..j},  nat: ,  subtype: S  T,  top: Top,  token: "$token",  ifthenelse: if b then t else f fi ,  atom: Atom,  apply: f a,  record-select: r.x,  guard: {T},  decidable: Dec(P),  rationals: ,  qle: r  s,  qless: r < s,  q-rel: q-rel(r;x),  p-outcome: Outcome,  dstype: dstype(TypeNames; d; a),  fset-member: a  s,  f-subset: xs  ys,  fset: FSet{T},  fset-closed: (s closed under fs),  string: Error :string,  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),  infix_ap: x f y,  es-le: e loc e' ,  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-E-interface: E(X),  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,  es-r-immediate-pred: es-r-immediate-pred(es;R;e';e),  same-thread: same-thread(es;p;e;e'),  inject: Inj(A;B;f),  reducible: reducible(a),  prime: prime(a),  squash: T,  l_exists: (xL. P[x]),  fun-connected: y is f*(x),  iff: P  Q,  le: A  B,  divides: b | a,  assoced: a ~ b,  set_leq: a  b,  set_lt: a <p b,  grp_lt: a < b,  list: type List,  unit: Unit,  rev_implies: P  Q,  true: True,  sq_stable: SqStable(P),  uni_sat: a = !x:T. Q[x],  inv_funs: InvFuns(A;B;f;g),  eqfun_p: IsEqFun(T;eq),  refl: Refl(T;x,y.E[x; y]),  sym: Sym(T;x,y.E[x; y]),  trans: Trans(T;x,y.E[x; y]),  anti_sym: AntiSym(T;x,y.R[x; y]),  connex: Connex(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),  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),  fpf-sub: f  g,  MaAuto: Error :MaAuto,  D: Error :D,  CollapseTHEN: Error :CollapseTHEN,  Auto: Error :Auto,  CollapseTHENA: Error :CollapseTHENA,  ses-action: Action(e),  AssertBY: Error :AssertBY,  pair: <a, b>,  ParallelOp: Error :ParallelOp,  Unfold: Error :Unfold,  select: l[i],  length: ||as||,  int: ,  lelt: i  j < k,  natural_number: $n,  real: ,  from-upto: [n, m),  lambda: x.A[x],  listp: A List,  combination: Combination(n;T),  map: map(f;as),  concat: concat(ll),  add: n + m,  minus: -n,  subtract: n - m,  nil: [],  cons: [car / cdr],  ge: i  j ,  es-loc: loc(e),  sqequal: s ~ t,  sq_type: SQType(T),  isect: x:A. B[x]
Lemmas :  top_wf,  non_neg_length,  nat_wf,  cons_one_one,  atom_sq,  atom1_sq,  guard_wf,  length_wf_nat,  int_seg_wf,  int_seg_properties,  member_map,  member-concat,  ses-used-atoms_wf,  cons_member,  concat_wf,  map_wf,  le_wf,  select_wf,  from-upto_wf,  length_wf1,  not_wf,  false_wf,  ses-thread-order,  member_wf,  ses-legal-thread_wf,  ses-thread_wf,  event-ordering+_wf,  ses-disjoint_wf,  security-event-structure_wf,  sq_stable_from_decidable,  decidable__ses-action,  ses-action_wf,  ses-act-has-atom,  decidable__or,  decidable__l_member,  decidable__atom_equal_1,  es-E_wf,  subtype_rel_self,  event-ordering+_inc,  ses-info_wf,  ses-act_wf,  ses-thread-member_wf,  event-has_wf,  es-causl_wf,  Id_wf,  es-locl_wf,  l_member_wf,  ses-useable-atoms_wf,  ses-private_wf

\mforall{}s:SES
    (ActionsDisjoint
    {}\mRightarrow{}  (\mforall{}es:EO+(Info).  \mforall{}A:Id.  \mforall{}thr:Thread.
                (Legal(thr)@A
                {}\mRightarrow{}  (\mforall{}a:Atom1.  \mforall{}e:Act.
                            (e  \mmember{}  thr
                            {}\mRightarrow{}  (e  has  a)
                            {}\mRightarrow{}  ((\mexists{}e':Act.  ((e'  <loc  e)  \mwedge{}  (e'  has  a)  \mwedge{}  e'  \mmember{}  thr))
                                  \mvee{}  (a  \mmember{}  UseableAtoms(e))
                                  \mvee{}  (a  =  Private(A))))))))


Date html generated: 2011_08_17-PM-07_35_50
Last ObjectModification: 2010_09_24-PM-02_42_18

Home Index