{"id":14966283,"url":"https://github.com/bluerock-io/BRiCk","last_synced_at":"2025-05-02T22:30:56.525Z","repository":{"id":37414616,"uuid":"261261814","full_name":"bluerock-io/BRiCk","owner":"bluerock-io","description":"Formalization of C++ for verification purposes.","archived":false,"fork":false,"pushed_at":"2025-05-01T16:38:05.000Z","size":94230,"stargazers_count":80,"open_issues_count":3,"forks_count":14,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-01T17:47:57.201Z","etag":null,"topics":["coq","coq-formalization","coq-library","cplusplus","cplusplus-11","cplusplus-14","cplusplus-17","cplusplus-20","cplusplus-23"],"latest_commit_sha":null,"homepage":"https://bluerock-io.github.io/BRiCk/","language":"Coq","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bluerock-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE-BedRock","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-05-04T18:16:44.000Z","updated_at":"2025-05-01T16:38:09.000Z","dependencies_parsed_at":"2023-09-30T11:45:45.424Z","dependency_job_id":"b8a00804-2760-40ea-bbd7-7ad897c87663","html_url":"https://github.com/bluerock-io/BRiCk","commit_stats":{"total_commits":4238,"total_committers":33,"mean_commits":"128.42424242424244","dds":0.6160924964605946,"last_synced_commit":"62f6b570266e97cf3cbe97dc09f780e4047db21b"},"previous_names":["bluerock-io/brick","bedrocksystems/brick"],"tags_count":49,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluerock-io%2FBRiCk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluerock-io%2FBRiCk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluerock-io%2FBRiCk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluerock-io%2FBRiCk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bluerock-io","download_url":"https://codeload.github.com/bluerock-io/BRiCk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252116022,"owners_count":21697296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coq","coq-formalization","coq-library","cplusplus","cplusplus-11","cplusplus-14","cplusplus-17","cplusplus-20","cplusplus-23"],"created_at":"2024-09-24T13:36:09.360Z","updated_at":"2025-05-02T22:30:51.511Z","avatar_url":"https://github.com/bluerock-io.png","language":"Coq","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BRiCk\n\nA program logic for verifying concurrent C++ in Rocq.\n\n## Running\n\n### As a standalone tool\n\n```sh\ncpp2v -v -names XXX_names.v -o XXX_cpp.v XXX.cpp -- ...clang options...\n```\n\n## Build \u0026 Dependencies\n\nThe following scripts should work, but you can customize them based on your\nneeds.\nThey must be run inside a clone of this repository.\n\nOur instructions are for Linux (Ubuntu) and OSX.\n\n- LLVM 17 or greater (we've tested against 17 and 18)\n- cmake\n- [opam 2](https://opam.ocaml.org/)\n\n### Native dependencies: Linux (Ubuntu)\n\n```sh\n# install opam and cmake\nsudo apt install cmake opam\n# install llvm 18 (see directions here: https://apt.llvm.org/)\nwget https://apt.llvm.org/llvm.sh\nchmod +x llvm.sh\nsudo ./llvm.sh 18 all\n```\n\n### Native dependencies: OSX\n\nFor OSX we recommend clang 18:\n\n```sh\nbrew install llvm@18 cmake opam\nexport PATH=/usr/local/opt/llvm@18/bin:${PATH}\n```\n\n### Setup\n\nThe script below uses 4 cores, customize as needed.\n```sh\n# install opam dependencies\neval $(opam env)\n# The first time, run:\nopam repo add coq-released https://coq.inria.fr/opam/released\nopam repo add iris-dev https://gitlab.mpi-sws.org/iris/opam.git\n# install cpp2v Coq library and Coq dependencies\nopam update\nopam pin -n coq-cpp2v .\nopam pin -n coq-cpp2v-bin .\nopam install coq coq-cpp2v coq-cpp2v-bin\n```\n\n### Building\n\nBuilding is primarily done via [dune](https://github.com/ocaml/dune) and can be done using\n\n```sh\n$ dune build\n```\n\n## Examples\nSee the examples in the `tests` directory to get an idea of coverage that the logic supports.\nMore examples will be added as the feature set evolves.\n\nYou can run the tests with:\n\n```sh\n$ dune test\n```\n\nYou can run `cpp2v` on your own files by invoking\n\n```sh\n$ dune exec cpp2v -- ...cpp2v options... -- ...clang options...\n```\n\n## Repository Layout\n\n- `src` and `include` -- the implementation of the `cpp2v` tool.\n  - `llvm-include` -- extensions of LLVM source code (see `llvm-include/LICENSE.txt` for the license of these files)\n- `coq-upoly` -- universe polymorphic monad libraries\n- `theories` -- the core Coq development.\n  - `prelude` -- BlueRock's prelude extending [stdpp](https://gitlab.mpi-sws.org/iris/stdpp)\n  - `lang/cpp` -- the C++ syntax and semantics\n    - `syntax` -- the definition of the C++ AST (abstract syntax tree)\n    - `semantics` -- core semantic definitions that are independent of separation logic\n    - `logic` -- the separation logic weakest pre-condition semantics\n    - `parser` -- the environment used to interpret the generated code.\n\n## Coq IDEs\n\nThe following command can be used to create a `_CoqProject` file for use by Coq IDEs.\n```sh\n$ ln -s _CoqProject.template _CoqProject\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluerock-io%2FBRiCk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbluerock-io%2FBRiCk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluerock-io%2FBRiCk/lists"}