{ [V:Type]. [A:Id List]. [W:{a:Id| (a  A)}  List List].
  [s,s2:ConsensusState].
    [i:]. [v,v2:V].
      (v = v2) supposing 
         (in state s, inning i has committed v2 and 
         in state s2, inning i could commit v  and 
         two-intersection(A;W)) 
    supposing s ts-rel(consensus-ts4(V;A;W)) s2 }

{ Proof }



Definitions occuring in Statement :  two-intersection: two-intersection(A;W),  cs-inning-committable: in state s, inning i could commit v ,  cs-inning-committed: in state s, inning i has committed v,  consensus-ts4: consensus-ts4(V;A;W),  consensus-state4: ConsensusState,  Id: Id,  uimplies: b supposing a,  uall: [x:A]. B[x],  infix_ap: x f y,  set: {x:A| B[x]} ,  list: type List,  int: ,  universe: Type,  equal: s = t,  l_member: (x  l),  ts-rel: ts-rel(ts)
Definitions :  assert: b,  pair: <a, b>,  axiom: Ax,  cs-not-completed: in state s, a has not completed inning i,  cs-archived: by state s, a archived v in inning i,  cs-inning-committed: in state s, inning i has committed v,  l_all: (xL.P[x]),  cs-inning-committable: in state s, inning i could commit v ,  two-intersection: two-intersection(A;W),  bool: ,  transition-system: transition-system{i:l},  tag-by: zT,  rev_implies: P  Q,  iff: P  Q,  record+: record+,  record: record(x.T[x]),  fset: FSet{T},  isect2: T1  T2,  b-union: A  B,  true: True,  intensional-universe: IType,  int-deq: IntDeq,  fpf-cap: f(x)?z,  fpf-single: x : v,  fpf-join: f  g,  cs-precondition: state s may consider v in inning i,  exists: x:A. B[x],  top: Top,  fpf-domain: fpf-domain(f),  natural_number: $n,  add: n + m,  union: left + right,  or: P  Q,  cs-estimate: Estimate(s;a),  lambda: x.A[x],  so_lambda: x.t[x],  cs-inning: Inning(s;a),  limited-type: LimitedType,  implies: P  Q,  strong-subtype: strong-subtype(A;B),  le: A  B,  ge: i  j ,  not: A,  less_than: a < b,  and: P  Q,  uiff: uiff(P;Q),  subtype_rel: A r B,  spread: spread def,  pi1: fst(t),  ts-type: ts-type(ts),  consensus-ts4: consensus-ts4(V;A;W),  ts-rel: ts-rel(ts),  apply: f a,  infix_ap: x f y,  uimplies: b supposing a,  fpf: a:A fp-> B[a],  int: ,  product: x:A  B[x],  consensus-state4: ConsensusState,  prop: ,  isect: x:A. B[x],  all: x:A. B[x],  function: x:A  B[x],  uall: [x:A]. B[x],  set: {x:A| B[x]} ,  l_member: (x  l),  Id: Id,  list: type List,  universe: Type,  member: t  T,  equal: s = t,  tactic: Error :tactic,  ts-stable: ts-stable(ts;x.P[x])
Lemmas :  consensus-ts4-inning-committed-stable,  cs-inning-committed-single,  member_wf,  ts-type_wf,  consensus-ts4_wf,  ts-rel_wf,  subtype_rel_wf,  consensus-state4_wf,  Id_wf,  l_member_wf,  not_wf,  cs-inning_wf,  fpf_wf,  cs-estimate_wf,  fpf-domain_wf,  top_wf,  cs-precondition_wf,  fpf-join_wf,  fpf-single_wf,  int-deq_wf,  intensional-universe_wf,  two-intersection_wf,  cs-inning-committable_wf,  cs-inning-committed_wf

\mforall{}[V:Type].  \mforall{}[A:Id  List].  \mforall{}[W:\{a:Id|  (a  \mmember{}  A)\}    List  List].  \mforall{}[s,s2:ConsensusState].
    \mforall{}[i:\mBbbZ{}].  \mforall{}[v,v2:V].
        (v  =  v2)  supposing 
              (in  state  s,  inning  i  has  committed  v2  and 
              in  state  s2,  inning  i  could  commit  v    and 
              two-intersection(A;W)) 
    supposing  s  ts-rel(consensus-ts4(V;A;W))  s2


Date html generated: 2011_08_16-AM-10_01_36
Last ObjectModification: 2011_06_18-AM-08_58_58

Home Index