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: List int_seg: {i..j-} bnot: ¬bb bool: 𝔹 uall: [x:A]. B[x] all: x:A. B[x] exists: x:A. B[x] iff: ⇐⇒ Q and: P ∧ Q apply: a lambda: λx.A[x] function: x:A ⟶ B[x] natural_number: $n universe: Type equal: 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:  Q iff: ⇐⇒ Q exists: x:A. B[x] rev_implies:  Q top: Top le: A ≤ B or: P ∨ Q decidable: Dec(P) uiff: uiff(P;Q) cand: c∧ B not: ¬A false: False satisfiable_int_formula: satisfiable_int_formula(fmla) uimplies: supposing a ge: i ≥  lelt: i ≤ j < k nat: int_seg: {i..j-} guard: {T} interleaving: interleaving(T;L1;L2;L) subtype_rel: A ⊆B less_than: a < b squash: T bool: 𝔹 unit: Unit it: btrue: tt ifthenelse: if then else fi  bfalse: ff eq_int: (i =z j) subtract: m bnot: ¬bb sq_type: SQType(T) assert: b nequal: a ≠ b ∈  true: True select: L[n] nil: [] so_lambda: λ2y.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