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