{"id":16310855,"url":"https://github.com/palmskog/fitch","last_synced_at":"2025-10-25T16:30:58.795Z","repository":{"id":138352994,"uuid":"55012639","full_name":"palmskog/fitch","owner":"palmskog","description":"Certified proof checker for Fitch-style propositional logic proofs","archived":false,"fork":false,"pushed_at":"2023-11-21T18:50:18.000Z","size":173,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-31T08:51:16.422Z","etag":null,"topics":["cakeml","coq","fitch-proofs","hol4","ocaml","ott","propositional-logic"],"latest_commit_sha":null,"homepage":null,"language":"Standard ML","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/palmskog.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}},"created_at":"2016-03-29T21:44:50.000Z","updated_at":"2024-07-12T10:29:51.000Z","dependencies_parsed_at":"2023-11-21T19:43:53.272Z","dependency_job_id":null,"html_url":"https://github.com/palmskog/fitch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palmskog%2Ffitch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palmskog%2Ffitch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palmskog%2Ffitch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palmskog%2Ffitch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/palmskog","download_url":"https://codeload.github.com/palmskog/fitch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238174166,"owners_count":19428636,"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":["cakeml","coq","fitch-proofs","hol4","ocaml","ott","propositional-logic"],"created_at":"2024-10-10T21:43:05.430Z","updated_at":"2025-10-25T16:30:58.487Z","avatar_url":"https://github.com/palmskog.png","language":"Standard ML","funding_links":[],"categories":[],"sub_categories":[],"readme":"Fitch\n=====\n\nA certified proof checker for Fitch-style propositional logic proofs as defined in the book [Logic for Computer Science](http://www.cambridge.org/gb/academic/subjects/computer-science/programming-languages-and-applied-logic/logic-computer-science-modelling-and-reasoning-about-systems-2nd-edition) by Huth and Ryan.\n\nRequirements\n------------\n\nCoq definitions and proofs:\n\n- [Coq](https://coq.inria.fr) (8.16 or later)\n- [Coq Ott library](https://github.com/ott-lang/ott) (0.33 or later)\n\nHOL4 definitions and proofs:\n\n- [`HOL4 Kananaskis-13`](https://hol-theorem-prover.org)\n\nExecutable OCaml checkers:\n\n- [`OCaml 4.05`](https://ocaml.org) (or later)\n- [`menhir`](http://gallium.inria.fr/~fpottier/menhir/)\n- [`OCamlbuild`](https://github.com/ocaml/ocamlbuild)\n- [`ocamlfind`](https://ocaml.org)\n\nExecutable CakeML checker:\n\n- [`HOL4 Kananaskis-13`](https://hol-theorem-prover.org)\n- [`CakeML 1009`](https://github.com/CakeML/cakeml/releases/tag/v1009)\n\nBuilding Coq definitions and proofs\n-----------------------------------\n\nMake sure Ott's Coq auxiliary library has been installed in Coq's `user-contrib` library directory. One easy way to install Ott and its Coq library is via [opam](http://opam.ocaml.org/doc/Install.html):\n```\nopam repo add coq-released https://coq.inria.fr/opam/released\nopam install coq-ott\n```\nThen, run `make`. This will compile the Coq syntax and relational definitions and check all proofs.\n\nBuilding HOL4 definitions and proofs\n------------------------------------\n\nRun `make hol`. This will compile the HOL4 syntax and relational definitions and check all proofs.\n\nBuilding the OCaml checkers\n---------------------------\n\nTo build the default executable checker program, run `make checker`. Example proofs (`.nd` files) can then be checked as follows:\n\n    $ ./checker.native examples/imp.nd\n\nTo generate an OCaml program with the alternative Prolog file format parser, run `make prolog` in the root directory. Example proofs (`.pl` files) can then be checked as follows:\n\n    $ ./prolog.native examples/imp_perm.pl\n\nBuilding the CakeML checker\n--------------------------\n\nA verified executable checker in [CakeML](https://cakeml.org) can be obtained using the CakeML proof-producing synthesis tool (\"compiler frontend 1\"). To generate it, go to the `cakeml` directory and adjust the `CAKEMLDIR` variable in the `Holmake` file to point to the directory with CakeML release 1009. Then, run `Holmake`.\n\nFor convenience, a pretty-printed [version](https://gist.github.com/palmskog/a988783a000ae6319eed15819eeb60ac) of the verified CakeML code is available; note that the pretty-printing itself has not been verified. Moreover, there is currently no parser for for the surface syntax.\n\nDocumentation\n-------------\n\nTo generate a document (`fitch.pdf`) describing the proof system and proofs, run `make fitch.pdf` (requires LaTeX and Ott).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalmskog%2Ffitch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpalmskog%2Ffitch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalmskog%2Ffitch/lists"}