### Nuprl Lemma : combine-list-rel-and

`∀[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_all: `(∀x∈L.P[x])` length: `||as||` list: `T List` assoc: `Assoc(T;op)` less_than: `a < b` uimplies: `b supposing a` uall: `∀[x:A]. B[x]` prop: `ℙ` so_apply: `x[s1;s2]` all: `∀x:A. B[x]` iff: `P `⇐⇒` Q` implies: `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: `P `` Q` member: `t ∈ T` guard: `{T}` int_seg: `{i..j-}` iff: `P `⇐⇒` Q` rev_implies: `P `` Q` lelt: `i ≤ j < k` and: `P ∧ Q` uimplies: `b 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 ⊆r B` le: `A ≤ B` less_than': `less_than'(a;b)` nat: `ℕ` ge: `i ≥ j ` 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: `λ2x y.t[x; y]` true: `True` so_lambda: `λ2x.t[x]` so_apply: `x[s]` bfalse: `ff` subtract: `n - m` cand: `A 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_all_single equal_wf l_all_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 squash_wf true_wf combine-list-cons iff_weakening_equal l_all_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 andLevelFunctionality

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]  \mwedge{}  R[x;z]))
{}\mRightarrow{}  (\mforall{}L:T  List.  \mforall{}a:T.
R[a;combine-list(x,y.f[x;y];L)]  \mLeftarrow{}{}\mRightarrow{}  (\mforall{}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_52
Last ObjectModification: 2017_02_27-PM-03_58_59

Theory : list_1

Home Index