Nuprl Lemma : list_accum_invariant3

[T,A:Type].
  ∀f:A ⟶ T ⟶ A
    ∀[P:A ⟶ (T List) ⟶ ℙ]
      ∀L:T List. ∀a:A.
        (P[a;[]]
         (∀a:A. ∀x:T. ∀L':T List.  (L' [x] ≤  P[a;L']  P[f[a;x];L' [x]]))
         P[accumulate (with value and list item x):
              f[a;x]
             over list:
               L
             with starting value:
              a);L])


Proof




Definitions occuring in Statement :  iseg: l1 ≤ l2 append: as bs list_accum: list_accum cons: [a b] nil: [] list: List uall: [x:A]. B[x] prop: so_apply: x[s1;s2] all: x:A. B[x] implies:  Q function: x:A ⟶ B[x] universe: Type
Definitions unfolded in proof :  uall: [x:A]. B[x] all: x:A. B[x] implies:  Q exists: x:A. B[x] member: t ∈ T prop: nat: so_lambda: λ2x.t[x] so_apply: x[s1;s2] subtype_rel: A ⊆B so_apply: x[s] so_lambda: λ2y.t[x; y] uiff: uiff(P;Q) and: P ∧ Q uimplies: supposing a top: Top not: ¬A satisfiable_int_formula: satisfiable_int_formula(fmla) false: False squash: T true: True guard: {T} iff: ⇐⇒ Q rev_implies:  Q decidable: Dec(P) or: P ∨ Q
Lemmas referenced :  length_wf_nat length_wf equal_wf equal-wf-base-T all_wf list_wf iseg_wf append_wf cons_wf nil_wf int_subtype_base list_accum_wf set_wf less_than_wf primrec-wf2 nat_wf length_zero list_accum_nil_lemma last_lemma assert_of_null length_of_nil_lemma satisfiable-full-omega-tt intformand_wf intformeq_wf itermVar_wf itermConstant_wf intformless_wf int_formula_prop_and_lemma int_formula_prop_eq_lemma int_term_value_var_lemma int_term_value_constant_lemma int_formula_prop_less_lemma int_formula_prop_wf assert_wf null_wf list_accum_append subtype_rel_list top_wf list_accum_cons_lemma last_wf squash_wf true_wf iff_weakening_equal iseg_weakening iseg_append length-append length_of_cons_lemma decidable__equal_int add-is-int-iff intformnot_wf itermSubtract_wf itermAdd_wf int_formula_prop_not_lemma int_term_value_subtract_lemma int_term_value_add_lemma false_wf
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation lambdaFormation cut dependent_pairFormation introduction extract_by_obid sqequalHypSubstitution isectElimination thin cumulativity hypothesisEquality hypothesis intEquality setElimination rename productElimination baseClosed sqequalRule lambdaEquality because_Cache functionEquality applyEquality functionExtensionality baseApply closedConclusion natural_numberEquality dependent_functionElimination independent_functionElimination universeEquality equalitySymmetry independent_isectElimination dependent_set_memberEquality isect_memberEquality voidElimination voidEquality hyp_replacement applyLambdaEquality int_eqEquality independent_pairFormation computeAll imageElimination equalityTransitivity imageMemberEquality equalityUniverse levelHypothesis unionElimination pointwiseFunctionality promote_hyp

Latex:
\mforall{}[T,A:Type].
    \mforall{}f:A  {}\mrightarrow{}  T  {}\mrightarrow{}  A
        \mforall{}[P:A  {}\mrightarrow{}  (T  List)  {}\mrightarrow{}  \mBbbP{}]
            \mforall{}L:T  List.  \mforall{}a:A.
                (P[a;[]]
                {}\mRightarrow{}  (\mforall{}a:A.  \mforall{}x:T.  \mforall{}L':T  List.    (L'  @  [x]  \mleq{}  L  {}\mRightarrow{}  P[a;L']  {}\mRightarrow{}  P[f[a;x];L'  @  [x]]))
                {}\mRightarrow{}  P[accumulate  (with  value  a  and  list  item  x):
                            f[a;x]
                          over  list:
                              L
                          with  starting  value:
                            a);L])



Date html generated: 2017_04_17-AM-07_38_43
Last ObjectModification: 2017_02_27-PM-04_13_27

Theory : list_1


Home Index