Nuprl Lemma : mapfilter-as-reduce2
∀[L,p,f:Top]. (mapfilter(f;p;L) ~ reduce(λx,a. if p x then [f x / a] else a fi ;[];L))
Proof
Definitions occuring in Statement :
mapfilter: mapfilter(f;P;L)
,
reduce: reduce(f;k;as)
,
cons: [a / b]
,
nil: []
,
ifthenelse: if b then t else f fi
,
uall: ∀[x:A]. B[x]
,
top: Top
,
apply: f a
,
lambda: λx.A[x]
,
sqequal: s ~ t
Definitions unfolded in proof :
mapfilter: mapfilter(f;P;L)
,
uall: ∀[x:A]. B[x]
,
member: t ∈ T
,
filter: filter(P;l)
,
reduce: reduce(f;k;as)
,
so_lambda: λ2x.t[x]
,
so_apply: x[s]
,
uimplies: b supposing a
,
strict1: strict1(F)
,
and: P ∧ Q
,
all: ∀x:A. B[x]
,
implies: P
⇒ Q
,
map: map(f;as)
,
list_ind: list_ind,
has-value: (a)↓
,
prop: ℙ
,
or: P ∨ Q
,
squash: ↓T
,
guard: {T}
,
so_lambda: so_lambda(x,y,z.t[x; y; z])
,
so_apply: x[s1;s2;s3]
,
top: Top
Lemmas referenced :
top_wf,
map_nil_lemma,
sqle_wf_base,
map_cons_lemma,
map-ifthenelse,
is-exception_wf,
base_wf,
has-value_wf_base,
sqequal-list_ind
Rules used in proof :
sqequalSubstitution,
sqequalRule,
sqequalReflexivity,
sqequalTransitivity,
computationStep,
isect_memberFormation,
introduction,
cut,
thin,
lemma_by_obid,
sqequalHypSubstitution,
isectElimination,
baseApply,
closedConclusion,
baseClosed,
hypothesisEquality,
independent_isectElimination,
independent_pairFormation,
lambdaFormation,
callbyvalueCallbyvalue,
hypothesis,
callbyvalueReduce,
callbyvalueExceptionCases,
inlFormation,
imageMemberEquality,
imageElimination,
exceptionSqequal,
inrFormation,
isect_memberEquality,
voidElimination,
voidEquality,
dependent_functionElimination,
divergentSqle,
sqleRule,
sqleReflexivity,
because_Cache,
sqequalAxiom
Latex:
\mforall{}[L,p,f:Top]. (mapfilter(f;p;L) \msim{} reduce(\mlambda{}x,a. if p x then [f x / a] else a fi ;[];L))
Date html generated:
2016_05_15-PM-03_56_39
Last ObjectModification:
2016_01_16-AM-10_59_01
Theory : general
Home
Index