{"id":13998108,"url":"https://github.com/proost-assistant/proost","last_synced_at":"2025-07-23T05:32:35.285Z","repository":{"id":151587066,"uuid":"592066386","full_name":"proost-assistant/proost","owner":"proost-assistant","description":"A small proof assistant written in Rust. Read-only mirror of https://gitlab.crans.org/loutr/proost.","archived":false,"fork":false,"pushed_at":"2024-08-10T17:19:45.000Z","size":1265,"stargazers_count":23,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-08-10T19:16:02.391Z","etag":null,"topics":["dependent-types","memoization","proof-assistant","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/proost-assistant.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-01-22T20:15:58.000Z","updated_at":"2024-08-10T16:55:35.000Z","dependencies_parsed_at":"2024-01-15T19:44:12.690Z","dependency_job_id":null,"html_url":"https://github.com/proost-assistant/proost","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proost-assistant%2Fproost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proost-assistant%2Fproost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proost-assistant%2Fproost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proost-assistant%2Fproost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/proost-assistant","download_url":"https://codeload.github.com/proost-assistant/proost/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227245131,"owners_count":17753239,"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":["dependent-types","memoization","proof-assistant","rust"],"created_at":"2024-08-09T19:01:24.090Z","updated_at":"2024-11-30T00:31:09.966Z","avatar_url":"https://github.com/proost-assistant.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/media/logo.png\" width=\"25%\"/\u003e\n\u003c/p\u003e\n\n# Proost\nA simple proof assistant written in Rust.\n\nThe specification of the project may be found [here](docs/specs.pdf), and the\nuser manual [here](docs/manual.pdf). The API documentation can be found by\nclicking on the corresponding badge below the project name.\n\n## Build and install\nTo install proost with `nix` installed, simply type:\n```sh\nnix profile install git+ssh://git@gitlab.crans.org/loutr/proost.git?ref=main\n```\nOne may also install it from our GitHub mirror:\n```sh \nnix profile install github:proost-assistant/proost\n```\n\nA toplevel instance can then be launched with `proost`. Alternatively, replace\n`profile install` with `run` to give the program a go without installing it.\n\nWithout `nix` installed, `git clone` the project and, with Rust and\n[`cargo`](https://doc.rust-lang.org/stable/cargo/) properly setup to an\nappropriate version (either through your package manager or\n[`rustup`](https://rustup.rs/)), do `cargo run --release`.\n\n## Development environment (with `nix`)\nType `nix develop`. This provides an environment with all the necessary tools,\nincluding `cargo` (with `clippy`, `rustfmt`) and `rust-analyzer`. Then, use your\nregular `cargo` commands.\n\nPlease consider the syntax `nix develop --profile \u003ca-file-of-your-choosing\u003e`,\nwhich will prevent the garbage collection of the development dependencies as\nlong as the given file lives.\n\n## Crates\nThe project is organised as such:\n- the crate `kernel` provides an interface for building and manipulating terms,\n  as well as type inference and type checking functions;\n- the crate `elaboration` defines `Builder` types, which are high-level\n  representations of terms that can be transformed into concrete terms;\n- the crate `parser` provides parsing functions which return `Builder` and\n  `Command` objects, to be used by any client;\n- the crate `proost` provides a toplevel interface for end-users that can be\n  used to manipulate terms and query the kernel. It provides partial\n  auto-completion, some color highlighting and other readline-like features;\n- the crate `tilleul` is a WIP implementation of the Language Server Protocol\n  for *Madeleine*, the language of Proost.\n\n```mermaid\ngraph TD;\n  kernel--\u003eelaboration;\n  elaboration--\u003eparser;\n  kernel--\u003etilleul;\n  parser--\u003etilleul; \n  parser--\u003eproost;\n  kernel--\u003eproost;\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproost-assistant%2Fproost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproost-assistant%2Fproost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproost-assistant%2Fproost/lists"}