Nuprl Lemma : satisfies_int_formula_dnf

∀fmla:int_formula(). ∀f:ℤ ⟶ ℤ.
  (int_formula_prop(f;fmla) ⇐⇒ (∃X∈int_formula_dnf(fmla). satisfies-poly-constraints(f;X)))


Proof




Definitions occuring in Statement :  int_formula_dnf: int_formula_dnf(fmla),  satisfies-poly-constraints: satisfies-poly-constraints(f;X),  int_formula_prop: int_formula_prop(f;fmla),  int_formula: int_formula(),  l_exists: (∃x∈L. P[x]),  all: ∀x:A. B[x],  iff: P ⇐⇒ Q,  function: x:A ⟶ B[x],  int: ℤ
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  so_lambda: λ2x.t[x],  member: t ∈ T,  prop: ℙ,  so_apply: x[s],  implies: P ⇒ Q,  all: ∀x:A. B[x],  int_formula_dnf: int_formula_dnf(fmla),  top: Top,  intformless: (left "<" right),  int_formula_ind: int_formula_ind,  satisfies-poly-constraints: satisfies-poly-constraints(f;X),  int_term_to_ipoly: int_term_to_ipoly(t),  itermSubtract: left (-) right,  int_term_ind: int_term_ind,  itermAdd: left (+) right,  itermConstant: "const",  iff: P ⇐⇒ Q,  and: P ∧ Q,  uiff: uiff(P;Q),  uimplies: b supposing a,  iPolynomial: iPolynomial(),  rev_implies: P ⇐ Q,  subtype_rel: A ⊆r B,  polynomial-constraints: polynomial-constraints(),  intformle: left "≤" right,  intformeq: left "=" right,  intformand: left "∧" right,  int_formula_prop: int_formula_prop(f;fmla),  intformor: left "or" right,  intformimplies: left "=>" right,  intformnot: "¬"form,  guard: {T},  iMonomial: iMonomial(),  int_nzero: ℤ-o,  true: True,  nequal: a ≠ b ∈ T ,  not: ¬A,  sq_type: SQType(T),  false: False,  sorted: sorted(L),  int_seg: {i..j-},  sq_stable: SqStable(P),  lelt: i ≤ j < k,  squash: ↓T,  exists: ∃x:A. B[x],  le: A ≤ B,  less_than': less_than'(a;b),  subtract: n - m,  const-poly: const-poly(n),  int_term_value: int_term_value(f;t),  itermMinus: "-"num,  nat_plus: ℕ+,  less_than: a < b,  decidable: Dec(P),  or: P ∨ Q,  l_exists: (∃x∈L. P[x]),  l_all: (∀x∈L.P[x])
Lemmas referenced :  int_formula-induction,  all_wf,  iff_wf,  int_formula_prop_wf,  l_exists_wf,  polynomial-constraints_wf,  int_formula_dnf_wf,  satisfies-poly-constraints_wf,  l_member_wf,  int_formula_wf,  int_formula_prop_less_lemma,  l_all_nil_iff,  l_all_single,  iPolynomial_wf,  int_term_to_ipoly_wf,  itermSubtract_wf,  itermAdd_wf,  itermConstant_wf,  le_wf,  int_term_value_wf,  ipolynomial-term_wf,  equal_wf,  l_all_wf_nil,  l_all_wf,  cons_wf,  nil_wf,  less_than_wf,  true_wf,  l_exists_single,  subtype_rel_product,  list_wf,  subtype_rel_list,  subtype_rel_self,  int_term_wf,  int_formula_prop_le_lemma,  int_formula_prop_eq_lemma,  equal-wf-T-base,  int_formula_prop_and_lemma,  int_formula_prop_or_lemma,  int_formual_prop_imp_lemma,  int_formula_prop_not_lemma,  add_ipoly-sq,  minus-poly_wf,  add_ipoly_wf,  iMonomial_wf,  subtype_base_sq,  int_subtype_base,  equal-wf-base,  nequal_wf,  le_weakening2,  select_wf,  sq_stable__le,  less_than_transitivity2,  length_wf,  length_of_nil_lemma,  less_than_transitivity1,  less_than_irreflexivity,  int_seg_wf,  sorted_wf,  length_of_cons_lemma,  less-iff-le,  add_functionality_wrt_le,  add-associates,  zero-add,  add-swap,  add-commutes,  le-add-cancel2,  imonomial-less_wf,  minus-one-mul,  one-mul,  add-mul-special,  two-mul,  mul-distributes-right,  zero-mul,  minus-zero,  add-zero,  omega-shadow,  int_seg_properties,  squash_wf,  int_term_value_functionality,  add-ipoly_wf1,  add-ipoly_wf,  const-poly_wf,  add-ipoly-equiv,  iff_weakening_equal,  itermMinus_wf,  add_functionality_wrt_eq,  minus-poly-equiv,  minus_functionality_wrt_eq,  int_term_polynomial,  const-poly-value,  minus-add,  add-is-int-iff,  minus-is-int-iff,  subtract_wf,  le_reflexive,  minus-one-mul-top,  not-le-2,  mul-distributes,  mul-associates,  le-add-cancel,  not-lt-2,  minus-minus,  mul-commutes,  le-add-cancel-alt,  decidable__le,  decidable__lt,  int_term_value_minus_lemma,  itermMinus_functionality,  and-poly-constraints_wf,  satisfies-and-poly-constraints,  or_wf,  l_exists_append,  append_wf,  negate-poly-constraints_wf,  not_wf,  satisfies-negate-poly-constraints,  decidable__exists_int_seg,  decidable__and2,  decidable__all_int_seg,  decidable__equal_int,  not-l_exists
Rules used in proof :  cut,  introduction,  extract_by_obid,  sqequalHypSubstitution,  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isectElimination,  thin,  sqequalRule,  lambdaEquality,  functionEquality,  intEquality,  functionExtensionality,  applyEquality,  hypothesisEquality,  hypothesis,  setElimination,  rename,  setEquality,  independent_functionElimination,  lambdaFormation,  dependent_functionElimination,  isect_memberEquality,  voidElimination,  voidEquality,  addLevel,  productElimination,  independent_pairFormation,  impliesFunctionality,  independent_isectElimination,  natural_numberEquality,  andLevelFunctionality,  productEquality,  independent_pairEquality,  because_Cache,  baseClosed,  dependent_set_memberEquality,  instantiate,  cumulativity,  equalityTransitivity,  equalitySymmetry,  imageMemberEquality,  imageElimination,  dependent_pairFormation,  promote_hyp,  addEquality,  universeEquality,  minusEquality,  sqequalIntensionalEquality,  multiplyEquality,  baseApply,  closedConclusion,  levelHypothesis,  unionElimination,  inlFormation,  inrFormation,  impliesLevelFunctionality,  orFunctionality

Latex:
\mforall{}fmla:int\_formula().  \mforall{}f:\mBbbZ{}  {}\mrightarrow{}  \mBbbZ{}.
    (int\_formula\_prop(f;fmla)  \mLeftarrow{}{}\mRightarrow{}  (\mexists{}X\mmember{}int\_formula\_dnf(fmla).  satisfies-poly-constraints(f;X)))



Date html generated: 2017_09_29-PM-05_56_01
Last ObjectModification: 2017_07_26-PM-01_44_42

Theory : omega


Home Index