### Nuprl Lemma : eager-accum_wf

`∀[T,T':Type]. ∀[l:T List]. ∀[y:T']. ∀[f:T' ⟶ T ⟶ T'].  eager-accum(x,a.f[x;a];y;l) ∈ T' supposing valueall-type(T')`

Proof

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

Latex:
\mforall{}[T,T':Type].  \mforall{}[l:T  List].  \mforall{}[y:T'].  \mforall{}[f:T'  {}\mrightarrow{}  T  {}\mrightarrow{}  T'].
eager-accum(x,a.f[x;a];y;l)  \mmember{}  T'  supposing  valueall-type(T')

Date html generated: 2018_05_21-PM-00_19_38
Last ObjectModification: 2018_05_15-PM-04_42_42

Theory : list_0

Home Index