Nuprl Lemma : odd-l_sum

[T:Type]. ∀[L:T List]. ∀[f:{x:T| (x ∈ L)}  ⟶ ℤ].  uiff(↑isOdd(l_sum(map(f;L)));↑isOdd(||filter(λx.isOdd(f x);L)||))


Proof




Definitions occuring in Statement :  isOdd: isOdd(n) l_sum: l_sum(L) l_member: (x ∈ l) length: ||as|| filter: filter(P;l) map: map(f;as) list: List assert: b uiff: uiff(P;Q) uall: [x:A]. B[x] set: {x:A| B[x]}  apply: a lambda: λx.A[x] function: x:A ⟶ B[x] int: universe: Type
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T prop: all: x:A. B[x] guard: {T} uiff: uiff(P;Q) and: P ∧ Q uimplies: supposing a so_lambda: λ2x.t[x] int_seg: {i..j-} lelt: i ≤ j < k le: A ≤ B less_than: a < b squash: T decidable: Dec(P) or: P ∨ Q not: ¬A implies:  Q satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] false: False top: Top so_apply: x[s] iff: ⇐⇒ Q rev_implies:  Q nat: ge: i ≥  select: L[n] nil: [] it: so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] upto: upto(n) from-upto: [n, m) ifthenelse: if then else fi  lt_int: i <j bfalse: ff cons: [a b] less_than': less_than'(a;b) colength: colength(L) sq_type: SQType(T) subtype_rel: A ⊆B nat_plus: + l_member: (x ∈ l) cand: c∧ B bool: 𝔹 unit: Unit btrue: tt compose: g bnot: ¬bb assert: b true: True subtract: m sq_stable: SqStable(P)
Lemmas referenced :  l_member_wf istype-int list_wf istype-universe l_sum-sum list-subtype uiff_wf assert_wf isOdd_wf length_wf filter_wf2 iff_weakening_uiff sum_wf length_wf_nat select_wf int_seg_properties decidable__le full-omega-unsat intformand_wf intformnot_wf intformle_wf itermConstant_wf itermVar_wf int_formula_prop_and_lemma istype-void int_formula_prop_not_lemma int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_wf decidable__lt intformless_wf int_formula_prop_less_lemma select_member int_seg_wf isOdd-sum assert_witness istype-assert nat_properties ge_wf istype-less_than list-cases stuck-spread istype-base length_of_nil_lemma filter_nil_lemma product_subtype_list colength-cons-not-zero colength_wf_list istype-le subtract-1-ge-0 subtype_base_sq intformeq_wf int_formula_prop_eq_lemma set_subtype_base int_subtype_base spread_cons_lemma decidable__equal_int subtract_wf itermSubtract_wf itermAdd_wf int_term_value_subtract_lemma int_term_value_add_lemma le_wf length_of_cons_lemma filter_cons_lemma istype-nat nil_wf subtype_rel_dep_function cons_wf subtype_rel_sets_simple cons_member upto_decomp2 add_nat_plus nat_plus_properties add-is-int-iff false_wf add-subtract-cancel eqtt_to_assert filter-map map-length eqff_to_assert bool_cases_sqequal bool_wf bool_subtype_base assert-bnot squash_wf true_wf upto_wf filter_wf5 select-cons-tl add-associates add-swap add-commutes zero-add sq_stable__l_member decidable__equal_int_seg subtype_rel_list nat_wf
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt functionIsType setIsType universeIsType hypothesisEquality cut introduction extract_by_obid sqequalHypSubstitution isectElimination thin hypothesis instantiate universeEquality setEquality functionExtensionality applyEquality setElimination rename dependent_set_memberEquality_alt because_Cache lambdaFormation_alt dependent_functionElimination hyp_replacement equalitySymmetry applyLambdaEquality lambdaEquality_alt productElimination independent_isectElimination sqequalRule imageElimination natural_numberEquality unionElimination approximateComputation independent_functionElimination dependent_pairFormation_alt int_eqEquality isect_memberEquality_alt voidElimination independent_pairFormation promote_hyp intWeakElimination axiomSqEquality functionIsTypeImplies inhabitedIsType baseClosed hypothesis_subsumption equalityIstype equalityTransitivity baseApply closedConclusion intEquality sqequalBase inrFormation_alt addEquality pointwiseFunctionality productIsType equalityElimination cumulativity imageMemberEquality functionExtensionality_alt

Latex:
\mforall{}[T:Type].  \mforall{}[L:T  List].  \mforall{}[f:\{x:T|  (x  \mmember{}  L)\}    {}\mrightarrow{}  \mBbbZ{}].
    uiff(\muparrow{}isOdd(l\_sum(map(f;L)));\muparrow{}isOdd(||filter(\mlambda{}x.isOdd(f  x);L)||))



Date html generated: 2020_05_19-PM-10_01_46
Last ObjectModification: 2019_11_13-AM-11_08_47

Theory : num_thy_1


Home Index