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