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: T List
, 
uall: ∀[x:A]. B[x]
, 
prop: ℙ
, 
guard: {T}
, 
so_apply: x[s]
, 
all: ∀x:A. B[x]
, 
implies: P 
⇒ Q
, 
function: x:A ⟶ B[x]
, 
universe: Type
Definitions unfolded in proof : 
guard: {T}
, 
uall: ∀[x:A]. B[x]
, 
implies: P 
⇒ 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