Nuprl Lemma : taba-property

[A,B:Type]. ∀[init:B]. ∀[F:A ⟶ A ⟶ B ⟶ B]. ∀[xs:A List].
  (taba(init;x,x',a.F[x;x';a];xs)
  accumulate (with value and list item p):
     let x,x' 
     in F[x;x';a]
    over list:
      zip(rev(xs);xs)
    with starting value:
     init)
  ∈ B)


Proof




Definitions occuring in Statement :  taba: taba(init;x,x',a.F[x; x'; a];l) zip: zip(as;bs) reverse: rev(as) list_accum: list_accum list: List uall: [x:A]. B[x] so_apply: x[s1;s2;s3] function: x:A ⟶ B[x] spread: spread def universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T taba: taba(init;x,x',a.F[x; x'; a];l) all: x:A. B[x] decidable: Dec(P) or: P ∨ Q uimplies: supposing a not: ¬A implies:  Q satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] false: False top: Top prop: true: True so_lambda: λ2y.t[x; y] so_apply: x[s1;s2;s3] so_apply: x[s1;s2] pi1: fst(t) subtype_rel: A ⊆B squash: T so_lambda: λ2x.t[x] so_apply: x[s] guard: {T} iff: ⇐⇒ Q and: P ∧ Q rev_implies:  Q nat: ge: i ≥  so_lambda: so_lambda(x,y,z.t[x; y; z]) nth_tl: nth_tl(n;as) le_int: i ≤j lt_int: i <j bnot: ¬bb ifthenelse: if then else fi  bfalse: ff btrue: tt cons: [a b] le: A ≤ B less_than': less_than'(a;b) colength: colength(L) nil: [] it: sq_type: SQType(T) less_than: a < b uiff: uiff(P;Q) bool: 𝔹 unit: Unit firstn: firstn(n;as) assert: b int_iseg: {i...j} cand: c∧ B listp: List+ pi2: snd(t)
Lemmas referenced :  list_wf istype-universe decidable__le length_wf full-omega-unsat intformnot_wf intformle_wf itermVar_wf istype-int int_formula_prop_not_lemma istype-void int_formula_prop_le_lemma int_term_value_var_lemma int_formula_prop_wf list_accum_wf zip_wf reverse_wf firstn_all subtype_rel_list top_wf equal_wf squash_wf true_wf pi1_wf_top istype-top subtype_rel_product subtype_rel_self iff_weakening_equal nat_properties intformand_wf itermConstant_wf intformless_wf int_formula_prop_and_lemma int_term_value_constant_lemma int_formula_prop_less_lemma ge_wf istype-less_than list-cases length_of_nil_lemma list_ind_nil_lemma reverse_nil_lemma zip_nil_lemma list_accum_nil_lemma product_subtype_list colength-cons-not-zero colength_wf_list istype-le subtract-1-ge-0 subtype_base_sq intformeq_wf int_formula_prop_eq_lemma set_subtype_base int_subtype_base spread_cons_lemma decidable__equal_int subtract_wf itermSubtract_wf itermAdd_wf int_term_value_subtract_lemma int_term_value_add_lemma le_wf length_of_cons_lemma list_ind_cons_lemma reverse-cons istype-nat add-is-int-iff false_wf le_int_wf uiff_transitivity equal-wf-T-base bool_wf assert_wf eqtt_to_assert assert_of_le_int non_neg_length lt_int_wf less_than_wf bnot_wf eqff_to_assert assert_functionality_wrt_uiff bnot_of_le_int assert_of_lt_int nth_tl_nil reduce_tl_nil_lemma reduce_tl_cons_lemma add-subtract-cancel list_decomp nth_tl_wf cons_wf general_length_nth_tl length_wf_nat decidable__lt bool_cases_sqequal bool_subtype_base assert-bnot iff_weakening_uiff tl_nth_tl firstn_decomp select0 select-nthtl istype-false firstn_wf nil_wf hd_wf listp_properties length_cons length_nth_tl zip-append length-reverse length_firstn le_weakening2 zip_cons_cons_lemma list_accum_append list_accum_cons_lemma pi2_wf
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt introduction cut hypothesis universeIsType extract_by_obid sqequalHypSubstitution isectElimination thin hypothesisEquality sqequalRule isect_memberEquality_alt axiomEquality isectIsTypeImplies inhabitedIsType functionIsType because_Cache instantiate universeEquality dependent_functionElimination unionElimination natural_numberEquality independent_isectElimination approximateComputation independent_functionElimination dependent_pairFormation_alt lambdaEquality_alt int_eqEquality voidElimination productEquality spreadEquality applyEquality productIsType imageElimination equalityTransitivity equalitySymmetry lambdaFormation_alt imageMemberEquality baseClosed productElimination setElimination rename intWeakElimination independent_pairFormation functionIsTypeImplies promote_hyp hypothesis_subsumption equalityIstype dependent_set_memberEquality_alt applyLambdaEquality baseApply closedConclusion intEquality sqequalBase cumulativity independent_pairEquality lambdaFormation pointwiseFunctionality addEquality equalityElimination hyp_replacement equalityIsType1 voidEquality

Latex:
\mforall{}[A,B:Type].  \mforall{}[init:B].  \mforall{}[F:A  {}\mrightarrow{}  A  {}\mrightarrow{}  B  {}\mrightarrow{}  B].  \mforall{}[xs:A  List].
    (taba(init;x,x',a.F[x;x';a];xs)
    =  accumulate  (with  value  a  and  list  item  p):
          let  x,x'  =  p 
          in  F[x;x';a]
        over  list:
            zip(rev(xs);xs)
        with  starting  value:
          init))



Date html generated: 2019_10_15-AM-11_35_24
Last ObjectModification: 2019_06_26-PM-03_42_33

Theory : general


Home Index