Nuprl Lemma : global-order-compat-combine

[Info:Type]
  ∀L1,L2:(Id × Info) List.
    (L1 || L2
     (∃L:(Id × Info) List
         (L1 ≤ L
         ∧ (∃f:ℕ||L2|| ─→ ℕ||L||
             ((∀i,j:ℕ||L2||.  (i <  (f i < j ∨ j < ||L1||)))
             ∧ (∀j:ℕ||L2||
                  ((L2[j] L[f j] ∈ (Id × Info))
                  ∧ (filter(λx.fst(x) fst(L2[j]);firstn(j 1;L2))
                    filter(λx.fst(x) fst(L2[j]);firstn((f j) 1;L))
                    ∈ ((Id × Info) List))))
             ∧ (∀x:ℕ||L||. (x < ||L1|| ∨ (∃i:ℕ||L2||. (x (f i) ∈ ℤ))))))
         ∧ L2 ≤ L, locally
         ∧ (∀i:Id
              ((filter(λx.fst(x) i;L) filter(λx.fst(x) i;L1) ∈ ((Id × Info) List))
              ∨ (filter(λx.fst(x) i;L) filter(λx.fst(x) i;L2) ∈ ((Id × Info) List)))))))


Proof




Definitions occuring in Statement :  global-order-compat: L1 || L2 global-order-iseg: L1 ≤ L2, locally eq_id: b Id: Id iseg: l1 ≤ l2 filter: filter(P;l) select: L[n] firstn: firstn(n;as) length: ||as|| list: List int_seg: {i..j-} less_than: a < b uall: [x:A]. B[x] pi1: fst(t) all: x:A. B[x] exists: x:A. B[x] implies:  Q or: P ∨ Q and: P ∧ Q apply: a lambda: λx.A[x] function: x:A ─→ B[x] product: x:A × B[x] add: m natural_number: $n int: universe: Type equal: t ∈ T
Lemmas :  last_induction global-order-compat_wf exists_wf iseg_wf int_seg_wf length_wf all_wf less_than_wf or_wf select_wf sq_stable__le zero-le-nat int_seg_subtype-nat false_wf non_neg_length length_wf_nat filter_wf5 firstn_wf l_member_wf eq_id_wf equal_wf global-order-iseg_wf nil_wf append_wf cons_wf list_wf Id_wf iseg_weakening length_of_nil_lemma less_than_transitivity1 less_than_irreflexivity lelt_wf stuck-spread base_wf list_ind_nil_lemma filter_nil_lemma decidable__lt equal-wf-base-T int_subtype_base less-iff-le add_functionality_wrt_le add-swap add-commutes le-add-cancel pi1_wf_top nil_iseg length_nil length_wf_nil subtype_rel_product top_wf filter_append_sq iseg_append_iff filter_cons_lemma squash_wf true_wf iff_weakening_equal iseg_append0 assert_wf bnot_wf not_wf bool_cases subtype_base_sq bool_wf bool_subtype_base eqtt_to_assert assert-eq-id eqff_to_assert iff_transitivity iff_weakening_uiff assert_of_bnot iseg_transitivity decidable__le subtype_rel_list filter_iseg iseg_length iseg_ge_length nat_wf ge_wf le_weakening length_cons length_append lt_int_wf assert_of_lt_int subtype_rel-int_seg bool_cases_sqequal assert-bnot add-associates select-append iff_imp_equal_bool btrue_wf iff_wf firstn_append not-le-2 condition-implies-le minus-add minus-one-mul zero-add add-zero le-add-cancel2 le_wf subtract_wf select-cons-hd minus-zero add-mul-special zero-mul firstn_all append-nil iseg_append_single atom2_subtype_base iseg_weakening2 iseg_filter_last last_singleton_append length-append last_wf list-cases null_nil_lemma length_of_cons_lemma product_subtype_list null_cons_lemma minus-minus le-add-cancel-alt iseg_select subtract-is-less set_wf iseg-iff-firstn and_wf append_back_nil

Latex:
\mforall{}[Info:Type]
    \mforall{}L1,L2:(Id  \mtimes{}  Info)  List.
        (L1  ||  L2
        {}\mRightarrow{}  (\mexists{}L:(Id  \mtimes{}  Info)  List
                  (L1  \mleq{}  L
                  \mwedge{}  (\mexists{}f:\mBbbN{}||L2||  {}\mrightarrow{}  \mBbbN{}||L||
                          ((\mforall{}i,j:\mBbbN{}||L2||.    (i  <  j  {}\mRightarrow{}  (f  i  <  f  j  \mvee{}  f  j  <  ||L1||)))
                          \mwedge{}  (\mforall{}j:\mBbbN{}||L2||
                                    ((L2[j]  =  L[f  j])
                                    \mwedge{}  (filter(\mlambda{}x.fst(x)  =  fst(L2[j]);firstn(j  +  1;L2))
                                        =  filter(\mlambda{}x.fst(x)  =  fst(L2[j]);firstn((f  j)  +  1;L)))))
                          \mwedge{}  (\mforall{}x:\mBbbN{}||L||.  (x  <  ||L1||  \mvee{}  (\mexists{}i:\mBbbN{}||L2||.  (x  =  (f  i)))))))
                  \mwedge{}  L2  \mleq{}  L,  locally
                  \mwedge{}  (\mforall{}i:Id
                            ((filter(\mlambda{}x.fst(x)  =  i;L)  =  filter(\mlambda{}x.fst(x)  =  i;L1))
                            \mvee{}  (filter(\mlambda{}x.fst(x)  =  i;L)  =  filter(\mlambda{}x.fst(x)  =  i;L2)))))))



Date html generated: 2015_07_21-PM-04_39_47
Last ObjectModification: 2015_02_04-PM-06_02_35

Home Index