Nuprl Lemma : iterate-better-feedback-dataflow

[A,C:Type]. [n:]. [B:n  Type]. [P:C  ]. [F:k:n  B[k]  C  C]. [L:A List].
[ds:k:n  dataflow(A;B[k])]. [s:C].
  (better-feedback-dataflow(n;ds;F;s;x.P[x])*(L)
  = better-feedback-dataflow(n;k.ds k*(L);
    F;let L' = filter(x.P[x];data-stream(better-feedback-dataflow(n;ds;F;s;x.P[x]);L)) in
          if null(L') then s else last(L') fi ;x.P[x]))


Proof not projected




Definitions occuring in Statement :  better-feedback-dataflow: better-feedback-dataflow(n;ds;F;s;x.P[x]) data-stream: data-stream(P;L) iterate-dataflow: P*(inputs) dataflow: dataflow(A;B) null: null(as) ifthenelse: if b then t else f fi  bool: int_seg: {i..j} nat: let: let uall: [x:A]. B[x] so_apply: x[s] apply: f a lambda: x.A[x] function: x:A  B[x] list: type List natural_number: $n universe: Type equal: s = t filter: filter(P;l) last: last(L)
Definitions :  reduce: reduce(f;k;as) member: t  T filter: filter(P;l) so_apply: x[s] uall: [x:A]. B[x] true: True squash: T so_lambda: x.t[x] btrue: tt null: null(as) ifthenelse: if b then t else f fi  let: let all: x:A. B[x] so_lambda: x y.t[x; y] subtype: S  T top: Top pi2: snd(t) pi1: fst(t) better-feedback-dataflow: better-feedback-dataflow(n;ds;F;s;x.P[x]) guard: {T} bfalse: ff and: P  Q implies: P  Q iff: P  Q rev_implies: P  Q not: A prop: assert: b nat: so_apply: x[s1;s2] rev_uimplies: rev_uimplies(P;Q) uiff: uiff(P;Q) uimplies: b supposing a unit: Unit bool: false: False it:
Lemmas :  nat_wf bool_wf dataflow_wf int_seg_wf true_wf squash_wf better-feedback-dataflow_wf eval-parallel-dataflow_wf rec-dataflow_wf ifthenelse_wf equal_wf dataflow-ap_wf eval-parallel-dataflow-property top_wf data-stream-cons last_wf not_functionality_wrt_uiff assert_of_bnot eqff_to_assert not_wf bnot_wf assert_of_null assert_wf uiff_transitivity null_wf3 data-stream_wf filter_wf iterate-dataflow_wf eqtt_to_assert dataflow-out_wf pi1_wf_top false_wf nat_properties last-cons iff_weakening_uiff pi2_wf

\mforall{}[A,C:Type].  \mforall{}[n:\mBbbN{}].  \mforall{}[B:\mBbbN{}n  {}\mrightarrow{}  Type].  \mforall{}[P:C  {}\mrightarrow{}  \mBbbB{}].  \mforall{}[F:k:\mBbbN{}n  {}\mrightarrow{}  B[k]  {}\mrightarrow{}  C  {}\mrightarrow{}  C].  \mforall{}[L:A  List].
\mforall{}[ds:k:\mBbbN{}n  {}\mrightarrow{}  dataflow(A;B[k])].  \mforall{}[s:C].
    (better-feedback-dataflow(n;ds;F;s;x.P[x])*(L)
    =  better-feedback-dataflow(n;\mlambda{}k.ds  k*(L);
        F;let  L'  =  filter(\mlambda{}x.P[x];data-stream(better-feedback-dataflow(n;ds;F;s;x.P[x]);L))  in
                    if  null(L')  then  s  else  last(L')  fi  ;x.P[x]))


Date html generated: 2012_01_23-AM-11_57_09
Last ObjectModification: 2011_12_14-PM-04_14_42

Home Index