### Nuprl Lemma : l_before_mapfilter

`∀[A,B:Type].`
`  ∀l:A List. ∀P:A ⟶ 𝔹. ∀f:{a:A| ↑(P a)}  ⟶ B. ∀x,y:B.`
`    (x before y ∈ mapfilter(f;P;l)`
`    `⇐⇒` ∃u,v:A. ((↑(P u)) ∧ (↑(P v)) ∧ (x = (f u) ∈ B) ∧ (y = (f v) ∈ B) ∧ u before v ∈ l))`

Proof

Definitions occuring in Statement :  mapfilter: `mapfilter(f;P;L)` l_before: `x before y ∈ l` list: `T List` assert: `↑b` bool: `𝔹` uall: `∀[x:A]. B[x]` all: `∀x:A. B[x]` exists: `∃x:A. B[x]` iff: `P `⇐⇒` Q` and: `P ∧ Q` set: `{x:A| B[x]} ` apply: `f a` function: `x:A ⟶ B[x]` universe: `Type` equal: `s = t ∈ T`
Definitions unfolded in proof :  uall: `∀[x:A]. B[x]` all: `∀x:A. B[x]` iff: `P `⇐⇒` Q` and: `P ∧ Q` implies: `P `` Q` mapfilter: `mapfilter(f;P;L)` member: `t ∈ T` prop: `ℙ` exists: `∃x:A. B[x]` cand: `A c∧ B` uimplies: `b supposing a` sq_type: `SQType(T)` guard: `{T}` assert: `↑b` ifthenelse: `if b then t else f fi ` btrue: `tt` true: `True` so_lambda: `λ2x.t[x]` so_apply: `x[s]` rev_implies: `P `` Q`
Lemmas referenced :  l_before_map assert_wf filter_type assert_elim subtype_base_sq bool_subtype_base l_before_filter_subtype l_before_filter equal_wf l_before_wf exists_wf mapfilter_wf bool_wf list_wf
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation lambdaFormation independent_pairFormation sqequalHypSubstitution cut introduction extract_by_obid isectElimination thin setEquality cumulativity hypothesisEquality applyEquality functionExtensionality hypothesis because_Cache dependent_functionElimination productElimination independent_functionElimination dependent_pairFormation setElimination rename independent_isectElimination instantiate natural_numberEquality productEquality equalityTransitivity equalitySymmetry dependent_set_memberEquality sqequalRule lambdaEquality functionEquality universeEquality

Latex:
\mforall{}[A,B:Type].
\mforall{}l:A  List.  \mforall{}P:A  {}\mrightarrow{}  \mBbbB{}.  \mforall{}f:\{a:A|  \muparrow{}(P  a)\}    {}\mrightarrow{}  B.  \mforall{}x,y:B.
(x  before  y  \mmember{}  mapfilter(f;P;l)
\mLeftarrow{}{}\mRightarrow{}  \mexists{}u,v:A.  ((\muparrow{}(P  u))  \mwedge{}  (\muparrow{}(P  v))  \mwedge{}  (x  =  (f  u))  \mwedge{}  (y  =  (f  v))  \mwedge{}  u  before  v  \mmember{}  l))

Date html generated: 2017_04_17-AM-07_26_51
Last ObjectModification: 2017_02_27-PM-04_04_56

Theory : list_1

Home Index