{"id":22202892,"url":"https://github.com/logsem/trillium","last_synced_at":"2025-03-25T01:47:35.747Z","repository":{"id":184232646,"uuid":"671484251","full_name":"logsem/trillium","owner":"logsem","description":"The Trillium logic for proving trace refinement properties such as liveness via Iris","archived":false,"fork":false,"pushed_at":"2024-04-13T11:38:15.000Z","size":1114,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-04-14T01:13:11.672Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Coq","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/logsem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-07-27T12:26:22.000Z","updated_at":"2024-04-15T16:26:32.426Z","dependencies_parsed_at":"2023-09-21T18:33:44.318Z","dependency_job_id":"da72fb8c-a487-4b0c-bffa-f76a5c06dfb0","html_url":"https://github.com/logsem/trillium","commit_stats":null,"previous_names":["logsem/trillium"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logsem%2Ftrillium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logsem%2Ftrillium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logsem%2Ftrillium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/logsem%2Ftrillium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/logsem","download_url":"https://codeload.github.com/logsem/trillium/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245383120,"owners_count":20606265,"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":[],"created_at":"2024-12-02T16:38:46.906Z","updated_at":"2025-03-25T01:47:35.723Z","avatar_url":"https://github.com/logsem.png","language":"Coq","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Trillium / Fairis\n\nTrillium is a higher-order concurrent separation logic for proving trace\nrefinements between programs and models. The logic is\nbuilt using the [Iris](https://iris-project.org) program logic framework and\nmechanized in the [Coq proof assistant](https://coq.inria.fr/).\n\n## Directory Structure\n\n- [`trillium/`](trillium/): The Trillium program logic framework\n\n- [`fairis/`](fairis/): The Fairis instantiation of Trillium for reasoning\n  about fair termination of concurrent programs.\n  + [`heap_lang/`](fairis/heap_lang/): HeapLang instantiation with fuel model\n    * [`examples/`](fairis/heap_lang/examples/): Examples and case studies\n\n- [`external/`](external/): External dependencies\n\n## Compiling\n\nThe project maintains compatibility with Coq 8.17 and relies on `coqc` being\navailable in your shell. Clone the external git submodule dependencies using\n\n    git submodule update --init --recursive\n\nAlternatively, clone the repository using the `--recurse-submodules` flag.\n\nRun `make -jN` to build the full development, where `N` is the number of your\nCPU cores.\n\nNote that the compilation of the external dependencies is known to print\na lot of warning messages when compiled with Coq 8.17.\n\n## Git submodule dependencies\n\nThis project uses git submodules to manage dependencies with other Coq\nlibraries. By default, when working with a repository that uses submodules, the\nsubmodules will *not* be populated and updated automatically, and it is often\nnecessary to invoke `git submodule update --init --recursive` or use the\n`--recurse-submodules` flag. However, this can be automated by setting the\n`submodule.recurse` setting to `true` in your git config by running\n\n    git config --global submodule.recurse true\n\nThis will make `git clone`, `git checkout`, `git pull`, etc. work as you would\nexpect and it should rarely be necessary to invoke any `git submodule update`\ncommands.\n\nA git submodule is pinned to a particular commit of an external (remote)\nrepository. If new commits have been pushed to the remote repository and you\nwish to integrate these in to the development, invoke\n\n    git submodule update --remote\n\nto fetch the new commits and apply them to your local repository. This changes\nwhich commit your *local* submodule is pinned to. Remember to commit and push\nthe submodule update to make it visible to other users of the repository.\n\nRead more about git submodules in [this\ntutorial](https://git-scm.com/book/en/v2/Git-Tools-Submodules).\n\n## Publications\n\nA [preprint](https://iris-project.org/pdfs/2021-submitted-trillium.pdf) is\navailable describing Trillium, a program logic framework for both proving\npartial correctness properties and trace properties; Aneris is now an\ninstantiation of the Trillium framework.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogsem%2Ftrillium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flogsem%2Ftrillium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogsem%2Ftrillium/lists"}