Documentation

HexRealRootsTheory.TarskiSoundness

theorem HexRealRootsTheory.Tarski.check_rootSum {D : Type u} {E : Type v} {Ctx : Type w} {R : Type u₁} [Zero D] [DecidableEq D] [One D] [Add D] [Sub D] [Mul D] [NatCast D] [DecidableEq E] [DecidableEq Ctx] [Field R] [DecidableEq R] [LinearOrder R] [IsStrictOrderedRing R] [IsRealClosed R] (f : D → R) (hz : ∀ (a : D), f a = 0 ↔ a = 0) (h1 : f 1 = 1) (ha : ∀ (a b : D), f (a + b) = f a + f b) (hs : ∀ (a b : D), f (a - b) = f a - f b) (hm : ∀ (a b : D), f (a * b) = f a * f b) (hnat : ∀ (n : ℕ), f ↑n = ↑n) (sign : D → ℤ) (hsign : ∀ (a : D), sign a = ↑(SignType.sign (f a))) (point : E → R) (ends : Hex.EndpointSigns D E) (hcompare : ∀ (a b : E), ends.compare a b = ↑(SignType.sign (point a - point b))) (heval : ∀ (p : Hex.DensePoly D) (a : E), ends.evalSign p a = ↑(SignType.sign (Polynomial.eval (point a) (HexPolyTheory.Interpret.interpret f hz p)))) (context : Ctx) (p q : Hex.DensePoly D) (a b : Hex.Endpoint E) (value : ℤ) (certificate : Hex.TarskiCertificate D E Ctx) (checked : Hex.TarskiCertificate.check sign ends context p q a b value certificate = true) :

Every accepted shared query certificate gives the sum of signs at the distinct roots in its open interval. Coefficient representations need only reflect zero and preserve the actual operations; endpoint representations may differ from coefficients. This includes infinite endpoints, constant heads, zero queries and common factors, with no producer-success premise.