Universal option fold that does not Boolean-short-circuit a false value.
Equations
- Hex.RCF.OptionFold.all f [] = some true
- Hex.RCF.OptionFold.all f (x_1 :: xs) = do let head ← f x_1 let tail ← Hex.RCF.OptionFold.all f xs pure (head && tail)
Instances For
Existential option fold that does not Boolean-short-circuit a true value.
Equations
- Hex.RCF.OptionFold.any f [] = some false
- Hex.RCF.OptionFold.any f (x_1 :: xs) = do let head ← f x_1 let tail ← Hex.RCF.OptionFold.any f xs pure (head || tail)
Instances For
Universal fold over an array.
Equations
Instances For
Existential fold over an array.
Equations
Instances For
Filter irrelevant entries before a strict universal fold.
Equations
- Hex.RCF.OptionFold.allWhereArray xs relevant f = Hex.RCF.OptionFold.all f (List.filter relevant xs.toList)
Instances For
Filter irrelevant entries before a strict existential fold.
Equations
- Hex.RCF.OptionFold.anyWhereArray xs relevant f = Hex.RCF.OptionFold.any f (List.filter relevant xs.toList)
Instances For
Carrier and isolation data for a carrier with no real roots.
- carrier : CarrierCert
Certificate data for the proposed square-free carrier.
- isolations : IsolationCert
Proposed carrier isolation data. The root-free replay branch requires this array to contain no intervals.
Instances For
Full positive-root decomposition data. Endpoint comparisons are present exactly for bounded sentences.
- carrier : CarrierCert
Certificate data for the proposed square-free carrier.
- isolations : IsolationCert
Proposed carrier isolation data. Cell replay requires at least one interval.
- signs : SignMatrixCert
Common-root data used to compute atom signs on every cell.
- iocCmps : Option (IocCmps self.isolations.intervals.size)
Endpoint comparisons for bounded sentences, or
nonefor sentences over the whole real line.
Instances For
The four disjoint replay branches.
- emptyIoc : Certificate
Equal or reversed bounded endpoints.
- constants : Certificate
A formula containing no nonconstant atom polynomial.
- noRoots
(data : DecompCert)
: Certificate
A checked carrier with no real roots.
- cells
(data : CellsCert)
: Certificate
A checked carrier with at least one real root.
Instances For
Evaluate one open cell without constructing common-root packages.
Equations
- s.evalOpen? isolations cut = Hex.RCF.Formula.evalSigns (fun (p : Hex.ZPoly) => Hex.RCF.openCellSign? p isolations cut) s.formula
Instances For
Replay the carrier-free constant branch. Nonempty bounded domains are
checked here. Empty domains belong to Certificate.emptyIoc.
Equations
- (Hex.RCF.Sentence.forallReal formula).replayConstants? = if (Hex.RCF.Sentence.forallReal formula).polys.isEmpty = true then formula.evalConstants? else none
- (Hex.RCF.Sentence.existsReal formula).replayConstants? = if (Hex.RCF.Sentence.existsReal formula).polys.isEmpty = true then formula.evalConstants? else none
- (Hex.RCF.Sentence.forallIoc a b formula).replayConstants? = if (Hex.RCF.Sentence.forallIoc a b formula).polys.isEmpty = true then if a < b then formula.evalConstants? else none else none
- (Hex.RCF.Sentence.existsIoc a b formula).replayConstants? = if (Hex.RCF.Sentence.existsIoc a b formula).polys.isEmpty = true then if a < b then formula.evalConstants? else none else none
Instances For
Replay a checked decomposition whose carrier has no real roots.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Three-valued certificate replay.
Equations
- Hex.RCF.Certificate.replay? (Hex.RCF.Sentence.forallIoc a b φ) Hex.RCF.Certificate.emptyIoc = if a < b then none else some true
- Hex.RCF.Certificate.replay? (Hex.RCF.Sentence.existsIoc a b φ) Hex.RCF.Certificate.emptyIoc = if a < b then none else some false
- Hex.RCF.Certificate.replay? s Hex.RCF.Certificate.emptyIoc = none
- Hex.RCF.Certificate.replay? s Hex.RCF.Certificate.constants = s.replayConstants?
- Hex.RCF.Certificate.replay? s (Hex.RCF.Certificate.noRoots data) = s.replayNoRoots? data
- Hex.RCF.Certificate.replay? s (Hex.RCF.Certificate.cells data) = s.replayCells? data
Instances For
The kernel boundary accepts only a fully replayed true verdict.
Equations
- Hex.RCF.Certificate.check s cert = (Hex.RCF.Certificate.replay? s cert == some true)