{ [A,B:'].
    C:{C:'| valueall-type(C)} . F:Id  bag(A)  bag(B)  bag(C).
      [X:EClass(A)]. [Y:EClass(B)].
        (((l:Id
              ((as:bag(A). (F[l;as;{}] = {}))
               (bs:bag(B). (F[l;{};bs] = {}))))
          (l:Id. (F[l;{};{}] = {})))
         NormalLProgrammable'(A;X)
         NormalLProgrammable'(B;Y)
         NormalLProgrammable'(C;simple-loc-comb2(l,a,b.F[l;a;b];X;Y))) }

{ Proof }



Definitions occuring in Statement :  Message: Message normal-locally-programmable: NormalLProgrammable(A;X) simple-loc-comb2: simple-loc-comb2(l,a,b.F[l; a; b];X;Y) eclass: EClass(A[eo; e]) Id: Id uall: [x:A]. B[x] so_apply: x[s1;s2;s3] all: x:A. B[x] squash: T implies: P  Q or: P  Q and: P  Q set: {x:A| B[x]}  function: x:A  B[x] universe: Type equal: s = t empty-bag: {} bag: bag(T) valueall-type: valueall-type(T)
Lemmas :  simple-loc-comb-locally-programmable1 pos_length2 sq_stable__equal sq_stable__and int_subtype_base subtype_base_sq decidable__equal_int top_wf simple-loc-comb-locally-programmable2 subtype_rel_wf Message-inhabited nat_wf not_wf false_wf le_wf int_seg_wf select_wf length_wf_nat length_nil length_cons non_neg_length int_seg_properties length_wf1 event-ordering+_inc event-ordering+_wf es-E_wf sq_stable_from_decidable sq_stable__uall sq_stable__all uall_wf member_wf eclass_wf2 eclass_wf3 empty-bag_wf valueall-type_wf eclass_wf bag_wf squash_wf local-program-at_wf dataflow-program_wf Id_wf normal-locally-programmable_wf simple-loc-comb2_wf Message_wf

\mforall{}[A,B:\mBbbU{}'].
    \mforall{}C:\{C:\mBbbU{}'|  valueall-type(C)\}  .  \mforall{}F:Id  {}\mrightarrow{}  bag(A)  {}\mrightarrow{}  bag(B)  {}\mrightarrow{}  bag(C).
        \mforall{}[X:EClass(A)].  \mforall{}[Y:EClass(B)].
            (((\mdownarrow{}\mforall{}l:Id.  ((\mforall{}as:bag(A).  (F[l;as;\{\}]  =  \{\}))  \mwedge{}  (\mforall{}bs:bag(B).  (F[l;\{\};bs]  =  \{\}))))
              \mvee{}  (\mdownarrow{}\mforall{}l:Id.  (F[l;\{\};\{\}]  =  \{\})))
            {}\mRightarrow{}  NormalLProgrammable'(A;X)
            {}\mRightarrow{}  NormalLProgrammable'(B;Y)
            {}\mRightarrow{}  NormalLProgrammable'(C;simple-loc-comb2(l,a,b.F[l;a;b];X;Y)))


Date html generated: 2011_08_17-PM-04_09_31
Last ObjectModification: 2011_06_29-PM-10_56_57

Home Index