Nuprl Lemma : SM2-class-gen-classrel

[es:EO']. [e:E]. [S,A,B:']. [init:Id  bag(S)]. [tr1:Id  A  S  S]. [X1:EClass'(A)]. [tr2:Id
                                                                                                         B
                                                                                                         S
                                                                                                         S].
[X2:EClass'(B)]. [s:S].
  uiff(s  SM2-class(init;<tr1, X1>;<tr2, X2>)(
           e);L:(n:{1..3}  if (n = 1) then A else B fi   E) List
                (classrel-multi-list(es;n.if (n = 1) then A else B fi ;n.if (n = 1) then X1 else X2 fi ;L;e;1;3)
                 (null(L))
                 (e = (snd(snd(last(L)))))
                 (x:S
                    (x  init loc(e)
                     (s
                      = list_accum(a,b.if (fst(b) = 1) then tr1 else tr2 fi  loc(snd(snd(b))) (fst(snd(b))) a;x;L))))))


Proof not projected




Definitions occuring in Statement :  SM2-class: SM2-class(init;trX1;trX2),  classrel-multi-list: classrel-multi-list(es;A;Xs;L;e;n1;n2),  Message: Message,  classrel: v  X(e),  eclass: EClass(A[eo; e]),  event-ordering+: EO+(Info),  es-loc: loc(e),  es-E: E,  Id: Id,  null: null(as),  eq_int: (i = j),  assert: b,  ifthenelse: if b then t else f fi ,  int_seg: {i..j},  uiff: uiff(P;Q),  uall: [x:A]. B[x],  pi1: fst(t),  pi2: snd(t),  exists: x:A. B[x],  not: A,  squash: T,  and: P  Q,  apply: f a,  lambda: x.A[x],  function: x:A  B[x],  pair: <a, b>,  product: x:A  B[x],  list: type List,  natural_number: $n,  universe: Type,  equal: s = t,  list_accum: list_accum(x,a.f[x; a];y;l),  last: last(L),  bag-member: x  bs,  bag: bag(T)
Definitions :  so_lambda: x y.t[x; y],  top: Top,  bfalse: ff,  btrue: tt,  guard: {T},  false: False,  implies: P  Q,  le: A  B,  ge: i  j ,  cand: A c B,  so_lambda: x.t[x],  subtype: S  T,  all: x:A. B[x],  prop: ,  member: t  T,  pi1: fst(t),  pi2: snd(t),  not: A,  and: P  Q,  eq_int: (i = j),  ifthenelse: if b then t else f fi ,  exists: x:A. B[x],  eclass: EClass(A[eo; e]),  suptype: suptype(S; T),  lelt: i  j < k,  nat_plus: ,  int_seg: {i..j},  true: True,  label: ...$L... t,  squash: T,  iff: P  Q,  rev_implies: P  Q,  uimplies: b supposing a,  bag-member: x  bs,  classrel: v  X(e),  uiff: uiff(P;Q),  unit: Unit,  so_apply: x[s1;s2],  sq_type: SQType(T),  or: P  Q,  decidable: Dec(P),  bool: ,  so_apply: x[s],  uall: [x:A]. B[x],  it: ,  SM2-class: SM2-class(init;trX1;trX2)
Lemmas :  Id_wf,  bag_wf,  event-ordering+_wf,  not_functionality_wrt_uiff,  assert_of_bnot,  eqff_to_assert,  bnot_wf,  subtype_rel_self,  subtype_rel_simple_product,  assert_of_eq_int,  eqtt_to_assert,  equal_wf,  uiff_transitivity,  bool_wf,  list_accum_wf,  es-loc_wf,  bag-member_wf,  last_wf,  pi1_wf_top,  pi2_wf,  top_wf,  null_wf3,  assert_wf,  not_wf,  eclass_wf2,  int_subtype_base,  subtype_base_sq,  decidable__equal_int,  ge_wf,  classrel-multi-list_wf,  event-ordering+_inc,  es-E_wf,  eq_int_wf,  ifthenelse_wf,  int_seg_wf,  exists_wf,  squash_wf,  SM2-class_wf2,  Message_wf,  classrel_wf,  btrue_wf,  int_seg_properties,  bfalse_wf,  lelt_wf,  SM-gen-class-classrel,  uiff_wf,  true_wf,  and_wf,  apply-ifthenelse-pi2-eq,  le_wf,  SM-gen-class_wf,  apply-ifthenelse-pi2,  Error :pi2_wf,  apply-ifthenelse-pi1,  set_subtype_base,  bool_subtype_base,  bool_cases

\mforall{}[es:EO'].  \mforall{}[e:E].  \mforall{}[S,A,B:\mBbbU{}'].  \mforall{}[init:Id  {}\mrightarrow{}  bag(S)].  \mforall{}[tr1:Id  {}\mrightarrow{}  A  {}\mrightarrow{}  S  {}\mrightarrow{}  S].  \mforall{}[X1:EClass'(A)].
\mforall{}[tr2:Id  {}\mrightarrow{}  B  {}\mrightarrow{}  S  {}\mrightarrow{}  S].  \mforall{}[X2:EClass'(B)].  \mforall{}[s:S].
    uiff(s  \mmember{}  SM2-class(init;<tr1,  X1><tr2,  X2>)(
                      e);\mdownarrow{}\mexists{}L:(n:\{1..3\msupminus{}\}  \mtimes{}  if  (n  =\msubz{}  1)  then  A  else  B  fi    \mtimes{}  E)  List
                                (classrel-multi-list(es;\mlambda{}n.if  (n  =\msubz{}  1)  then  A  else  B  fi  ;\mlambda{}n.if  (n  =\msubz{}  1)
                                                                                                                                                        then  X1
                                                                                                                                                        else  X2
                                                                                                                                                        fi  ;L;e;1;3)
                                \mwedge{}  (\mneg{}\muparrow{}null(L))
                                \mwedge{}  (e  =  (snd(snd(last(L)))))
                                \mwedge{}  (\mexists{}x:S
                                        (x  \mdownarrow{}\mmember{}  init  loc(e)
                                        \mwedge{}  (s
                                            =  list\_accum(a,b.if  (fst(b)  =\msubz{}  1)  then  tr1  else  tr2  fi    loc(snd(snd(b))) 
                                                                              (fst(snd(b))) 
                                                                              a;
                                                                      x;
                                                                      L))))))


Date html generated: 2012_01_23-PM-01_22_42
Last ObjectModification: 2012_01_06-PM-02_50_08

Home Index