### Nuprl Lemma : list_ind-general-wf

`∀[A:Type]. ∀[B:(A List) ⟶ ℙ]. ∀[x:B[[]]]. ∀[F:∀a:A. ∀L:A List.  (B[L] `` B[[a / L]])]. ∀[L:A List].`
`  (rec-case(L) of`
`   [] => x`
`   h::t =>`
`    r.F[h;t;r] ∈ B[L])`

Proof

Definitions occuring in Statement :  list_ind: list_ind cons: `[a / b]` nil: `[]` list: `T List` uall: `∀[x:A]. B[x]` prop: `ℙ` so_apply: `x[s1;s2;s3]` so_apply: `x[s]` all: `∀x:A. B[x]` implies: `P `` Q` member: `t ∈ T` function: `x:A ⟶ B[x]` universe: `Type`
Definitions unfolded in proof :  uall: `∀[x:A]. B[x]` member: `t ∈ T` all: `∀x:A. B[x]` prop: `ℙ` so_lambda: `λ2x.t[x]` implies: `P `` Q` so_apply: `x[s]` nat: `ℕ` false: `False` ge: `i ≥ j ` guard: `{T}` uimplies: `b supposing a` subtype_rel: `A ⊆r B` top: `Top` so_lambda: `so_lambda(x,y,z.t[x; y; z])` so_apply: `x[s1;s2;s3]` decidable: `Dec(P)` or: `P ∨ Q` iff: `P `⇐⇒` Q` and: `P ∧ Q` not: `¬A` rev_implies: `P `` Q` uiff: `uiff(P;Q)` subtract: `n - m` le: `A ≤ B` less_than': `less_than'(a;b)` true: `True` pi1: `fst(t)` nil: `[]` cons: `[a / b]` pi2: `snd(t)` sq_type: `SQType(T)`
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut thin sqequalHypSubstitution dependent_functionElimination hypothesisEquality equalityTransitivity hypothesis equalitySymmetry sqequalRule axiomEquality extract_by_obid isectElimination cumulativity isect_memberEquality because_Cache lambdaEquality functionEquality applyEquality functionExtensionality universeEquality lambdaFormation setElimination rename intWeakElimination natural_numberEquality independent_isectElimination independent_functionElimination voidElimination intEquality voidEquality baseClosed unionElimination independent_pairFormation productElimination addEquality minusEquality dependent_set_memberEquality promote_hyp hypothesis_subsumption instantiate

Latex:
\mforall{}[A:Type].  \mforall{}[B:(A  List)  {}\mrightarrow{}  \mBbbP{}].  \mforall{}[x:B[[]]].  \mforall{}[F:\mforall{}a:A.  \mforall{}L:A  List.    (B[L]  {}\mRightarrow{}  B[[a  /  L]])].  \mforall{}[L:A  List].
(rec-case(L)  of
[]  =>  x
h::t  =>
r.F[h;t;r]  \mmember{}  B[L])

Date html generated: 2017_04_14-AM-07_54_41
Last ObjectModification: 2017_02_27-PM-03_21_30

Theory : list_0

Home Index