### Nuprl Lemma : interleaving_filter2

`∀[T:Type]`
`  ∀L,L1,L2:T List.`
`    (interleaving(T;L1;L2;L)`
`    `⇐⇒` ∃P:ℕ||L|| ⟶ 𝔹. ((L1 = filter2(P;L) ∈ (T List)) ∧ (L2 = filter2(λi.(¬b(P i));L) ∈ (T List))))`

Proof

Definitions occuring in Statement :  interleaving: `interleaving(T;L1;L2;L)` filter2: `filter2(P;L)` length: `||as||` list: `T List` int_seg: `{i..j-}` bnot: `¬bb` bool: `𝔹` uall: `∀[x:A]. B[x]` all: `∀x:A. B[x]` exists: `∃x:A. B[x]` iff: `P `⇐⇒` Q` and: `P ∧ Q` apply: `f a` lambda: `λx.A[x]` function: `x:A ⟶ B[x]` natural_number: `\$n` universe: `Type` equal: `s = t ∈ T`
Definitions unfolded in proof :  uall: `∀[x:A]. B[x]` all: `∀x:A. B[x]` member: `t ∈ T` so_lambda: `λ2x.t[x]` prop: `ℙ` and: `P ∧ Q` so_apply: `x[s]` implies: `P `` Q` iff: `P `⇐⇒` Q` exists: `∃x:A. B[x]` rev_implies: `P `` Q` top: `Top` le: `A ≤ B` or: `P ∨ Q` decidable: `Dec(P)` uiff: `uiff(P;Q)` cand: `A c∧ B` not: `¬A` false: `False` satisfiable_int_formula: `satisfiable_int_formula(fmla)` uimplies: `b supposing a` ge: `i ≥ j ` lelt: `i ≤ j < k` nat: `ℕ` int_seg: `{i..j-}` guard: `{T}` interleaving: `interleaving(T;L1;L2;L)` subtype_rel: `A ⊆r B` less_than: `a < b` squash: `↓T` bool: `𝔹` unit: `Unit` it: `⋅` btrue: `tt` ifthenelse: `if b then t else f fi ` bfalse: `ff` eq_int: `(i =z j)` subtract: `n - m` bnot: `¬bb` sq_type: `SQType(T)` assert: `↑b` nequal: `a ≠ b ∈ T ` true: `True` select: `L[n]` nil: `[]` so_lambda: `λ2x y.t[x; y]` so_apply: `x[s1;s2]` less_than': `less_than'(a;b)` cons: `[a / b]` colength: `colength(L)` nat_plus: `ℕ+`
Lemmas referenced :  list_induction all_wf list_wf iff_wf interleaving_wf exists_wf int_seg_wf length_wf bool_wf equal_wf filter2_wf bnot_wf istype-universe equal-wf-T-base nil_wf filter2_nil_lemma length_of_nil_lemma int_term_value_add_lemma int_formula_prop_eq_lemma int_formula_prop_not_lemma itermAdd_wf intformeq_wf intformnot_wf decidable__equal_int non_neg_length length_zero int_formula_prop_wf int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_less_lemma int_formula_prop_and_lemma intformle_wf itermConstant_wf itermVar_wf intformless_wf intformand_wf satisfiable-full-omega-tt nat_properties int_seg_properties nil_interleaving nat_wf length_wf_nat length_of_cons_lemma istype-void cons_wf le_wf less_than_wf interleaving_of_cons tl_wf eq_int_wf equal-wf-base set_subtype_base lelt_wf istype-int int_subtype_base assert_wf btrue_wf not_wf subtract_wf decidable__le full-omega-unsat itermSubtract_wf int_term_value_subtract_lemma decidable__lt add-is-int-iff false_wf uiff_transitivity eqtt_to_assert assert_of_eq_int iff_transitivity iff_weakening_uiff eqff_to_assert assert_of_bnot squash_wf true_wf cons_filter2 bool_cases_sqequal subtype_base_sq bool_subtype_base assert-bnot neg_assert_of_eq_int subtype_rel_self iff_weakening_equal bfalse_wf ge_wf list-cases stuck-spread istype-base reduce_tl_nil_lemma product_subtype_list colength-cons-not-zero colength_wf_list istype-false subtract-1-ge-0 spread_cons_lemma reduce_tl_cons_lemma add-subtract-cancel add_nat_plus nat_plus_properties add-member-int_seg2 cons_interleaving interleaving_symmetry
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt lambdaFormation_alt cut thin introduction extract_by_obid sqequalHypSubstitution isectElimination hypothesisEquality sqequalRule lambdaEquality_alt hypothesis because_Cache functionEquality natural_numberEquality productEquality applyLambdaEquality functionIsType universeIsType inhabitedIsType independent_functionElimination rename productIsType equalityIsType1 applyEquality dependent_functionElimination universeEquality baseClosed lambdaEquality cumulativity independent_pairFormation lambdaFormation voidEquality voidElimination isect_memberEquality unionElimination computeAll intEquality int_eqEquality independent_isectElimination equalitySymmetry equalityTransitivity setElimination dependent_pairFormation productElimination hyp_replacement dependent_set_memberEquality isect_memberEquality_alt addEquality dependent_set_memberEquality_alt dependent_pairFormation_alt baseApply closedConclusion equalityIsType4 approximateComputation pointwiseFunctionality promote_hyp imageElimination equalityElimination equalityIsType2 instantiate imageMemberEquality intWeakElimination axiomEquality functionIsTypeImplies hypothesis_subsumption functionExtensionality_alt

Latex:
\mforall{}[T:Type]
\mforall{}L,L1,L2:T  List.
(interleaving(T;L1;L2;L)
\mLeftarrow{}{}\mRightarrow{}  \mexists{}P:\mBbbN{}||L||  {}\mrightarrow{}  \mBbbB{}.  ((L1  =  filter2(P;L))  \mwedge{}  (L2  =  filter2(\mlambda{}i.(\mneg{}\msubb{}(P  i));L))))

Date html generated: 2019_10_15-AM-10_56_35
Last ObjectModification: 2018_10_09-AM-10_11_44

Theory : list!

Home Index