Nuprl Lemma : combine-list-rel-or

[T:Type]
  ∀f:T ⟶ T ⟶ T. ∀R:T ⟶ T ⟶ ℙ.
    ((∀x,y,z:T.  (R[x;f[y;z]] ⇐⇒ R[x;y] ∨ R[x;z]))
     (∀L:T List. ∀a:T.  R[a;combine-list(x,y.f[x;y];L)] ⇐⇒ (∃b∈L. R[a;b]) supposing 0 < ||L|| ∧ Assoc(T;λx,y. f[x;y])\000C))


Proof




Definitions occuring in Statement :  combine-list: combine-list(x,y.f[x; y];L) l_exists: (∃x∈L. P[x]) length: ||as|| list: List assoc: Assoc(T;op) less_than: a < b uimplies: supposing a uall: [x:A]. B[x] prop: so_apply: x[s1;s2] all: x:A. B[x] iff: ⇐⇒ Q implies:  Q or: P ∨ Q and: P ∧ Q lambda: λx.A[x] function: x:A ⟶ B[x] natural_number: $n universe: Type
Definitions unfolded in proof :  uall: [x:A]. B[x] all: x:A. B[x] implies:  Q member: t ∈ T guard: {T} int_seg: {i..j-} iff: ⇐⇒ Q rev_implies:  Q lelt: i ≤ j < k and: P ∧ Q uimplies: supposing a satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] false: False not: ¬A top: Top prop: decidable: Dec(P) or: P ∨ Q subtype_rel: A ⊆B le: A ≤ B less_than': less_than'(a;b) nat: ge: i ≥  less_than: a < b squash: T assoc: Assoc(T;op) cons: [a b] bool: 𝔹 unit: Unit it: btrue: tt uiff: uiff(P;Q) combine-list: combine-list(x,y.f[x; y];L) list_accum: list_accum tl: tl(l) pi2: snd(t) nil: [] hd: hd(l) pi1: fst(t) so_apply: x[s1;s2] so_lambda: λ2y.t[x; y] true: True so_lambda: λ2x.t[x] so_apply: x[s] bfalse: ff subtract: m cand: c∧ B
Lemmas referenced :  int_seg_properties satisfiable-full-omega-tt intformand_wf intformless_wf itermVar_wf itermConstant_wf intformle_wf int_formula_prop_and_lemma int_formula_prop_less_lemma int_term_value_var_lemma int_term_value_constant_lemma int_formula_prop_le_lemma int_formula_prop_wf int_seg_wf decidable__equal_int subtract_wf int_seg_subtype false_wf decidable__le intformnot_wf itermSubtract_wf intformeq_wf int_formula_prop_not_lemma int_term_value_subtract_lemma int_formula_prop_eq_lemma le_wf length_wf non_neg_length nat_properties decidable__lt lelt_wf less_than_wf member-less_than list-cases length_of_nil_lemma product_subtype_list length_of_cons_lemma null_wf bool_wf uiff_transitivity equal-wf-T-base assert_wf list_wf eqtt_to_assert assert_of_null combine-list_wf cons_wf length-singleton l_exists_single l_exists_wf nil_wf l_member_wf iff_wf itermAdd_wf int_term_value_add_lemma iff_transitivity bnot_wf not_wf iff_weakening_uiff eqff_to_assert assert_of_bnot length-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 equal_wf squash_wf true_wf combine-list-cons iff_weakening_equal or_wf l_exists_cons assoc_wf all_wf isect_wf set_wf primrec-wf2
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation lambdaFormation cut thin introduction extract_by_obid sqequalHypSubstitution isectElimination natural_numberEquality because_Cache hypothesisEquality hypothesis setElimination rename sqequalRule productElimination independent_isectElimination dependent_pairFormation lambdaEquality int_eqEquality intEquality dependent_functionElimination isect_memberEquality voidElimination voidEquality independent_pairFormation computeAll unionElimination addLevel applyEquality equalityTransitivity equalitySymmetry applyLambdaEquality levelHypothesis hypothesis_subsumption dependent_set_memberEquality cumulativity imageElimination independent_functionElimination independent_pairEquality axiomEquality promote_hyp equalityElimination baseClosed functionExtensionality imageMemberEquality impliesFunctionality setEquality hyp_replacement addEquality minusEquality universeEquality productEquality functionEquality orFunctionality

Latex:
\mforall{}[T:Type]
    \mforall{}f:T  {}\mrightarrow{}  T  {}\mrightarrow{}  T.  \mforall{}R:T  {}\mrightarrow{}  T  {}\mrightarrow{}  \mBbbP{}.
        ((\mforall{}x,y,z:T.    (R[x;f[y;z]]  \mLeftarrow{}{}\mRightarrow{}  R[x;y]  \mvee{}  R[x;z]))
        {}\mRightarrow{}  (\mforall{}L:T  List.  \mforall{}a:T.
                    R[a;combine-list(x,y.f[x;y];L)]  \mLeftarrow{}{}\mRightarrow{}  (\mexists{}b\mmember{}L.  R[a;b]) 
                    supposing  0  <  ||L||  \mwedge{}  Assoc(T;\mlambda{}x,y.  f[x;y])))



Date html generated: 2017_04_14-AM-09_23_45
Last ObjectModification: 2017_02_27-PM-03_58_58

Theory : list_1


Home Index