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