Constructor comparison is exposed for ordinary-kernel literal replay.
Equations
- One or more equations did not get rendered due to their size.
- Hex.instDecidableEqEndpoint Hex.Endpoint.negInf Hex.Endpoint.negInf = isTrue ⋯
- Hex.instDecidableEqEndpoint Hex.Endpoint.posInf Hex.Endpoint.posInf = isTrue ⋯
- Hex.instDecidableEqEndpoint Hex.Endpoint.negInf (Hex.Endpoint.finite value) = isFalse ⋯
- Hex.instDecidableEqEndpoint Hex.Endpoint.negInf Hex.Endpoint.posInf = isFalse ⋯
- Hex.instDecidableEqEndpoint (Hex.Endpoint.finite value) Hex.Endpoint.negInf = isFalse ⋯
- Hex.instDecidableEqEndpoint (Hex.Endpoint.finite value) Hex.Endpoint.posInf = isFalse ⋯
- Hex.instDecidableEqEndpoint Hex.Endpoint.posInf Hex.Endpoint.negInf = isFalse ⋯
- Hex.instDecidableEqEndpoint Hex.Endpoint.posInf (Hex.Endpoint.finite value) = isFalse ⋯
Exact finite comparison and evaluation signs. Endpoint values may belong to an ordered extension of the coefficient domain, as for integer/dyadic queries.
- compare : E → E → Int
Instances For
Compare and evaluate finite endpoints using a supplied coefficient sign.
Equations
- Hex.EndpointSigns.ofSign sign = { compare := fun (a b : E) => sign (a - b), evalSign := fun (p : Hex.DensePoly E) (a : E) => sign (p.eval a) }
Instances For
Equations
- Hex.Endpoint.lt endpointSigns Hex.Endpoint.negInf (Hex.Endpoint.finite value) = true
- Hex.Endpoint.lt endpointSigns Hex.Endpoint.negInf Hex.Endpoint.posInf = true
- Hex.Endpoint.lt endpointSigns (Hex.Endpoint.finite value) Hex.Endpoint.posInf = true
- Hex.Endpoint.lt endpointSigns (Hex.Endpoint.finite a) (Hex.Endpoint.finite b) = decide (endpointSigns.compare a b < 0)
- Hex.Endpoint.lt endpointSigns x✝¹ x✝ = false
Instances For
Equations
- Hex.Endpoint.signAt sign endpointSigns p Hex.Endpoint.negInf = sign p.leadingCoeff * if p.natDegree % 2 = 1 then -1 else 1
- Hex.Endpoint.signAt sign endpointSigns p (Hex.Endpoint.finite a) = endpointSigns.evalSign p a
- Hex.Endpoint.signAt sign endpointSigns p Hex.Endpoint.posInf = sign p.leadingCoeff
Instances For
Equations
- Hex.Endpoint.nonvanishing endpointSigns p (Hex.Endpoint.finite a) = (endpointSigns.evalSign p a != 0)
- Hex.Endpoint.nonvanishing endpointSigns p x✝ = true
Instances For
Literal inputs/context and finite query evidence. Ctx is the caller's full
literal context data, not a hash. A derivative-chain replay proves the
squarefree guard without running a gcd search in the checker.
- context : Ctx
- head : DensePoly D
- queryPoly : DensePoly D
- lower : Endpoint E
- upper : Endpoint E
- squarefree : SignedRemainderChain D
- remainders : SignedRemainderChain D
- lowerVariations : Nat
- upperVariations : Nat
- value : Int
Instances For
Equations
- One or more equations did not get rendered due to their size.
A nonzero constant terminal gcd is the squarefree criterion; its stored leading coefficient need not be literal one.
Instances For
Exact signs of a literal chain at a finite or infinite endpoint.
Equations
- Hex.TarskiCertificate.signs sign endpointSigns chain endpoint = Hex.Array.map' (fun (p : Hex.DensePoly D) => Hex.Endpoint.signAt sign endpointSigns p endpoint) chain
Instances For
Nonzero input, strictly ordered endpoints and finite endpoint nonvanishing. These guards precede all constant and zero-query shortcuts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Attach exact endpoint signs and variations to supplied producer chains. This is shared by ordinary and prepared-domain frontends.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Produce a finite query certificate using the one shared signed-remainder
kernel. The normalizer is a total positive-content backend; field callers may
use SignedRemainderChain.normalizeId. No root search or isolation is performed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The query value of the shared producer. Negative values are retained.
Equations
- Hex.TarskiCertificate.query sign endpointSigns normalize p f a b = Option.map Hex.TarskiCertificate.value (Hex.TarskiCertificate.certify sign endpointSigns normalize () p f a b)
Instances For
Bind every literal query input and claimed value before checking evidence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The domain part of finite replay, independent of the query polynomial. This checks supplied witnesses and never invokes a producer or gcd search.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The query-dependent part of finite replay. Domain and literal input bindings are checked separately by the complete checker.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Check full literal bindings, both chain replays, exact endpoint signs and variations. Arithmetic equations use zero differences; input and context bindings use literal equality. The checker never calls a producer.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Expanded finite replay contract. Factoring the domain and query checks preserves the Boolean result for every supplied certificate.
Exact dyadic endpoints for integer coefficients.
Equations
- Hex.EndpointSigns.intDyadic = { compare := fun (a b : Dyadic) => Hex.dyadicSign (a - b), evalSign := fun (p : Hex.DensePoly Int) (a : Dyadic) => Hex.dyadicSign (Hex.ZPoly.evalDyadic p a) }
Instances For
Positive integer content normalization; the producer calls it only on a nonzero remainder. It never changes the input head or makes entries monic.
Equations
Instances For
The signed sum at roots in the open interval, with nonzero squarefree input
and root-free endpoints. Invalid mathematical inputs return none.
Equations
Instances For
The integer/dyadic specialization of the shared literal replay.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Hex.IntTarskiCertificate.check p f I value cert = Hex.TarskiCertificate.check Int.sign Hex.EndpointSigns.intDyadic () p f (Hex.Endpoint.finite I.lower) (Hex.Endpoint.finite I.upper) value cert