Nuprl Lemma : combine-list-cons

[A:Type]. ∀[f:A ⟶ A ⟶ A].
  ∀[L:A List]. ∀[a:A]. (combine-list(x,y.f[x;y];[a L]) f[a;combine-list(x,y.f[x;y];L)] ∈ A) supposing 0 < ||L|| 
  supposing Assoc(A;λx,y. f[x;y])


Proof




Definitions occuring in Statement :  combine-list: combine-list(x,y.f[x; y];L) length: ||as|| cons: [a b] list: List assoc: Assoc(T;op) less_than: a < b uimplies: supposing a uall: [x:A]. B[x] so_apply: x[s1;s2] lambda: λx.A[x] function: x:A ⟶ B[x] natural_number: $n universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T uimplies: supposing a all: x:A. B[x] or: P ∨ Q less_than: a < b squash: T less_than': less_than'(a;b) false: False and: P ∧ Q cons: [a b] top: Top combine-list: combine-list(x,y.f[x; y];L) so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] prop: so_lambda: λ2x.t[x] so_apply: x[s] implies:  Q true: True subtype_rel: A ⊆B guard: {T} iff: ⇐⇒ Q rev_implies:  Q assoc: Assoc(T;op) infix_ap: y
Lemmas referenced :  list-cases length_of_nil_lemma product_subtype_list length_of_cons_lemma reduce_hd_cons_lemma reduce_tl_cons_lemma list_accum_cons_lemma less_than_wf length_wf list_wf assoc_wf list_induction all_wf equal_wf list_accum_wf list_accum_nil_lemma squash_wf true_wf iff_weakening_equal
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut hypothesisEquality extract_by_obid sqequalHypSubstitution isectElimination thin hypothesis dependent_functionElimination unionElimination sqequalRule imageElimination productElimination voidElimination promote_hyp hypothesis_subsumption isect_memberEquality voidEquality axiomEquality because_Cache natural_numberEquality cumulativity equalityTransitivity equalitySymmetry lambdaEquality applyEquality functionExtensionality functionEquality universeEquality independent_functionElimination lambdaFormation rename imageMemberEquality baseClosed independent_isectElimination hyp_replacement applyLambdaEquality

Latex:
\mforall{}[A:Type].  \mforall{}[f:A  {}\mrightarrow{}  A  {}\mrightarrow{}  A].
    \mforall{}[L:A  List]
        \mforall{}[a:A].  (combine-list(x,y.f[x;y];[a  /  L])  =  f[a;combine-list(x,y.f[x;y];L)]) 
        supposing  0  <  ||L|| 
    supposing  Assoc(A;\mlambda{}x,y.  f[x;y])



Date html generated: 2017_04_14-AM-08_41_36
Last ObjectModification: 2017_02_27-PM-03_31_29

Theory : list_0


Home Index