Nuprl Lemma : feedback-df-prog2-meaning

[A:']. [dfp1,dfp2:DataflowProgram(A)]. [B:{B:Type| valueall-type(B)} ]. [G:bag(df-program-type(dfp1))
                                                                                bag(df-program-type(dfp2))
                                                                                bag(B)
                                                                                bag(B)]. [P:bag(B)  ].
[buf:bag(B)].
  better-feedback-dataflow(2;k.[df-program-meaning(dfp1); df-program-meaning(dfp2)][k];g,x.G[g 0;g 1;x];buf;s.P[s])
  = df-program-meaning(feedback-df-prog2(B;G;P;buf;dfp1;dfp2)) 
  supposing buf:bag(B). ((G {} {} buf) = {})


Proof not projected




Definitions occuring in Statement :  feedback-df-prog2: feedback-df-prog2(B;G;P;buf;dfp1;dfp2),  df-program-meaning: df-program-meaning(dfp),  df-program-type: df-program-type(dfp),  dataflow-program: DataflowProgram(A),  better-feedback-dataflow: better-feedback-dataflow(n;ds;F;s;x.P[x]),  dataflow: dataflow(A;B),  select: l[i],  bool: ,  uimplies: b supposing a,  uall: [x:A]. B[x],  so_apply: x[s1;s2;s3],  so_apply: x[s],  all: x:A. B[x],  set: {x:A| B[x]} ,  apply: f a,  lambda: x.A[x],  function: x:A  B[x],  cons: [car / cdr],  nil: [],  natural_number: $n,  universe: Type,  equal: s = t,  empty-bag: {},  bag: bag(T),  valueall-type: valueall-type(T)
Definitions :  uall: [x:A]. B[x],  df-program-type: df-program-type(dfp),  uimplies: b supposing a,  df-program-meaning: df-program-meaning(dfp),  so_apply: x[s1;s2;s3],  so_apply: x[s],  feedback-df-prog2: feedback-df-prog2(B;G;P;buf;dfp1;dfp2),  member: t  T,  pi1: fst(t),  spreadn: spread4,  squash: T,  true: True,  so_lambda: x.t[x],  unit: Unit,  all: x:A. B[x],  spreadn: spread3,  so_lambda: x y.t[x; y],  prop: ,  implies: P  Q,  and: P  Q,  top: Top,  subtype: S  T,  bag: bag(T),  assert: b,  isl: isl(x),  pi2: snd(t),  let: let,  ifthenelse: if b then t else f fi ,  band: p  q,  bnot: b,  outl: outl(x),  btrue: tt,  bfalse: ff,  outr: outr(x),  dataflow-program: DataflowProgram(A),  so_apply: x[s1;s2],  sq_stable: SqStable(P),  not: A,  false: False,  guard: {T}
Lemmas :  feedback-2-equiv,  bag_wf,  unit_wf2,  empty-bag_wf,  equal_wf,  squash_wf,  true_wf,  dataflow_wf,  all_wf,  bool_wf,  valueall-type_wf,  df-program-type_wf,  dataflow-program_wf,  rec-dataflow_wf,  evalall-equal,  let_wf,  ifthenelse_wf,  band_wf,  bnot_wf,  isl_wf,  it_wf,  product-valueall-type,  union-valueall-type,  sq_stable__valueall-type,  equal-valueall-type,  bag-valueall-type,  rec-dataflow-equal,  and_wf,  not_wf,  assert_wf,  pi1_wf_top,  pi2_wf,  outl_wf,  permutation_wf,  bag_qinc,  outr_wf,  false_wf

\mforall{}[A:\mBbbU{}'].  \mforall{}[dfp1,dfp2:DataflowProgram(A)].  \mforall{}[B:\{B:Type|  valueall-type(B)\}  ].
\mforall{}[G:bag(df-program-type(dfp1))  {}\mrightarrow{}  bag(df-program-type(dfp2))  {}\mrightarrow{}  bag(B)  {}\mrightarrow{}  bag(B)].  \mforall{}[P:bag(B)  {}\mrightarrow{}  \mBbbB{}].
\mforall{}[buf:bag(B)].
    better-feedback-dataflow(2;\mlambda{}k.[df-program-meaning(dfp1);  df-program-meaning(dfp2)][k];
    \mlambda{}g,x.G[g  0;g  1;x];buf;s.P[s])
    =  df-program-meaning(feedback-df-prog2(B;G;P;buf;dfp1;dfp2)) 
    supposing  \mforall{}buf:bag(B).  ((G  \{\}  \{\}  buf)  =  \{\})


Date html generated: 2012_01_23-PM-12_00_22
Last ObjectModification: 2011_12_28-PM-02_48_16

Home Index