{ 
[A:{A:
'| 
A} ]. 
[dfps:DataflowProgram(A) List]. 
[B:{B:Type| 
                                                         valueall-type(B)} ].
  
[G:tuple-type(map(
dfp.bag(df-program-type(dfp));dfps)) 
 bag(B) 
 bag(B)].
  
[halt:tuple-type(map(
dfp.(Top?);map(
dfp.df-program-type(dfp);dfps))) 
 
].
    better-feedback-dataflow(||dfps||;
    
k.map(
dfp.df-program-meaning(dfp);dfps)[k];
    
g.(G tuple(||dfps||;i.g i));{};b.
null(b))
    = df-program-meaning(feedback-df-prog(B;G;halt;dfps)) 
    supposing feedback-df-halt(G;map(
dfp.df-program-type(dfp);dfps);B;halt) }
{ Proof }
Definitions occuring in Statement : 
feedback-df-halt: feedback-df-halt(G;L;B;halt), 
feedback-df-prog: feedback-df-prog(B;G;halt;dfps), 
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, 
bool:
, 
uimplies: b supposing a, 
uall:
[x:A]. B[x], 
top: Top, 
squash:
T, 
unit: Unit, 
set: {x:A| B[x]} , 
apply: f a, 
lambda:
x.A[x], 
function: x:A 
 B[x], 
union: left + right, 
list: type List, 
universe: Type, 
equal: s = t, 
empty-bag: {}, 
bag: bag(T), 
tuple: tuple(n;i.F[i]), 
tuple-type: tuple-type(L), 
valueall-type: valueall-type(T)
Lemmas : 
dataflow-program_wf, 
feedback-df-halt_wf, 
map_wf, 
bag_wf, 
dataflow_wf, 
tuple-type_wf, 
unit_wf, 
top_wf, 
bool_wf, 
valueall-type_wf, 
squash_wf, 
df-program-type_wf, 
member_wf, 
feedback-prog-meaning, 
empty-bag_wf, 
map-map
\mforall{}[A:\{A:\mBbbU{}'|  \mdownarrow{}A\}  ].  \mforall{}[dfps:DataflowProgram(A)  List].  \mforall{}[B:\{B:Type|  valueall-type(B)\}  ].
\mforall{}[G:tuple-type(map(\mlambda{}dfp.bag(df-program-type(dfp));dfps))  {}\mrightarrow{}  bag(B)  {}\mrightarrow{}  bag(B)].
\mforall{}[halt:tuple-type(map(\mlambda{}dfp.(Top?);map(\mlambda{}dfp.df-program-type(dfp);dfps)))  {}\mrightarrow{}  \mBbbB{}].
    better-feedback-dataflow(||dfps||;\mlambda{}k.map(\mlambda{}dfp.df-program-meaning(dfp);dfps)[k];
    \mlambda{}g.(G  tuple(||dfps||;i.g  i));\{\};b.\mneg{}\msubb{}null(b))
    =  df-program-meaning(feedback-df-prog(B;G;halt;dfps)) 
    supposing  feedback-df-halt(G;map(\mlambda{}dfp.df-program-type(dfp);dfps);B;halt)
Date html generated:
2011_08_16-AM-09_41_21
Last ObjectModification:
2011_06_24-PM-05_40_58
Home
Index