{ [A,B:Type]. [P:B  ]. [num:A  ]. [init:B]. [f:B  A  B].
    (collect_accum(x.num[x];init;a,v.f[a;v];a.P[a])  {s:  B  (B + Top)| 
                                                       (isl(snd(snd(s))))
                                                        (1  (fst(s)))} 
                                                       A
                                                       {s:  B  (B + Top)| 
                                                          (isl(snd(snd(s))))
                                                           (1  (fst(s)))} ) }

{ Proof }



Definitions occuring in Statement :  collect_accum: collect_accum(x.num[x];init;a,v.f[a; v];a.P[a]) isl: isl(x) assert: b bool: nat: uall: [x:A]. B[x] top: Top so_apply: x[s1;s2] so_apply: x[s] pi1: fst(t) pi2: snd(t) le: A  B implies: P  Q member: t  T set: {x:A| B[x]}  function: x:A  B[x] product: x:A  B[x] union: left + right natural_number: $n int: universe: Type
Definitions :  uall: [x:A]. B[x] member: t  T top: Top implies: P  Q assert: b isl: isl(x) pi2: snd(t) pi1: fst(t) collect_accum: collect_accum(x.num[x];init;a,v.f[a; v];a.P[a]) so_apply: x[s] so_apply: x[s1;s2] spreadn: spread3 ifthenelse: if b then t else f fi  all: x:A. B[x] prop: so_lambda: x.t[x] subtype: S  T btrue: tt bfalse: ff bool: nat: unit: Unit iff: P  Q and: P  Q uimplies: b supposing a false: False it: has-value: has-value(a)
Lemmas :  assert_wf isl_wf top_wf pi2_wf le_wf pi1_wf_top bool_wf iff_weakening_uiff eqtt_to_assert rational-has-value int-rational nat_wf ifthenelse_wf lt_int_wf uiff_transitivity assert_of_lt_int bfalse_wf le_int_wf bnot_wf eqff_to_assert assert_functionality_wrt_uiff bnot_of_lt_int assert_of_le_int btrue_wf not_wf assert_of_bnot false_wf

\mforall{}[A,B:Type].  \mforall{}[P:B  {}\mrightarrow{}  \mBbbB{}].  \mforall{}[num:A  {}\mrightarrow{}  \mBbbN{}].  \mforall{}[init:B].  \mforall{}[f:B  {}\mrightarrow{}  A  {}\mrightarrow{}  B].
    (collect\_accum(x.num[x];init;a,v.f[a;v];a.P[a])  \mmember{}  \{s:\mBbbZ{}  \mtimes{}  B  \mtimes{}  (B  +  Top)| 
                                                                                                          (\muparrow{}isl(snd(snd(s))))  {}\mRightarrow{}  (1  \mleq{}  (fst(s)))\} 
                                                                                                        {}\mrightarrow{}  A
                                                                                                        {}\mrightarrow{}  \{s:\mBbbZ{}  \mtimes{}  B  \mtimes{}  (B  +  Top)| 
                                                                                                                (\muparrow{}isl(snd(snd(s))))  {}\mRightarrow{}  (1  \mleq{}  (fst(s)))\}  )


Date html generated: 2011_08_16-AM-11_04_52
Last ObjectModification: 2011_06_18-AM-09_37_32

Home Index