{ [A:{A:'| A} ]. [dfps:DataflowProgram(A) List]. [B:{B:Type| 
                                                         valueall-type(B)} ].
  [F:k:||dfps||  bag(df-program-type(dfps[k]))  bag(B)  bag(B)].
  [init:bag(B)].
    better-feedback-dataflow(||dfps||;
    k.map(dfp.df-program-meaning(dfp);dfps)[k];F;init;b.null(b))
    = df-program-meaning(feedback-df-program-case2(B;F;dfps;init)) 
    supposing b:bag(B). f:k:||dfps||  bag(df-program-type(dfps[k])).
                ((k:||dfps||. ((f k) = {}))  ((F f b) = {})) }

{ Proof }



Definitions occuring in Statement :  feedback-df-program-case2: feedback-df-program-case2(B;F;dfps;init) 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] map: map(f;as) length: ||as|| null: null(as) bnot: b int_seg: {i..j} uimplies: b supposing a uall: [x:A]. B[x] all: x:A. B[x] exists: x:A. B[x] squash: T implies: P  Q set: {x:A| B[x]}  apply: f a lambda: x.A[x] function: x:A  B[x] list: type List natural_number: $n universe: Type equal: s = t empty-bag: {} bag: bag(T) valueall-type: valueall-type(T)
Lemmas :  tuple_wf select-tuple-tuple cons_member assert-bl-exists sq_stable__all decidable__l_all-better-extract decidable__assert true_wf assert_of_bnot subtype_base_sq set_subtype_base int_subtype_base decidable__equal_int l_all_wf2 sq_stable__and decidable__lt sq_stable__equal intensional-universe_wf intensional-universe_wf2 df-program-type_wf select_wf dataflow-program_wf bag_wf length_wf1 int_seg_wf valueall-type_wf squash_wf uall_wf dataflow_wf feedback-prog-meaning empty-bag_wf real-has-value int_inc_real rational-has-value upto_wf rationals_wf member_wf int_nzero_wf b-union_wf bool_wf ifthenelse_wf tunion_wf subtype_rel_wf int-rational btrue_wf bfalse_wf Id-has-valueall Id_wf list-valueall-type le_wf set-valueall-type int-valueall-type iff_wf rev_implies_wf better-feedback-dataflow_wf length_wf_nat top_wf map_wf df-program-meaning_wf bnot_wf null_wf3 map_length non_neg_length nat_wf ge_wf not_wf false_wf permutation_wf int_seg_properties select-map null_wf bag-subtype-list tuple-type_wf select-tuple_wf length-map unit_wf bl-exists_wf l_member_wf isl_wf feedback-df-halt_wf assert_wf l_all_wf strict-bag-function_wf sq_stable_from_decidable

\mforall{}[A:\{A:\mBbbU{}'|  \mdownarrow{}A\}  ].  \mforall{}[dfps:DataflowProgram(A)  List].  \mforall{}[B:\{B:Type|  valueall-type(B)\}  ].
\mforall{}[F:k:\mBbbN{}||dfps||  {}\mrightarrow{}  bag(df-program-type(dfps[k]))  {}\mrightarrow{}  bag(B)  {}\mrightarrow{}  bag(B)].  \mforall{}[init:bag(B)].
    better-feedback-dataflow(||dfps||;\mlambda{}k.map(\mlambda{}dfp.df-program-meaning(dfp);dfps)[k];F;init;b.\mneg{}\msubb{}null(b))
    =  df-program-meaning(feedback-df-program-case2(B;F;dfps;init)) 
    supposing  \mforall{}b:bag(B).  \mforall{}f:k:\mBbbN{}||dfps||  {}\mrightarrow{}  bag(df-program-type(dfps[k])).
                            ((\mexists{}k:\mBbbN{}||dfps||.  ((f  k)  =  \{\}))  {}\mRightarrow{}  ((F  f  b)  =  \{\}))


Date html generated: 2011_08_16-AM-09_41_49
Last ObjectModification: 2011_06_24-PM-08_56_35

Home Index