From 23896f8596c32e52ed0da687a796e3c0ec3e593b Mon Sep 17 00:00:00 2001 From: Andres Erbsen Date: Mon, 6 Oct 2025 19:01:46 -0400 Subject: [PATCH 1/4] update fiat-crypto and dependencies to Sep 2025 --- .../coq-bedrock2/coq-bedrock2.0.0.9/opam | 40 +++++++++++++++++ .../coq-coqutil/coq-coqutil.0.0.7/opam | 40 +++++++++++++++++ .../coq-fiat-crypto.0.1.6/opam | 45 +++++++++++++++++++ .../coq-kami/coq-kami.0.0.4-rv32i/opam | 25 +++++++++++ .../packages/coq-riscv/coq-riscv.0.0.6/opam | 24 ++++++++++ .../coq-rupicola/coq-rupicola.0.0.11/opam | 28 ++++++++++++ 6 files changed, 202 insertions(+) create mode 100644 released/packages/coq-bedrock2/coq-bedrock2.0.0.9/opam create mode 100644 released/packages/coq-coqutil/coq-coqutil.0.0.7/opam create mode 100644 released/packages/coq-fiat-crypto/coq-fiat-crypto.0.1.6/opam create mode 100644 released/packages/coq-kami/coq-kami.0.0.4-rv32i/opam create mode 100644 released/packages/coq-riscv/coq-riscv.0.0.6/opam create mode 100644 released/packages/coq-rupicola/coq-rupicola.0.0.11/opam diff --git a/released/packages/coq-bedrock2/coq-bedrock2.0.0.9/opam b/released/packages/coq-bedrock2/coq-bedrock2.0.0.9/opam new file mode 100644 index 0000000000..86b337c72b --- /dev/null +++ b/released/packages/coq-bedrock2/coq-bedrock2.0.0.9/opam @@ -0,0 +1,40 @@ +opam-version: "2.0" +authors: [ + "Massachusetts Institute of Technology" + "Kevix" + "SiFive" +] +maintainer: "Jason Gross " +homepage: "https://github.com/mit-plv/bedrock2" +bug-reports: "https://github.com/mit-plv/bedrock2/issues" +license: "MIT" +build: [ + [make "-j%{jobs}%" "EXTERNAL_DEPENDENCIES=1" "bedrock2_ex"] +] +install: [make "EXTERNAL_DEPENDENCIES=1" "install_bedrock2"] +run-test: [ + [make "-j%{jobs}%" "-C" "bedrock2" "EXTERNAL_DEPENDENCIES=1" "test"] +] +depends: [ + "conf-findutils" {build} + "conf-python-3" {build & with-test} + "coq" {>= "8.18~"} + "coq-coqutil" {= "0.0.6"} + "zarith" {>= "1.11"} +] +dev-repo: "git+https://github.com/mit-plv/bedrock2.git" +synopsis: "A work-in-progress language and compiler for verified low-level programming" +description: """ +bedrock2 is a low-level systems programming language. This language is +equipped with a simple program logic for proving correctness of the +programs. A verified compiler targeting RISC-V from this language +exists in the coq-bedrock2-compiler package on opam. + +The project has similar goals as bedrock, but uses a different design. +No code is shared between bedrock and bedrock2. +""" +tags: ["logpath:bedrock2"] +url { + src: "https://github.com/mit-plv/bedrock2/archive/refs/tags/v0.0.9.tar.gz" + checksum: "sha512=6dec4778d54e4276aa81f1252759eb138dfe59ab413384b9a3729dc6c0b5f125aa80a23dc55770369c69f455c14388277e7f5bf3c88b141d8c493cd2d3de92a0" +} diff --git a/released/packages/coq-coqutil/coq-coqutil.0.0.7/opam b/released/packages/coq-coqutil/coq-coqutil.0.0.7/opam new file mode 100644 index 0000000000..a36410fb7c --- /dev/null +++ b/released/packages/coq-coqutil/coq-coqutil.0.0.7/opam @@ -0,0 +1,40 @@ +opam-version: "2.0" +authors: [ + "Massachusetts Institute of Technology" +] +maintainer: "Jason Gross " +homepage: "https://github.com/mit-plv/coqutil" +bug-reports: "https://github.com/mit-plv/coqutil/issues" +license: "MIT" +build: [ + [make "-j%{jobs}%"] +] +install: [make "install"] +depends: [ + "conf-findutils" {build} + "coq" {>= "8.18~"} +] +conflict-class: [ + "coq-coqutil" +] +dev-repo: "git+https://github.com/mit-plv/coqutil.git" +synopsis: "Coq library for tactics, basic definitions, sets, maps" +description: """ +### coqutil -- Various Coq Utilities + +Contents: +* [Datatypes](https://github.com/mit-plv/coqutil/tree/master/src/coqutil/Datatypes): Some utilities for existing datatypes, and new datatypes. +* [Decidable](https://github.com/mit-plv/coqutil/blob/master/src/coqutil/Decidable.v): `BoolSpec`-based decidability typeclasses. Allows one to write `if MyType_eqb a b then ... else ...` where `MyType_eqb a b` returns a `bool`, instead of writing `if MyType_eq_dec a b then ... else ...` where `MyType_eq_dec a b` returns a `sumbool`, while still getting `a = b` and `a <> b` as hypotheses (as opposed to `MyType_eqb a b = true` and `MyType_eqb a b = false`) after destructing the `if` (need to use [`destr`](https://github.com/mit-plv/coqutil/blob/master/src/coqutil/Tactics/destr.v) instead of `destruct`). So one gets the benefits of `Sumbool` without getting its disadvantage of having to carry around proof terms, which can cause a blow-up under reduction if one is not careful. +* [Map](https://github.com/mit-plv/coqutil/tree/master/src/coqutil/Map): A typeclass based map library allowing one to abstract over the concrete implementation of maps. The implementations have to be extensional, which excludes certain efficient implementations, but simplifies proofs, because one can `replace mapA with mapB` if one can prove that `mapA` and `mapB` have the same contents. Comes with a [solver](https://github.com/mit-plv/coqutil/blob/master/src/coqutil/Map/Solver.v) which works reasonably fast on most map goals we have encountered so far. +* [Tactics](https://github.com/mit-plv/coqutil/tree/master/src/coqutil/Tactics): A collection of useful general-purpose tactics. +* [Word](https://github.com/mit-plv/coqutil/tree/master/src/coqutil/Word): Fixed width words for any width, in the same typeclass based style as the map library. Designed for the case where all words have the same (potentially abstract) bit width. Therefore, it does not provide functions to concatenate and split words, which is better addressed by [bbv](https://github.com/mit-plv/bbv/). +* [Z](https://github.com/mit-plv/coqutil/tree/master/src/coqutil/Z): Utilities to work with the `Z` type from Coq's standard library, including a tactic to prove `Z` equalities by splitting the equality into equalities on bit index ranges, a tactic to make `lia` capable of reasoning about goals with division and modulo, and a tactic to simplify expressions containing nested occurrences of `mod`, and more misc utilities. +* Various macros, notations, and desirable default settings. + +Each feature is intended to be as minimal and as independent of the other features as possible, so that users can pick just what they need. +""" +tags: ["logpath:coqutil"] +url { + src: "https://github.com/mit-plv/coqutil/archive/refs/tags/v0.0.7.tar.gz" + checksum: "sha512=7800c6403de65d2d090b69a5161ff16916878f06fd08627c70dfd899db94850353d1e0c6dad119ebbe7f4e72148c8b7ad834471e93f1822b232faeded512bb68" +} diff --git a/released/packages/coq-fiat-crypto/coq-fiat-crypto.0.1.6/opam b/released/packages/coq-fiat-crypto/coq-fiat-crypto.0.1.6/opam new file mode 100644 index 0000000000..fb030f77db --- /dev/null +++ b/released/packages/coq-fiat-crypto/coq-fiat-crypto.0.1.6/opam @@ -0,0 +1,45 @@ +opam-version: "2.0" +authors: [ + "Andres Erbsen " + "Google Inc." + "Jade Philipoom " + "Massachusetts Institute of Technology" + "Zoe Paraskevopoulou " +] +maintainer: "Jason Gross " +homepage: "https://github.com/mit-plv/fiat-crypto" +bug-reports: "https://github.com/mit-plv/fiat-crypto/issues" +license: "MIT OR Apache-2.0 OR BSD-1-Clause" +build: [ + [make "-j%{jobs}%" "EXTERNAL_DEPENDENCIES=1" "SKIP_COQSCRIPTS_INCLUDE=1" "coq" "standalone-ocaml"] +] +install: [ + [make "EXTERNAL_DEPENDENCIES=1" "SKIP_COQSCRIPTS_INCLUDE=1" "BINDIR=%{bin}%" "install" "install-standalone-ocaml"] + ["etc/test-run-fiat-crypto-silent.sh" "%{bin}%/fiat_crypto"] {with-test} + ["etc/test-run-fiat-crypto-silent.sh" "fiat_crypto"] {with-test} +] +depends: [ + "conf-findutils" {build} + "ocaml" {build & >= "4.08~"} + "ocamlfind" {build} + "coq" {>= "8.18~"} + "coq-coqprime" {>= "1.2.0"} + "coq-rewriter" {>= "0.0.6"} + "coq-rupicola" {= "0.0.10"} + "coq-bedrock2-compiler" {= "0.0.8"} +] +conflict-class: [ + "coq-fiat-crypto" +] +dev-repo: "git+https://github.com/mit-plv/fiat-crypto.git" +synopsis: "Cryptographic Primitive Code Generation by Fiat" +description: """ +Coq code and proofs for a command-line binary that can synthesize proven-correct +big-integer modular field arithmetic operations for cryptography. +Target languages include C, Rust, Zig, Go, and bedrock2. +""" +tags: ["logpath:Crypto"] +url { + src: "https://github.com/mit-plv/fiat-crypto/archive/refs/tags/v0.1.6.tar.gz" + checksum: "sha512=187f30e4bbb53636cd261e50ae1856a15cb9820b59b1a126ff0791567d896a29b6c93eb93dbf9cd1af5cae6c47723cedc8dfa175769eebb9cf363e27e5decbe6" +} diff --git a/released/packages/coq-kami/coq-kami.0.0.4-rv32i/opam b/released/packages/coq-kami/coq-kami.0.0.4-rv32i/opam new file mode 100644 index 0000000000..89a552c929 --- /dev/null +++ b/released/packages/coq-kami/coq-kami.0.0.4-rv32i/opam @@ -0,0 +1,25 @@ +opam-version: "2.0" +authors: [ + "Massachusetts Institute of Technology" + "Kevix" + "SiFive" +] +maintainer: "Jason Gross " +homepage: "https://github.com/mit-plv/kami" +bug-reports: "https://github.com/mit-plv/kami/issues" +license: "MIT" +build: [ + [make "-j%{jobs}%" "EXTERNAL_DEPENDENCIES=1" "coq"] +] +install: [make "EXTERNAL_DEPENDENCIES=1" "install"] +depends: [ + "coq" {>= "8.15~"} + "coq-riscv" {= "0.0.4"} +] +dev-repo: "git+https://github.com/mit-plv/kami.git" +synopsis: "A work-in-progress language and compiler for verified low-level programming" +tags: ["logpath:kami"] +url { + src: "https://github.com/mit-plv/kami/archive/refs/tags/v0.0.3.tar.gz" + checksum: "sha512=c76f047b4ade255ce22d1a25a702e69a9ae213e50b7cf3f754c32a80e3fb38ec0f4dda6217e9f34176033f6079efb0ab91b74d3e96f377c65f870f03b8d43a9d" +} diff --git a/released/packages/coq-riscv/coq-riscv.0.0.6/opam b/released/packages/coq-riscv/coq-riscv.0.0.6/opam new file mode 100644 index 0000000000..9db1e4b21a --- /dev/null +++ b/released/packages/coq-riscv/coq-riscv.0.0.6/opam @@ -0,0 +1,24 @@ +opam-version: "2.0" +authors: [ + "Massachusetts Institute of Technology" +] +maintainer: "Jason Gross " +homepage: "https://github.com/mit-plv/riscv-coq" +bug-reports: "https://github.com/mit-plv/riscv-coq/issues" +license: "BSD-3-Clause" +build: [ + [make "-j%{jobs}%" "EXTERNAL_DEPENDENCIES=1" "all"] +] +install: [make "EXTERNAL_DEPENDENCIES=1" "install"] +depends: [ + "coq" {>= "8.18~"} + "coq-coqutil" {>= "0.0.3" & <= "0.0.6"} + "coq-record-update" {>= "0.3.0"} +] +dev-repo: "git+https://github.com/mit-plv/riscv-coq.git" +synopsis: "RISC-V Specification in Coq, somewhat experimental" +tags: ["logpath:riscv"] +url { + src: "https://github.com/mit-plv/riscv-coq/archive/refs/tags/v0.0.6.tar.gz" + checksum: "sha512=72516ea986d1e77822543c7ac720f2c5c8e998425bc25043d6357b0133306369f69086347e2dad776df3f7583a6e97595a2c9720ea22c1d07b3175c68f9d2dcf" +} diff --git a/released/packages/coq-rupicola/coq-rupicola.0.0.11/opam b/released/packages/coq-rupicola/coq-rupicola.0.0.11/opam new file mode 100644 index 0000000000..c3607a8d4f --- /dev/null +++ b/released/packages/coq-rupicola/coq-rupicola.0.0.11/opam @@ -0,0 +1,28 @@ +opam-version: "2.0" +authors: [ + "Clément Pit-Claudel " + "Jade Philipoom" + "Dustin Jamner" + "Andres Erbsen" + "Adam Chlipala" +] +maintainer: "Jason Gross " +homepage: "https://github.com/mit-plv/rupicola" +bug-reports: "https://github.com/mit-plv/rupicola/issues" +license: "MIT" +build: [ + [make "-j%{jobs}%" "EXTERNAL_DEPENDENCIES=1" "all"] +] +install: [make "EXTERNAL_DEPENDENCIES=1" "install"] +depends: [ + "conf-findutils" {build} + "coq" {>= "8.18~"} + "coq-bedrock2" {= "0.0.8"} +] +dev-repo: "git+https://github.com/mit-plv/rupicola.git" +synopsis: "Gallina to imperative code compilation, currently in design phase" +tags: ["logpath:Rupicola"] +url { + src: "https://github.com/mit-plv/rupicola/archive/refs/tags/v0.0.11.tar.gz" + checksum: "sha512=a7acff42e53572f8663834b5a50607fb19a8d5ac8d50358fe9485d7357373d1e953fe42c0d68f8488030e4298b5d055629d522b70ed3d69f7e3696685b547248" +} From 9810917065f8f62ff51555200657b88aca2ac67c Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Mon, 6 Oct 2025 17:02:25 -0700 Subject: [PATCH 2/4] Update released/packages/coq-bedrock2/coq-bedrock2.0.0.9/opam --- released/packages/coq-bedrock2/coq-bedrock2.0.0.9/opam | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/released/packages/coq-bedrock2/coq-bedrock2.0.0.9/opam b/released/packages/coq-bedrock2/coq-bedrock2.0.0.9/opam index 86b337c72b..5290043e64 100644 --- a/released/packages/coq-bedrock2/coq-bedrock2.0.0.9/opam +++ b/released/packages/coq-bedrock2/coq-bedrock2.0.0.9/opam @@ -19,7 +19,7 @@ depends: [ "conf-findutils" {build} "conf-python-3" {build & with-test} "coq" {>= "8.18~"} - "coq-coqutil" {= "0.0.6"} + "coq-coqutil" {= "0.0.7"} "zarith" {>= "1.11"} ] dev-repo: "git+https://github.com/mit-plv/bedrock2.git" From a4f264b72856eb18aa1cf7e86bd6df44f982be9c Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Mon, 6 Oct 2025 17:05:01 -0700 Subject: [PATCH 3/4] Apply suggestions from code review --- released/packages/coq-fiat-crypto/coq-fiat-crypto.0.1.6/opam | 4 ++-- released/packages/coq-kami/coq-kami.0.0.4-rv32i/opam | 2 +- released/packages/coq-riscv/coq-riscv.0.0.6/opam | 2 +- released/packages/coq-rupicola/coq-rupicola.0.0.11/opam | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/released/packages/coq-fiat-crypto/coq-fiat-crypto.0.1.6/opam b/released/packages/coq-fiat-crypto/coq-fiat-crypto.0.1.6/opam index fb030f77db..73fa9b5427 100644 --- a/released/packages/coq-fiat-crypto/coq-fiat-crypto.0.1.6/opam +++ b/released/packages/coq-fiat-crypto/coq-fiat-crypto.0.1.6/opam @@ -25,8 +25,8 @@ depends: [ "coq" {>= "8.18~"} "coq-coqprime" {>= "1.2.0"} "coq-rewriter" {>= "0.0.6"} - "coq-rupicola" {= "0.0.10"} - "coq-bedrock2-compiler" {= "0.0.8"} + "coq-rupicola" {= "0.0.11"} + "coq-bedrock2-compiler" {= "0.0.9"} ] conflict-class: [ "coq-fiat-crypto" diff --git a/released/packages/coq-kami/coq-kami.0.0.4-rv32i/opam b/released/packages/coq-kami/coq-kami.0.0.4-rv32i/opam index 89a552c929..10e4981428 100644 --- a/released/packages/coq-kami/coq-kami.0.0.4-rv32i/opam +++ b/released/packages/coq-kami/coq-kami.0.0.4-rv32i/opam @@ -14,7 +14,7 @@ build: [ install: [make "EXTERNAL_DEPENDENCIES=1" "install"] depends: [ "coq" {>= "8.15~"} - "coq-riscv" {= "0.0.4"} + "coq-riscv" {= "0.0.6"} ] dev-repo: "git+https://github.com/mit-plv/kami.git" synopsis: "A work-in-progress language and compiler for verified low-level programming" diff --git a/released/packages/coq-riscv/coq-riscv.0.0.6/opam b/released/packages/coq-riscv/coq-riscv.0.0.6/opam index 9db1e4b21a..d501114fe6 100644 --- a/released/packages/coq-riscv/coq-riscv.0.0.6/opam +++ b/released/packages/coq-riscv/coq-riscv.0.0.6/opam @@ -12,7 +12,7 @@ build: [ install: [make "EXTERNAL_DEPENDENCIES=1" "install"] depends: [ "coq" {>= "8.18~"} - "coq-coqutil" {>= "0.0.3" & <= "0.0.6"} + "coq-coqutil" {>= "0.0.3" & <= "0.0.7"} "coq-record-update" {>= "0.3.0"} ] dev-repo: "git+https://github.com/mit-plv/riscv-coq.git" diff --git a/released/packages/coq-rupicola/coq-rupicola.0.0.11/opam b/released/packages/coq-rupicola/coq-rupicola.0.0.11/opam index c3607a8d4f..887c00793a 100644 --- a/released/packages/coq-rupicola/coq-rupicola.0.0.11/opam +++ b/released/packages/coq-rupicola/coq-rupicola.0.0.11/opam @@ -17,7 +17,7 @@ install: [make "EXTERNAL_DEPENDENCIES=1" "install"] depends: [ "conf-findutils" {build} "coq" {>= "8.18~"} - "coq-bedrock2" {= "0.0.8"} + "coq-bedrock2" {= "0.0.9"} ] dev-repo: "git+https://github.com/mit-plv/rupicola.git" synopsis: "Gallina to imperative code compilation, currently in design phase" From 66f2df3b39afd5234aff44bbbe85fedd99822d59 Mon Sep 17 00:00:00 2001 From: Andres Erbsen Date: Tue, 7 Oct 2025 15:41:54 -0400 Subject: [PATCH 4/4] bedrock2-compiler 0.0.6 --- .../coq-bedrock2-compiler.0.0.9/opam | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 released/packages/coq-bedrock2-compiler/coq-bedrock2-compiler.0.0.9/opam diff --git a/released/packages/coq-bedrock2-compiler/coq-bedrock2-compiler.0.0.9/opam b/released/packages/coq-bedrock2-compiler/coq-bedrock2-compiler.0.0.9/opam new file mode 100644 index 0000000000..805dea9cec --- /dev/null +++ b/released/packages/coq-bedrock2-compiler/coq-bedrock2-compiler.0.0.9/opam @@ -0,0 +1,38 @@ +opam-version: "2.0" +authors: [ + "Massachusetts Institute of Technology" + "Kevix" + "SiFive" +] +maintainer: "Jason Gross " +homepage: "https://github.com/mit-plv/bedrock2" +bug-reports: "https://github.com/mit-plv/bedrock2/issues" +license: "MIT" +build: [ + # No reason to build compiler_ex since there's no install_compiler_ex target; the install_compiler target installs only compiler_noex + [make "-j%{jobs}%" "EXTERNAL_DEPENDENCIES=1" "compiler_noex"] +] +install: [make "EXTERNAL_DEPENDENCIES=1" "install_compiler"] +depends: [ + "conf-findutils" {build} + "coq" {>= "8.20~"} + "coq-bedrock2" {= version} + "coq-riscv" {= "0.0.6"} + "zarith" {>= "1.11"} +] +dev-repo: "git+https://github.com/mit-plv/bedrock2.git" +synopsis: "A work-in-progress language and compiler for verified low-level programming (compiler part)" +description: """ +bedrock2 is a low-level systems programming language. This language is +equipped with a simple program logic for proving correctness of the +programs. This package includes a verified compiler targeting RISC-V +from this language. + +The project has similar goals as bedrock, but uses a different design. +No code is shared between bedrock and bedrock2. +""" +tags: ["logpath:bedrock2"] +url { + src: "https://github.com/mit-plv/bedrock2/archive/refs/tags/v0.0.9.tar.gz" + checksum: "sha512=6dec4778d54e4276aa81f1252759eb138dfe59ab413384b9a3729dc6c0b5f125aa80a23dc55770369c69f455c14388277e7f5bf3c88b141d8c493cd2d3de92a0" +}