Step
*
1
2
1
1
2
1
1
of Lemma
satisfies-negate-poly-constraint
1. eqs : iPolynomial() List
2. ineqs : iPolynomial() List
3. f : ℤ ⟶ ℤ
4. ∀L:polynomial-constraints() List
     ((∃Z∈accumulate (with value pcs and list item e):
           [<[], [minus-poly(add-ipoly(e;const-poly(1)))]> [<[], [add-ipoly(e;const-poly(-1))]> / pcs]]
          over list:
            eqs
          with starting value:
           L). satisfies-poly-constraints(f;Z))
     
⇐⇒ (∃e∈eqs. (0 ≤ int_term_value(f;ipolynomial-term(minus-poly(add-ipoly(e;const-poly(1))))))
         ∨ (0 ≤ int_term_value(f;ipolynomial-term(add-ipoly(e;const-poly(-1))))))
         ∨ (∃Z∈L. satisfies-poly-constraints(f;Z)))
5. [] ∈ iPolynomial() List
⊢ (∃Z∈ineqs. satisfies-poly-constraints(f;(λineq.<[], [minus-poly(add-ipoly(ineq;const-poly(1)))]>) Z))
⇐⇒ (∃ineq∈ineqs. 0 ≤ int_term_value(f;ipolynomial-term(minus-poly(add-ipoly(ineq;const-poly(1))))))
BY
{ (RepUR ``satisfies-poly-constraints`` 0 THEN (RWO "l_all_nil_iff l_all_single" 0 THENA Auto)) }
1
1. eqs : iPolynomial() List
2. ineqs : iPolynomial() List
3. f : ℤ ⟶ ℤ
4. ∀L:polynomial-constraints() List
     ((∃Z∈accumulate (with value pcs and list item e):
           [<[], [minus-poly(add-ipoly(e;const-poly(1)))]> [<[], [add-ipoly(e;const-poly(-1))]> / pcs]]
          over list:
            eqs
          with starting value:
           L). satisfies-poly-constraints(f;Z))
     
⇐⇒ (∃e∈eqs. (0 ≤ int_term_value(f;ipolynomial-term(minus-poly(add-ipoly(e;const-poly(1))))))
         ∨ (0 ≤ int_term_value(f;ipolynomial-term(add-ipoly(e;const-poly(-1))))))
         ∨ (∃Z∈L. satisfies-poly-constraints(f;Z)))
5. [] ∈ iPolynomial() List
⊢ (∃Z∈ineqs. True ∧ (0 ≤ int_term_value(f;ipolynomial-term(minus-poly(add-ipoly(Z;const-poly(1)))))))
⇐⇒ (∃ineq∈ineqs. 0 ≤ int_term_value(f;ipolynomial-term(minus-poly(add-ipoly(ineq;const-poly(1))))))
Latex:
Latex:
1.  eqs  :  iPolynomial()  List
2.  ineqs  :  iPolynomial()  List
3.  f  :  \mBbbZ{}  {}\mrightarrow{}  \mBbbZ{}
4.  \mforall{}L:polynomial-constraints()  List
          ((\mexists{}Z\mmember{}accumulate  (with  value  pcs  and  list  item  e):
                      [<[],  [minus-poly(add-ipoly(e;const-poly(1)))]>
                        [<[],  [add-ipoly(e;const-poly(-1))]>  /  pcs]]
                    over  list:
                        eqs
                    with  starting  value:
                      L).  satisfies-poly-constraints(f;Z))
          \mLeftarrow{}{}\mRightarrow{}  (\mexists{}e\mmember{}eqs.  (0  \mleq{}  int\_term\_value(f;ipolynomial-term(minus-poly(add-ipoly(e;const-poly(1))))))
                  \mvee{}  (0  \mleq{}  int\_term\_value(f;ipolynomial-term(add-ipoly(e;const-poly(-1))))))
                  \mvee{}  (\mexists{}Z\mmember{}L.  satisfies-poly-constraints(f;Z)))
5.  []  \mmember{}  iPolynomial()  List
\mvdash{}  (\mexists{}Z\mmember{}ineqs.  satisfies-poly-constraints(f;(\mlambda{}ineq.<[],  [minus-poly(add-ipoly(ineq;const-poly(1)))]>) 
                                                                                    Z))
\mLeftarrow{}{}\mRightarrow{}  (\mexists{}ineq\mmember{}ineqs.  0  \mleq{}  int\_term\_value(f;ipolynomial-term(minus-poly(add-ipoly(ineq;const-poly(1))))))
By
Latex:
(RepUR  ``satisfies-poly-constraints``  0  THEN  (RWO  "l\_all\_nil\_iff  l\_all\_single"  0  THENA  Auto))
Home
Index