Nuprl Lemma : member-insert-combine2

T:Type. ∀cmp:comparison(T). ∀f:T ⟶ T ⟶ T. ∀x,z:T. ∀v:T List.
  ((z ∈ insert-combine(cmp;f;x;v))
  ⇐⇒ (∃l:T List. (l [z] ≤ v ∧ (∀y∈l.cmp y < 0) ∧ cmp z < 0))
      ∨ (∃l,l':T List
          ∃a:T
           (((l [a l']) v ∈ (T List))
           ∧ (∀y∈l.cmp y < 0)
           ∧ ((0 < cmp a ∧ (z ∈ [x; [a l']])) ∨ (((cmp a) 0 ∈ ℤ) ∧ (z ∈ [f l'])))))
      ∨ ((z x ∈ T) ∧ (∀y∈v.cmp y < 0)))


Proof




Definitions occuring in Statement :  insert-combine: insert-combine(cmp;f;x;l) comparison: comparison(T) iseg: l1 ≤ l2 l_all: (∀x∈L.P[x]) l_member: (x ∈ l) append: as bs cons: [a b] nil: [] list: List less_than: a < b all: x:A. B[x] exists: x:A. B[x] iff: ⇐⇒ Q or: P ∨ Q and: P ∧ Q apply: a function: x:A ⟶ B[x] natural_number: $n int: universe: Type equal: t ∈ T
Definitions unfolded in proof :  all: x:A. B[x] iff: ⇐⇒ Q and: P ∧ Q implies:  Q uall: [x:A]. B[x] member: t ∈ T so_lambda: λ2x.t[x] prop: or: P ∨ Q exists: x:A. B[x] so_apply: x[s] top: Top comparison: comparison(T) rev_implies:  Q uiff: uiff(P;Q) uimplies: supposing a subtype_rel: A ⊆B guard: {T} cand: c∧ B true: True insert-combine: insert-combine(cmp;f;x;l) has-value: (a)↓ append: as bs so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] not: ¬A false: False decidable: Dec(P) satisfiable_int_formula: satisfiable_int_formula(fmla) squash: T sq_type: SQType(T) ifthenelse: if then else fi  btrue: tt bfalse: ff assert: b bool: 𝔹 unit: Unit it: cons: [a b] bnot: ¬bb nequal: a ≠ b ∈  less_than: a < b nat: le: A ≤ B subtract: m less_than': less_than'(a;b) listp: List+
Lemmas referenced :  list_induction l_member_wf insert-combine_wf or_wf list_wf insert-combine-nil member_singleton equal_wf nil_wf insert-combine-cons cons_wf exists_wf iseg_wf append_wf l_all_wf less_than_wf length_wf length-append equal-wf-T-base cons_member l_all_nil_iff length_of_nil_lemma l_all_wf_nil l_all_cons length_of_cons_lemma comparison_wf true_wf value-type-has-value int-value-type eq_int_wf list_ind_nil_lemma l_all_nil assert_wf bnot_wf not_wf lt_int_wf decidable__lt satisfiable-full-omega-tt intformand_wf intformnot_wf intformless_wf itermVar_wf itermConstant_wf intformeq_wf int_formula_prop_and_lemma int_formula_prop_not_lemma int_formula_prop_less_lemma int_term_value_var_lemma int_term_value_constant_lemma int_formula_prop_eq_lemma int_formula_prop_wf cons_iseg nil_iseg and_wf list_ind_cons_lemma squash_wf iff_weakening_equal bool_cases subtype_base_sq bool_wf bool_subtype_base eqtt_to_assert assert_of_eq_int eqff_to_assert iff_transitivity iff_weakening_uiff assert_of_bnot assert_of_lt_int iseg_nil null_append subtype_rel_list top_wf null_cons_lemma band_wf null_wf bfalse_wf false_wf assert_of_band assert_of_null list-cases product_subtype_list member_append l_all_iff bool_cases_sqequal assert-bnot neg_assert_of_eq_int hd_wf listp_properties cons_neq_nil length_wf_nat nat_wf not-lt-2 condition-implies-le minus-add minus-one-mul zero-add minus-one-mul-top add-commutes add_functionality_wrt_le add-associates add-zero le-add-cancel reduce_hd_cons_lemma tl_wf reduce_tl_cons_lemma not-equal-2
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity lambdaFormation independent_pairFormation cut thin introduction extract_by_obid sqequalHypSubstitution isectElimination because_Cache sqequalRule lambdaEquality functionEquality dependent_functionElimination hypothesisEquality functionExtensionality applyEquality hypothesis cumulativity independent_functionElimination addLevel isect_memberEquality voidElimination voidEquality productElimination levelHypothesis promote_hyp rename productEquality setElimination natural_numberEquality setEquality applyLambdaEquality intEquality baseClosed unionElimination orFunctionality independent_isectElimination equalityTransitivity equalitySymmetry universeEquality inrFormation callbyvalueReduce inlFormation dependent_pairFormation int_eqEquality computeAll hyp_replacement dependent_set_memberEquality imageElimination equalityUniverse imageMemberEquality instantiate impliesFunctionality equalityElimination hypothesis_subsumption addEquality minusEquality

Latex:
\mforall{}T:Type.  \mforall{}cmp:comparison(T).  \mforall{}f:T  {}\mrightarrow{}  T  {}\mrightarrow{}  T.  \mforall{}x,z:T.  \mforall{}v:T  List.
    ((z  \mmember{}  insert-combine(cmp;f;x;v))
    \mLeftarrow{}{}\mRightarrow{}  (\mexists{}l:T  List.  (l  @  [z]  \mleq{}  v  \mwedge{}  (\mforall{}y\mmember{}l.cmp  x  y  <  0)  \mwedge{}  cmp  x  z  <  0))
            \mvee{}  (\mexists{}l,l':T  List
                    \mexists{}a:T
                      (((l  @  [a  /  l'])  =  v)
                      \mwedge{}  (\mforall{}y\mmember{}l.cmp  x  y  <  0)
                      \mwedge{}  ((0  <  cmp  x  a  \mwedge{}  (z  \mmember{}  [x;  [a  /  l']]))  \mvee{}  (((cmp  x  a)  =  0)  \mwedge{}  (z  \mmember{}  [f  x  a  /  l'])))))
            \mvee{}  ((z  =  x)  \mwedge{}  (\mforall{}y\mmember{}v.cmp  x  y  <  0)))



Date html generated: 2017_04_17-AM-08_29_30
Last ObjectModification: 2017_02_27-PM-04_56_17

Theory : list_1


Home Index