Theory Hilbert10_to_Inequality
section ‹Hilbert's 10th Problem to Linear Inequality›
theory Hilbert10_to_Inequality
imports
Preliminaries_on_Polynomials_1
begin
definition hilbert10_problem :: "int mpoly ⇒ bool" where
"hilbert10_problem p = (∃ α. insertion α p = 0)"
text ‹A polynomial is positive, if every coefficient is positive.
Since the ‹@{const coeff}›-function of ‹'a mpoly› maps a coefficient
to every monomial, this means that positiveness is expressed as
@{term "coeff p m ≠ 0 ⟶ coeff p m > 0"} for monomials ‹m›.
However, this condition is equivalent to just demand @{term "coeff p m ≥ 0"}
for all ‹m›.
This is the reason why ‹positive polynomials› are defined in the same way
as one would define ‹non-negative polynomials›.›
definition positive_poly :: "'a :: linordered_idom mpoly ⇒ bool" where
"positive_poly p = (∀ m. coeff p m ≥ 0)"
definition positive_interpr :: "(var ⇒ 'a :: linordered_idom) ⇒ bool" where
"positive_interpr α = (∀ x. α x > 0)"
definition positive_poly_problem :: "'a :: linordered_idom mpoly ⇒ 'a mpoly ⇒ bool" where
"positive_poly p ⟹ positive_poly q ⟹ positive_poly_problem p q =
(∃ α. positive_interpr α ∧ insertion α p ≥ insertion α q)"