Nuprl Lemma : rec-bind-df-trans_wf

[M:Type]. [B,A:ValueAllType]. [Sx,Sy:A  ValueAllType]. [Xinit:a:A  (Sx a)]. [Yinit:a:A  (Sy a)].
[Xnxt:a:A  Sx a  M  (Sx a?  bag(B))]. [Ynxt:a:A  Sy a  M  (Sy a?  bag(A))].
  ((a:A. sy:Sy a. m:M. a':A.  (a'  snd((Ynxt a sy m))  ((snd((Ynxt a' (Yinit a') m))) = {})))
   (rec-bind-df-trans(Xinit;Yinit;Xnxt;Ynxt)  rec-bind-df-statetype(A;Sx;Sy)
                                                  M
                                                  (rec-bind-df-statetype(A;Sx;Sy)?  bag(B))))


Proof not projected




Definitions occuring in Statement :  rec-bind-df-trans: rec-bind-df-trans(Xinit;Yinit;Xnxt;Ynxt),  rec-bind-df-statetype: rec-bind-df-statetype(A;Sx;Sy),  uall: [x:A]. B[x],  pi2: snd(t),  all: x:A. B[x],  implies: P  Q,  unit: Unit,  member: t  T,  apply: f a,  function: x:A  B[x],  product: x:A  B[x],  union: left + right,  universe: Type,  equal: s = t,  bag-member: x  bs,  empty-bag: {},  bag: bag(T),  vatype: ValueAllType
Definitions :  rev_implies: P  Q,  iff: P  Q,  outr: outr(x),  assert: b,  bag-combine: xbs.f[x],  bag-union: bag-union(bbs),  concat: concat(ll),  exposed-bfalse: exposed-bfalse,  it: ,  exists: x:A. B[x],  evalall: evalall(t),  pi2: snd(t),  null: null(as),  empty-bag: {},  bag-mapfilter: bag-mapfilter(f;P;bs),  map: map(f;as),  bag-filter: [xb|p[x]],  bag-map: bag-map(f;bs),  filter: filter(P;l),  reduce: reduce(f;k;as),  pi1: fst(t),  rec-bind-df-init: rec-bind-df-init(ix;iy),  band: p  q,  compose: f o g,  top: Top,  bnot: b,  uiff: uiff(P;Q),  and: P  Q,  let: let,  guard: {T},  uall: [x:A]. B[x],  vatype: ValueAllType,  unit: Unit,  implies: P  Q,  all: x:A. B[x],  member: t  T,  rec-bind-df-statetype: rec-bind-df-statetype(A;Sx;Sy),  rec-bind-df-trans: rec-bind-df-trans(Xinit;Yinit;Xnxt;Ynxt),  uimplies: b supposing a,  type-monotone: Monotone(T.F[T]),  so_lambda: x.t[x],  squash: T,  true: True,  ycomb: Y,  spreadn: spread3,  ifthenelse: if b then t else f fi ,  isl: isl(x),  outl: outl(x),  btrue: tt,  bfalse: ff,  has-valueall: has-valueall(a),  subtype: S  T,  suptype: suptype(S; T),  prop: ,  bool: ,  bag: bag(T),  sq_type: SQType(T),  rev_uimplies: rev_uimplies(P;Q),  le: A  B,  nat: ,  not: A,  false: False,  decidable: Dec(P),  or: P  Q,  so_apply: x[s],  sq_stable: SqStable(P)
Lemmas :  squash_wf,  implies_functionality_wrt_iff,  iff_weakening_uiff,  outr_wf,  false_wf,  true_wf,  bag-combine_wf,  null_wf3,  bag-subtype-list,  eqtt_to_assert,  uiff_transitivity,  not_wf,  eqff_to_assert,  assert_of_bnot,  bag-mapfilter_wf,  top_wf,  outl_wf,  permutation_wf,  list-subtype-bag,  isect-valueall-type,  int-valueall-type,  list-valueall-type,  void-valueall-type,  pair-eta,  bag-map-map,  bag-subtype,  band_ff_simp,  subtype_base_sq,  bool_wf,  bool_subtype_base,  empty-bag-iff-size,  decidable__le,  bag-size_wf,  void_wf,  nat_wf,  bag-member-iff-size,  sq_stable_from_decidable,  le_wf,  bag-map_wf,  rec-bind-df-init_wf,  decidable__assert,  bag-null_wf,  assert-bag-null,  equal-empty-bag,  not_functionality_wrt_uiff,  assert_wf,  rec-valueall-type,  valueall-type_wf,  unit_wf2,  bag_wf,  subtype_rel_product,  subtype_rel_simple_product,  subtype_rel_sum,  subtype_rel_bag,  product-valueall-type,  sq_stable__valueall-type,  union-valueall-type,  equal-valueall-type,  bag-valueall-type,  ifthenelse_wf,  band_wf,  bnot_wf,  isl_wf,  it_wf,  empty-bag_wf,  evalall_wf,  rec-bind-df-statetype_wf,  pi1_wf_top,  pi2_wf,  bag-append_wf,  all_wf,  bag-member_wf,  equal_wf

\mforall{}[M:Type].  \mforall{}[B,A:ValueAllType].  \mforall{}[Sx,Sy:A  {}\mrightarrow{}  ValueAllType].  \mforall{}[Xinit:a:A  {}\mrightarrow{}  (Sx  a)].
\mforall{}[Yinit:a:A  {}\mrightarrow{}  (Sy  a)].  \mforall{}[Xnxt:a:A  {}\mrightarrow{}  Sx  a  {}\mrightarrow{}  M  {}\mrightarrow{}  (Sx  a?  \mtimes{}  bag(B))].  \mforall{}[Ynxt:a:A
                                                                                                                                                          {}\mrightarrow{}  Sy  a
                                                                                                                                                          {}\mrightarrow{}  M
                                                                                                                                                          {}\mrightarrow{}  (Sy  a?  \mtimes{}  bag(A))].
    ((\mforall{}a:A.  \mforall{}sy:Sy  a.  \mforall{}m:M.  \mforall{}a':A.
            (a'  \mdownarrow{}\mmember{}  snd((Ynxt  a  sy  m))  {}\mRightarrow{}  ((snd((Ynxt  a'  (Yinit  a')  m)))  =  \{\})))
    {}\mRightarrow{}  (rec-bind-df-trans(Xinit;Yinit;Xnxt;Ynxt)  \mmember{}  rec-bind-df-statetype(A;Sx;Sy)
                                                                                                  {}\mrightarrow{}  M
                                                                                                  {}\mrightarrow{}  (rec-bind-df-statetype(A;Sx;Sy)?  \mtimes{}  bag(B))))


Date html generated: 2012_02_20-PM-02_43_26
Last ObjectModification: 2012_02_14-PM-02_54_44

Home Index