Nuprl Lemma : rec-bind-df-program_wf
[Info,A,B:Type].
  
[dfpX,dfpY:A 
 DataflowProgram(Info)].
    ((
a:A. (df-program-type(dfpX a) 
r B))
    
 (
a:A. (df-program-type(dfpY a) 
r A))
    
 rec-bind-df-program(A;B;dfpX;dfpY) 
 A 
 DataflowProgram(Info) 
       supposing 
a,a':A. 
s:df-program-statetype(dfpY a). 
m:Info.
                   (a' 
 snd((df-program-transition(dfpY a) s m))
                   
 (
bag-null(snd((df-program-transition(dfpY a') (fst(snd(snd((dfpY a'))))) m)))))) 
  supposing valueall-type(A) 
 valueall-type(B) 
 (
Info)
Proof not projected
Definitions occuring in Statement : 
rec-bind-df-program: rec-bind-df-program(A;B;dfpX;dfpY), 
df-program-transition: df-program-transition(dfp), 
df-program-statetype: df-program-statetype(dfp), 
df-program-type: df-program-type(dfp), 
dataflow-program: DataflowProgram(A), 
subtype_rel: A 
r B, 
assert:
b, 
uimplies: b supposing a, 
uall:
[x:A]. B[x], 
pi1: fst(t), 
pi2: snd(t), 
all:
x:A. B[x], 
squash:
T, 
implies: P 
 Q, 
and: P 
 Q, 
member: t 
 T, 
apply: f a, 
function: x:A 
 B[x], 
universe: Type, 
bag-member: x 
 bs, 
bag-null: bag-null(bs), 
valueall-type: valueall-type(T)
Definitions : 
df-program-transition: df-program-transition(dfp), 
df-program-type: df-program-type(dfp), 
vatype: ValueAllType, 
subtype: S 
 T, 
suptype: suptype(S; T), 
rec-bind-df-init: rec-bind-df-init(ix;iy), 
squash:
T, 
rec-bind-df-statetype: rec-bind-df-statetype(A;Sx;Sy), 
uall:
[x:A]. B[x], 
unit: Unit, 
uimplies: b supposing a, 
type-monotone: Monotone(T.F[T]), 
true: True, 
dataflow-program: DataflowProgram(A), 
all:
x:A. B[x], 
df-program-statetype: df-program-statetype(dfp), 
implies: P 
 Q, 
pi2: snd(t), 
pi1: fst(t), 
member: t 
 T, 
rec-bind-df-program: rec-bind-df-program(A;B;dfpX;dfpY), 
let: let, 
prop:
, 
so_lambda: 
x.t[x], 
top: Top, 
sq_stable: SqStable(P), 
and: P 
 Q, 
so_apply: x[s], 
guard: {T}
Lemmas : 
top_wf, 
subtype_top, 
assert-bag-null-sq, 
rec-bind-df-trans_wf, 
df-program-statetype-valueall-type, 
empty-bag_wf, 
rec-bind-df-statetype_wf, 
rec-valueall-type, 
subtype_rel_product, 
subtype_rel_simple_product, 
subtype_rel_sum, 
product-valueall-type, 
union-valueall-type, 
sq_stable__valueall-type, 
equal-valueall-type, 
bag-valueall-type, 
valueall-type_wf, 
unit_wf2, 
bag_wf, 
all_wf, 
df-program-statetype_wf, 
bag-member_wf, 
df-program-transition_wf, 
pi2_wf, 
df-program-type_wf, 
subtype_rel_bag, 
assert_wf, 
bag-null_wf, 
pi1_wf_top, 
dataflow-program_wf, 
subtype_rel_wf, 
and_wf, 
squash_wf
\mforall{}[Info,A,B:Type].
    \mforall{}[dfpX,dfpY:A  {}\mrightarrow{}  DataflowProgram(Info)].
        ((\mforall{}a:A.  (df-program-type(dfpX  a)  \msubseteq{}r  B))
        {}\mRightarrow{}  (\mforall{}a:A.  (df-program-type(dfpY  a)  \msubseteq{}r  A))
        {}\mRightarrow{}  rec-bind-df-program(A;B;dfpX;dfpY)  \mmember{}  A  {}\mrightarrow{}  DataflowProgram(Info) 
              supposing  \mforall{}a,a':A.  \mforall{}s:df-program-statetype(dfpY  a).  \mforall{}m:Info.
                                      (a'  \mdownarrow{}\mmember{}  snd((df-program-transition(dfpY  a)  s  m))
                                      {}\mRightarrow{}  (\muparrow{}bag-null(snd((df-program-transition(dfpY  a')  (fst(snd(snd((dfpY  a'))))) 
                                                                            m)))))) 
    supposing  valueall-type(A)  \mwedge{}  valueall-type(B)  \mwedge{}  (\mdownarrow{}Info)
Date html generated:
2012_02_20-PM-02_43_35
Last ObjectModification:
2012_02_14-PM-12_31_58
Home
Index