Nuprl Lemma : list_append_ind

Alternative Induction Principle for Lists
Used for multiset induction.

[T:Type]. ∀[Q:(T List) ⟶ ℙ].
  (Q[[]]  (∀x:T. Q[[x]])  (∀ys,ys':T List.  (Q[ys]  Q[ys']  Q[ys ys']))  {∀zs:T List. Q[zs]})


Proof




Definitions occuring in Statement :  append: as bs cons: [a b] nil: [] list: List uall: [x:A]. B[x] prop: guard: {T} so_apply: x[s] all: x:A. B[x] implies:  Q function: x:A ⟶ B[x] universe: Type
Definitions unfolded in proof :  guard: {T} uall: [x:A]. B[x] implies:  Q all: x:A. B[x] member: t ∈ T so_lambda: λ2x.t[x] so_apply: x[s] prop: append: as bs so_lambda: so_lambda(x,y,z.t[x; y; z]) top: Top so_apply: x[s1;s2;s3]
Lemmas referenced :  list_induction list_wf all_wf append_wf cons_wf nil_wf list_ind_cons_lemma list_ind_nil_lemma
Rules used in proof :  sqequalSubstitution sqequalRule sqequalReflexivity sqequalTransitivity computationStep isect_memberFormation lambdaFormation cut thin lemma_by_obid sqequalHypSubstitution isectElimination hypothesisEquality lambdaEquality applyEquality hypothesis independent_functionElimination rename because_Cache dependent_functionElimination functionEquality cumulativity universeEquality isect_memberEquality voidElimination voidEquality

Latex:
\mforall{}[T:Type].  \mforall{}[Q:(T  List)  {}\mrightarrow{}  \mBbbP{}].
    (Q[[]]
    {}\mRightarrow{}  (\mforall{}x:T.  Q[[x]])
    {}\mRightarrow{}  (\mforall{}ys,ys':T  List.    (Q[ys]  {}\mRightarrow{}  Q[ys']  {}\mRightarrow{}  Q[ys  @  ys']))
    {}\mRightarrow{}  \{\mforall{}zs:T  List.  Q[zs]\})



Date html generated: 2016_07_08-PM-04_49_05
Last ObjectModification: 2015_12_26-PM-02_13_23

Theory : list_1


Home Index