Add rocq-spatial-algebra.0.1.0 and rocq-robust-predicates.0.1.0 - #3829
Conversation
proux01
left a comment
There was a problem hiding this comment.
A few comments but otherwise LGTM.
| @@ -0,0 +1,75 @@ | |||
| opam-version: "2.0" | |||
| synopsis: "Machine-checked robust binary64 geometric predicates, sound vs. exact arithmetic" | |||
There was a problem hiding this comment.
geometric seems like a very important keyword here, maybe it should appear somewhere in the name. I mean, robust-predicates seems a bit overly generic.
| @@ -0,0 +1,75 @@ | |||
| opam-version: "2.0" | |||
| synopsis: "Machine-checked robust binary64 geometric predicates, sound vs. exact arithmetic" | |||
| description: """ | |||
There was a problem hiding this comment.
Should this say anything about JTS? (I'm not sure how important the link is)
| dev-repo: "git+https://github.com/grootstebozewolf/NetTopologySuite.Proofs.git" | ||
|
|
||
| depends: [ | ||
| "ocaml" |
There was a problem hiding this comment.
Does this really need ocaml? I don't see any ml code in the tarball.
| standard classical-reals + functional-extensionality used throughout the | ||
| corpus (see `make`'s `Print Assumptions` output). | ||
| """ | ||
| maintainer: "https://github.com/grootstebozewolf/NetTopologySuite.Proofs/issues" |
There was a problem hiding this comment.
The maintainer OPAM field is the maintainer of the package (so yourself as the one opening this PR I guess).
|
Thanks for the review — all four are useful. Status:
Both of the above are pushed for Name — agreed, renaming to JTS — I'd rather leave it out, if you're happy with that. The package is standalone Rocq with no JTS dependency, and someone installing it needs nothing about the Java libraries; |
|
Pushed — all three actionable comments are addressed, and the branch now holds exactly two files. Renamed to
Re-verified against the new tarball, not a working tree: extracts and On JTS — I've left it out. Thinking it through, the link is provenance for the corpus rather than a fact about either package: neither ships JTS code nor depends on it, and someone installing a Rocq library shouldn't need to care which Java ecosystem prompted the proofs. Thanks for the review — the |
Two small, self-contained Rocq libraries extracted from the
NetTopologySuite.Proofs
corpus (BSD-3-Clause). First release of either package.
rocq-spatial-algebra.0.1.0DE-9IM intersection-matrix algebra plus integer orientation-determinant bounds.
Two modules, Stdlib-only, no axioms —
Print Assumptionsreports Closedunder the global context for everything it exports.
rocq-robust-geometric-predicates.0.1.0Machine-checked robust binary64 geometric predicates, proven sound against exact
arithmetic: exact
orient2dsign via an error-free expansion, an adaptivefilter with expansion fallback, and integer-coordinate overflow bounds. Axiom
footprint is
functional_extensionality_depandClassical_Prop.classic, bothreported by
Print Assumptions.It depends on
coq-flocqrather than arocq--named Flocq because none existsyet; 4.2.2 is the first Flocq implementing the Rocq standard library, so the
dependency is Rocq-native in substance even though the package name is not. A
short note to that effect is in the
depends:block so it doesn't read as anoversight.
Checks run before submitting
Both packages, from the released tarballs rather than a working tree:
makeclean with no corpus present — self-containedopam lint→ PassedPrint Assumptionsoutput matches the axiom claims abovesha256assets re-verified against the tarballs;sha512in theurlblocks computed from the same filesTested on Rocq 9.1.1 with Flocq 4.2.2. The declared floor is
>= 9.2becausethat is what the project's CI builds — 9.1 demonstrably works, and if reach
matters I would rather earn it with a CI job and a
+rocq9.1version than widena bound I do not test. The upper bound is
< 9.3~since 9.3 is not yetreleased.
Happy to adjust naming, bounds or metadata to house style — this is a first
submission and I would rather match your conventions than argue for mine.