{"id":16677974,"url":"https://github.com/hargonix/crup","last_synced_at":"2026-05-22T10:14:19.183Z","repository":{"id":212738461,"uuid":"732196105","full_name":"hargoniX/crup","owner":"hargoniX","description":"A Checker for RUP proofs written in Lean 4","archived":false,"fork":false,"pushed_at":"2023-12-16T12:31:43.000Z","size":57,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T00:48:12.950Z","etag":null,"topics":["lean","lean4","rup","sat"],"latest_commit_sha":null,"homepage":"","language":"Lean","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/hargoniX.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,"publiccode":null,"codemeta":null}},"created_at":"2023-12-15T22:25:36.000Z","updated_at":"2024-11-26T23:31:30.000Z","dependencies_parsed_at":"2024-11-19T02:11:48.414Z","dependency_job_id":"1eb1d971-d742-423c-be2f-06c40fd51491","html_url":"https://github.com/hargoniX/crup","commit_stats":null,"previous_names":["hargonix/crup"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hargoniX%2Fcrup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hargoniX%2Fcrup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hargoniX%2Fcrup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hargoniX%2Fcrup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hargoniX","download_url":"https://codeload.github.com/hargoniX/crup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243358212,"owners_count":20277991,"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":["lean","lean4","rup","sat"],"created_at":"2024-10-12T13:28:02.308Z","updated_at":"2025-12-27T13:21:53.518Z","avatar_url":"https://github.com/hargoniX.png","language":"Lean","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `crup` a Checker for RUP proofs in Lean 4\nThe only RUP proof checker that I was able to find was this one:\nhttps://www.cs.utexas.edu/~marijn/drup/. While it does still compile it segfaults\nand/or produces wrong results on trivial examples for some reason so I decided\nto build my own instead.\n\nI dont't believe that this is a particularly good implementation of the algorithm\nand it does only support plain RUP, not DRUP right now (although that could be\nadded without too much hassle if necessary).\n\n## Compiling\nTo compile this you need an installation of the `elan` Lean version manager,\nset up to use Lean 4. Once you have that simply run:\n```\n$ lake build\n```\n\n## Running\nGiven a DIMACS file `input.cnf` and a RUP file `proof.rup` you can verify it like so:\n```\n$ lake exe crup input.cnf proof.rup\n```\nAdditionally you can change the log level (higher is less verbose) with:\n```\n$ lake exe crup input.cnf proof.rup 2\n```\nIf you wish to run the binary directly you can find it in `.lake/build/bin`.\nNote that I didn't put a particular amount of effort into supporting DIMACS or RUP files\nin general. The tool expects DIMACS files to only contain the `p cnf` header line\nand a list of clauses. The RUP file parser is designed to be able to consume\nRUP files generated by `picosat`.\n\nIn addition to verifying UNSAT proofs by having an empty clause at the end of a RUP\nfile this tool can also simply verify a chain of reasoning based on RUP.\n\nIf for whatever reason you wish to use this in some sort of automated fashion\nyou do not have to parse the output, instead the tool returns the following exit codes:\n- `0` on success\n- `1` on wrong usage\n- `2` if it gets stuck while verifying\n- `3` If it fails to demonstrate the final empty clause step in an UNSAT proof\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhargonix%2Fcrup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhargonix%2Fcrup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhargonix%2Fcrup/lists"}