Nuprl Lemma : interleaved_split

[T:Type]
  ∀L:T List
    ∀[P:T ⟶ ℙ]
      ((∀x:T. Dec(P[x]))
       (∃L1,L2:T List
           (interleaving(T;L1;L2;L)
           ∧ (∀x:T. ((x ∈ L1) ⇐⇒ (x ∈ L) ∧ P[x]))
           ∧ (∀x:T. ((x ∈ L2) ⇐⇒ (x ∈ L) ∧ P[x]))))))


Proof




Definitions occuring in Statement :  interleaving: interleaving(T;L1;L2;L) l_member: (x ∈ l) list: List decidable: Dec(P) uall: [x:A]. B[x] prop: so_apply: x[s] all: x:A. B[x] exists: x:A. B[x] iff: ⇐⇒ Q not: ¬A implies:  Q and: P ∧ Q function: x:A ⟶ B[x] universe: Type
Definitions unfolded in proof :  rev_implies:  Q iff: ⇐⇒ Q subtype_rel: A ⊆B and: P ∧ Q so_apply: x[s] implies:  Q prop: so_lambda: λ2x.t[x] member: t ∈ T all: x:A. B[x] uall: [x:A]. B[x] cand: c∧ B false: False not: ¬A exists: x:A. B[x] decidable: Dec(P) or: P ∨ Q guard: {T}
Lemmas referenced :  not_wf subtype_rel_self l_member_wf iff_wf interleaving_wf list_wf exists_wf decidable_wf all_wf uall_wf list_induction nil_wf false_wf nil_member interleaving_of_nil cons_wf equal_wf and_wf or_wf cons_member cons_interleaving interleaving_symmetry
Rules used in proof :  universeIsType dependent_functionElimination because_Cache rename independent_functionElimination productEquality hypothesis applyEquality universeEquality functionEquality lambdaEquality sqequalRule hypothesisEquality cumulativity isectElimination sqequalHypSubstitution extract_by_obid introduction instantiate thin cut lambdaFormation isect_memberFormation_alt sqequalReflexivity computationStep sqequalTransitivity sqequalSubstitution independent_pairFormation voidElimination productElimination independent_pairEquality dependent_pairFormation functionIsType promote_hyp unionElimination inhabitedIsType inlFormation inrFormation hyp_replacement equalitySymmetry dependent_set_memberEquality applyLambdaEquality setElimination

Latex:
\mforall{}[T:Type]
    \mforall{}L:T  List
        \mforall{}[P:T  {}\mrightarrow{}  \mBbbP{}]
            ((\mforall{}x:T.  Dec(P[x]))
            {}\mRightarrow{}  (\mexists{}L1,L2:T  List
                      (interleaving(T;L1;L2;L)
                      \mwedge{}  (\mforall{}x:T.  ((x  \mmember{}  L1)  \mLeftarrow{}{}\mRightarrow{}  (x  \mmember{}  L)  \mwedge{}  P[x]))
                      \mwedge{}  (\mforall{}x:T.  ((x  \mmember{}  L2)  \mLeftarrow{}{}\mRightarrow{}  (x  \mmember{}  L)  \mwedge{}  (\mneg{}P[x]))))))



Date html generated: 2019_10_15-AM-10_57_03
Last ObjectModification: 2018_09_27-AM-10_28_26

Theory : list!


Home Index