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 < j ⇒ (f i < f j ∨ f 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: a = b,  Id: Id,  iseg: l1 ≤ l2,  filter: filter(P;l),  select: L[n],  firstn: firstn(n;as),  length: ||as||,  list: T 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: P ⇒ Q,  or: P ∨ Q,  and: P ∧ Q,  apply: f a,  lambda: λx.A[x],  function: x:A ─→ B[x],  product: x:A × B[x],  add: n + m,  natural_number: $n,  int: ℤ,  universe: Type,  equal: s = 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