Nuprl Lemma : list_accum_split

[T:Type]. ∀[i:ℕ]. ∀[l:T List]. ∀[f:Top ⟶ T ⟶ Top]. ∀[y:Top].
  accumulate (with value and list item a):
   f[x;a]
  over list:
    l
  with starting value:
   y) accumulate (with value and list item a):
         f[x;a]
        over list:
          nth_tl(i;l)
        with starting value:
         accumulate (with value and list item a):
          f[x;a]
         over list:
           firstn(i;l)
         with starting value:
          y)) 
  supposing i < ||l||


Proof




Definitions occuring in Statement :  firstn: firstn(n;as) length: ||as|| nth_tl: nth_tl(n;as) list_accum: list_accum list: List nat: less_than: a < b uimplies: supposing a uall: [x:A]. B[x] top: Top so_apply: x[s1;s2] function: x:A ⟶ B[x] universe: Type sqequal: t
Definitions unfolded in proof :  or: P ∨ Q decidable: Dec(P) btrue: tt bfalse: ff ifthenelse: if then else fi  bnot: ¬bb lt_int: i <j le_int: i ≤j nth_tl: nth_tl(n;as) prop: and: P ∧ Q top: Top all: x:A. B[x] exists: x:A. B[x] satisfiable_int_formula: satisfiable_int_formula(fmla) not: ¬A uimplies: supposing a ge: i ≥  false: False implies:  Q nat: member: t ∈ T uall: [x:A]. B[x] less_than': less_than'(a;b) squash: T less_than: a < b sq_type: SQType(T) so_apply: x[s] so_lambda: λ2x.t[x] it: nil: [] guard: {T} so_apply: x[s1;s2] so_lambda: λ2y.t[x; y] colength: colength(L) cons: [a b] so_apply: x[s1;s2;s3] so_lambda: so_lambda(x,y,z.t[x; y; z]) subtype_rel: A ⊆B subtract: m firstn: firstn(n;as) list_accum: list_accum append: as bs list_ind: list_ind
Lemmas referenced :  nat_wf int_term_value_subtract_lemma int_formula_prop_not_lemma itermSubtract_wf intformnot_wf subtract_wf decidable__le list_wf top_wf length_wf less_than_wf ge_wf int_formula_prop_wf int_formula_prop_less_lemma int_term_value_var_lemma int_term_value_constant_lemma int_formula_prop_le_lemma int_formula_prop_and_lemma intformless_wf itermVar_wf itermConstant_wf intformle_wf intformand_wf full-omega-unsat nat_properties list_ind_cons_lemma decidable__equal_int set_subtype_base subtype_base_sq equal_wf le_wf int_term_value_add_lemma int_formula_prop_eq_lemma itermAdd_wf intformeq_wf spread_cons_lemma product_subtype_list list_ind_nil_lemma list-cases int_subtype_base colength_wf_list equal-wf-T-base decidable__lt nth_tl_decomp list_accum_nil_lemma firstn_wf select_wf firstn_decomp
Rules used in proof :  universeEquality because_Cache universeIsType unionElimination functionEquality equalitySymmetry equalityTransitivity axiomSqEquality independent_pairFormation sqequalRule voidEquality voidElimination isect_memberEquality dependent_functionElimination intEquality int_eqEquality lambdaEquality dependent_pairFormation independent_functionElimination approximateComputation independent_isectElimination natural_numberEquality lambdaFormation intWeakElimination rename setElimination hypothesis hypothesisEquality thin isectElimination sqequalHypSubstitution extract_by_obid cut introduction isect_memberFormation_alt sqequalReflexivity computationStep sqequalTransitivity sqequalSubstitution imageElimination cumulativity instantiate baseClosed addEquality dependent_set_memberEquality applyLambdaEquality productElimination hypothesis_subsumption promote_hyp applyEquality functionIsType inhabitedIsType callbyvalueReduce sqleReflexivity

Latex:
\mforall{}[T:Type].  \mforall{}[i:\mBbbN{}].  \mforall{}[l:T  List].  \mforall{}[f:Top  {}\mrightarrow{}  T  {}\mrightarrow{}  Top].  \mforall{}[y:Top].
    accumulate  (with  value  x  and  list  item  a):
      f[x;a]
    over  list:
        l
    with  starting  value:
      y)  \msim{}  accumulate  (with  value  x  and  list  item  a):
                  f[x;a]
                over  list:
                    nth\_tl(i;l)
                with  starting  value:
                  accumulate  (with  value  x  and  list  item  a):
                    f[x;a]
                  over  list:
                      firstn(i;l)
                  with  starting  value:
                    y)) 
    supposing  i  <  ||l||



Date html generated: 2019_10_15-AM-10_53_54
Last ObjectModification: 2018_09_27-AM-10_10_58

Theory : list!


Home Index