### Nuprl Lemma : eager-accum-list_accum

`∀[T,T':Type]. ∀[l:T List]. ∀[y:T']. ∀[f:T' ⟶ T ⟶ T'].`
`  eager-accum(x,a.f[x;a];y;l) ~ accumulate (with value x and list item a):`
`                                 f[x;a]`
`                                over list:`
`                                  l`
`                                with starting value:`
`                                 y) `
`  supposing valueall-type(T')`

Proof

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

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)  \msim{}  accumulate  (with  value  x  and  list  item  a):
f[x;a]
over  list:
l
with  starting  value:
y)
supposing  valueall-type(T')

Date html generated: 2018_05_21-PM-00_21_19
Last ObjectModification: 2018_05_19-AM-06_58_39

Theory : ML

Home Index