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) ∧ before v ∈ l))


Proof




Definitions occuring in Statement :  mapfilter: mapfilter(f;P;L) l_before: before y ∈ l list: List assert: b bool: 𝔹 uall: [x:A]. B[x] all: x:A. B[x] exists: x:A. B[x] iff: ⇐⇒ Q and: P ∧ Q set: {x:A| B[x]}  apply: a function: x:A ⟶ B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] all: x:A. B[x] iff: ⇐⇒ Q and: P ∧ Q implies:  Q mapfilter: mapfilter(f;P;L) member: t ∈ T prop: exists: x:A. B[x] cand: c∧ B uimplies: supposing a sq_type: SQType(T) guard: {T} assert: b ifthenelse: if then else fi  btrue: tt true: True so_lambda: λ2x.t[x] so_apply: x[s] rev_implies:  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