Nuprl Lemma : isOdd-sum

[n:ℕ]. ∀[f:ℕn ⟶ ℤ].  uiff(↑isOdd(Σ(f[x] x < n));↑isOdd(||filter(λx.isOdd(f[x]);upto(n))||))


Proof




Definitions occuring in Statement :  isOdd: isOdd(n) upto: upto(n) sum: Σ(f[x] x < k) length: ||as|| filter: filter(P;l) int_seg: {i..j-} nat: assert: b uiff: uiff(P;Q) uall: [x:A]. B[x] so_apply: x[s] lambda: λx.A[x] function: x:A ⟶ B[x] natural_number: $n int:
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T nat: implies:  Q false: False ge: i ≥  uimplies: supposing a not: ¬A satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] all: x:A. B[x] top: Top and: P ∧ Q prop: uiff: uiff(P;Q) sum: Σ(f[x] x < k) sum_aux: sum_aux(k;v;i;x.f[x]) upto: upto(n) from-upto: [n, m) ifthenelse: if then else fi  lt_int: i <j bfalse: ff filter: filter(P;l) reduce: reduce(f;k;as) list_ind: list_ind nil: [] it: le: A ≤ B less_than': less_than'(a;b) so_lambda: λ2x.t[x] so_apply: x[s] int_seg: {i..j-} lelt: i ≤ j < k decidable: Dec(P) or: P ∨ Q less_than: a < b squash: T nat_plus: + sq_type: SQType(T) guard: {T} subtype_rel: A ⊆B cand: c∧ B iff: ⇐⇒ Q rev_implies:  Q subtract: m true: True bool: 𝔹 unit: Unit btrue: tt assert: b bnot: ¬bb same-parity: same-parity(n;m) isEven: isEven(n) eq_int: (i =z j) modulus: mod n remainder: rem m isOdd: isOdd(n)
Lemmas referenced :  nat_properties full-omega-unsat intformand_wf intformle_wf itermConstant_wf itermVar_wf intformless_wf istype-int int_formula_prop_and_lemma istype-void int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_less_lemma int_formula_prop_wf ge_wf istype-less_than assert_witness filter_nil_lemma length_of_nil_lemma isOdd_wf istype-assert int_seg_wf length_wf nil_wf sum_wf istype-le subtract-1-ge-0 filter_wf5 upto_wf int_seg_properties decidable__le intformnot_wf int_formula_prop_not_lemma decidable__lt l_member_wf istype-nat upto_decomp1 filter_append_sq filter_cons_lemma sum_split1 subtype_base_sq int_subtype_base subtype_rel_function subtract_wf int_seg_subtype istype-false not-le-2 condition-implies-le add-associates minus-add minus-one-mul add-swap minus-one-mul-top add-mul-special zero-mul add-zero add-commutes le-add-cancel2 subtype_rel_self itermSubtract_wf int_term_value_subtract_lemma length-append length_wf_nat same-parity_wf eqtt_to_assert same-parity-implies-even-odd istype-true ifthenelse_wf list_wf cons_wf eqff_to_assert bool_cases_sqequal bool_wf bool_subtype_base assert-bnot not-same-parity-implies-even-odd iff_weakening_uiff assert_wf not_wf isOdd-add length_of_cons_lemma odd-iff-not-even isEven_wf even-iff-not-odd
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt introduction cut extract_by_obid sqequalHypSubstitution isectElimination thin hypothesisEquality hypothesis setElimination rename intWeakElimination lambdaFormation_alt natural_numberEquality independent_isectElimination approximateComputation independent_functionElimination dependent_pairFormation_alt lambdaEquality_alt int_eqEquality dependent_functionElimination isect_memberEquality_alt voidElimination sqequalRule independent_pairFormation universeIsType productElimination independent_pairEquality isectIsTypeImplies inhabitedIsType functionIsTypeImplies because_Cache functionIsType dependent_set_memberEquality_alt applyEquality unionElimination productIsType setIsType imageElimination instantiate cumulativity intEquality equalityTransitivity equalitySymmetry addEquality minusEquality multiplyEquality equalityElimination isectIsType equalityIstype promote_hyp

Latex:
\mforall{}[n:\mBbbN{}].  \mforall{}[f:\mBbbN{}n  {}\mrightarrow{}  \mBbbZ{}].    uiff(\muparrow{}isOdd(\mSigma{}(f[x]  |  x  <  n));\muparrow{}isOdd(||filter(\mlambda{}x.isOdd(f[x]);upto(n))||))



Date html generated: 2020_05_19-PM-10_01_27
Last ObjectModification: 2019_11_12-PM-01_57_25

Theory : num_thy_1


Home Index