Nuprl Lemma : rec-comb-locally-programmable

[Info:{Info:Type| Info} ]. [B:{B:Type| valueall-type(B)} ]. [n:]. [A:n  Type]. [Xs:k:n  EClass(A k)].
[F:Id  k:n  bag(A k)  bag(B)  bag(B)]. [init:Id  bag(B)]. [dfs:k:n  Id  DataflowProgram(Info)].
[i:Id]. [es:EO+(Info)]. [e:E].
  ((rec-comb(Xs;F;init) es e)
     = last(data-stream(better-feedback-dataflow(||map(k.(dfs k i);upto(n))||;
                        k.map(dfp.df-program-meaning(dfp);map(k.(dfs k i);upto(n)))[k];
                        F i;init i;b.null(b));map(e.info(e);loc(e))))) supposing 
     ((loc(e) = i) and 
     (k:n. i:Id.  local-program-at{i:l}(Info;A k;Xs k;dfs k i;i)))


Proof not projected




Definitions occuring in Statement :  local-program-at: local-program-at{i:l}(Info;A;X;dfp;x),  rec-comb: rec-comb(X;f;init),  eclass: EClass(A[eo; e]),  es-info: info(e),  event-ordering+: EO+(Info),  es-le-before: loc(e),  es-loc: loc(e),  es-E: E,  df-program-meaning: df-program-meaning(dfp),  dataflow-program: DataflowProgram(A),  better-feedback-dataflow: better-feedback-dataflow(n;ds;F;s;x.P[x]),  data-stream: data-stream(P;L),  Id: Id,  select: l[i],  map: map(f;as),  length: ||as||,  null: null(as),  bnot: b,  int_seg: {i..j},  nat: ,  uimplies: b supposing a,  uall: [x:A]. B[x],  all: x:A. B[x],  squash: T,  set: {x:A| B[x]} ,  apply: f a,  lambda: x.A[x],  function: x:A  B[x],  natural_number: $n,  universe: Type,  equal: s = t,  last: last(L),  bag: bag(T),  upto: upto(n),  valueall-type: valueall-type(T)
Definitions :  so_lambda: x y.t[x; y],  ifthenelse: if b then t else f fi ,  bfalse: ff,  false: False,  implies: P  Q,  and: P  Q,  lelt: i  j < k,  le: A  B,  so_lambda: x.t[x],  so_apply: x[s],  subtype: S  T,  top: Top,  prop: ,  true: True,  assert: b,  not: A,  member: t  T,  all: x:A. B[x],  uimplies: b supposing a,  int_seg: {i..j},  squash: T,  uall: [x:A]. B[x],  ycomb: Y,  guard: {T},  rec-comb: rec-comb(X;f;init),  nat: ,  ge: i  j ,  es-le-before: loc(e),  map: map(f;as),  lt_int: i <z j,  le_int: i z j,  btrue: tt,  length: ||as||,  select: l[i],  bnot: b,  null: null(as),  last: last(L),  reduce: reduce(f;k;as),  filter: filter(P;l),  append: as @ bs,  pi1: fst(t),  so_apply: x[s1;s2],  sq_type: SQType(T),  local-program-at: local-program-at{i:l}(Info;A;X;dfp;x),  exists: x:A. B[x],  strongwellfounded: SWellFounded(R[x; y]),  eclass: EClass(A[eo; e])
Lemmas :  bfalse_wf,  valueall-type_wf,  eclass_wf,  dataflow-program_wf,  event-ordering+_wf,  local-program-at_wf,  all_wf,  equal_wf,  false_wf,  bool_subtype_base,  subtype_base_sq,  es-le-before-not-null,  es-le_wf,  es-le-before_wf2,  null-map,  null-data-stream,  bag-subtype-list,  bnot_wf,  subtype_rel_self,  df-program-type_wf,  dataflow_subtype,  df-program-meaning_wf,  select-upto,  length_wf,  lelt_wf,  length_upto,  upto_wf,  select-map,  nat_wf,  int_seg_wf,  bool_wf,  better-feedback-dataflow_wf,  es-le-before_wf,  es-info_wf,  es-loc_wf,  Id_wf,  event-ordering+_inc,  es-E_wf,  map_wf,  dataflow_wf,  true_wf,  data-stream_wf,  bag_wf,  top_wf,  null_wf3,  assert_wf,  not_wf,  squash_wf,  last_wf,  rec-comb_wf2,  primed-class-opt_wf,  es-causl_wf,  less_than_wf,  le_wf,  es-causl-swellfnd,  nat_properties,  ge_wf,  and_wf,  es-before_wf,  es-locl_wf,  es-before_wf3,  map_append_sq,  data-stream-cons,  data-stream-append,  subtype_rel_list,  last_append,  dataflow-out_wf,  ifthenelse_wf,  dataflow-ap_wf,  pi1_wf_top

\mforall{}[Info:\{Info:Type|  \mdownarrow{}Info\}  ].  \mforall{}[B:\{B:Type|  valueall-type(B)\}  ].  \mforall{}[n:\mBbbN{}].  \mforall{}[A:\mBbbN{}n  {}\mrightarrow{}  Type].
\mforall{}[Xs:k:\mBbbN{}n  {}\mrightarrow{}  EClass(A  k)].  \mforall{}[F:Id  {}\mrightarrow{}  k:\mBbbN{}n  {}\mrightarrow{}  bag(A  k)  {}\mrightarrow{}  bag(B)  {}\mrightarrow{}  bag(B)].  \mforall{}[init:Id  {}\mrightarrow{}  bag(B)].
\mforall{}[dfs:k:\mBbbN{}n  {}\mrightarrow{}  Id  {}\mrightarrow{}  DataflowProgram(Info)].  \mforall{}[i:Id].  \mforall{}[es:EO+(Info)].  \mforall{}[e:E].
    ((rec-comb(Xs;F;init)  es  e)
          =  last(data-stream(better-feedback-dataflow(||map(\mlambda{}k.(dfs  k  i);upto(n))||;
                                                \mlambda{}k.map(\mlambda{}dfp.df-program-meaning(dfp);map(\mlambda{}k.(dfs  k  i);upto(n)))[k];
                                                F  i;init  i;b.\mneg{}\msubb{}null(b));map(\mlambda{}e.info(e);\mleq{}loc(e)))))  supposing 
          ((loc(e)  =  i)  and 
          (\mforall{}k:\mBbbN{}n.  \mforall{}i:Id.    local-program-at\{i:l\}(Info;A  k;Xs  k;dfs  k  i;i)))


Date html generated: 2012_01_23-PM-12_31_04
Last ObjectModification: 2012_01_06-AM-10_23_14

Home Index